gpt4 book ai didi

iphone - 我创建了一个简单的球类游戏。现在我尝试让球移动得更快......有人有想法吗?

转载 作者:行者123 更新时间:2023-12-03 21:02:27 28 4
gpt4 key购买 nike

我想要移动得更快的球是*敌人;

我希望*敌人在 20 秒后移动得更快而不接触球。*玩家球是您可以控制的球。在这个游戏中你不能触摸敌方球。

我希望敌人的球每 20 秒变得更快..我正在考虑一些带有数组循环的东西......

感谢您的帮助

<小时/>

.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
IBOutlet UIButton *startButton;
NSTimer *randomMain;

CGPoint pos;
IBOutlet UIImageView *enemy;
IBOutlet UIImageView *player;

int MainInt;
IBOutlet UILabel *seconds;


IBOutlet UILabel *lastTime;
IBOutlet UILabel *theTime;
}

@property (nonatomic, retain) NSTimer *numro;

- (IBAction)start;
@end
<小时/>

.m

#import "ViewController.h"

@implementation ViewController

@synthesize numro;

- (IBAction)start {
[startButton setHidden:YES];
randomMain = [NSTimer scheduledTimerWithTimeInterval:(0.03)
target:self selector: @selector(onTimer) userInfo:(nil) repeats:YES];
numro = [NSTimer scheduledTimerWithTimeInterval:(1.0)
target:self selector:@selector(countup) userInfo:nil repeats:YES];
MainInt = 0;
[lastTime setHidden:YES];
[theTime setHidden:YES];
}

-(void)countup {
MainInt += 1;
seconds.text = [NSString stringWithFormat:@"%i", MainInt];

// I TRIED IT WITH "IF" BUT IT I DONT WANT TO WRITE THIS FOR EVERY 20 SECONDS

if (MainInt == 20) {
randomMain = [NSTimer scheduledTimerWithTimeInterval:(0.002)
target:self selector: @selector(checkCollision) userInfo:(nil) repeats:YES];
}
/* if (MainInt == 40) {
randomMain = [NSTimer scheduledTimerWithTimeInterval:(0.01)
target:self selector: @selector(onTimer) userInfo:(nil) repeats:YES];
}*/
}

-(void)onTimer{
[self checkCollision];
enemy.center = CGPointMake(enemy.center.x+pos.x,enemy.center.y+pos.y);
if (enemy.center.x > 320 || enemy.center.x < 0)
pos.x = -pos.x;
if (enemy.center.y > 480 || enemy.center.y < 0)
pos.y = -pos.y;
}

- (void)checkCollision {
if( CGRectIntersectsRect(player.frame,enemy.frame))
{
[randomMain invalidate];
[startButton setHidden:NO];

CGRect frame = [player frame];
frame.origin.x = 137.0f;
frame.origin.y = 326.0;
[player setFrame: frame];

CGRect frame2 = [enemy frame];
frame2.origin.x = 137.0f;
frame2.origin.y = 20.0;
[enemy setFrame: frame2];

UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"AAA"
message: [NSString stringWithFormat:@"BBB"] delegate:nil
cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
[alert show];
MainInt = 0 ;
[numro invalidate];
[lastTime setHidden:NO];
[theTime setHidden:NO];
theTime.text = seconds.text;
}
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *myTouch = [[event allTouches] anyObject];
player.center = [myTouch locationInView:self.view]; //player ball
}

-(void)viewDidLoad {
[lastTime setHidden:YES];
[super viewDidLoad];
// X Speed Y Speed
//I tried to do anything with the X and Y speed ... but it didn't work
pos = CGPointMake(5.0,4.0);
}

@end

最佳答案

按如下方式更改 countup 方法中的 if block ...

if(MainInt % 20 == 0) {    //True every 20th second

int speedUpCount=MainInt/20;
float interval=1.0-(speedUpCount/10.0);

[randomMain invalidate]; //Must stop the previous timer

randomMain = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector: @selector(checkCollision) userInfo:(nil) repeats:YES];
}

希望这能帮助解决您的问题。

关于iphone - 我创建了一个简单的球类游戏。现在我尝试让球移动得更快......有人有想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14005483/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com