嗨,我非常喜欢编码,并开始在Xcode中制作一个非常简单的游戏。游戏已经完成,但我确实遇到了一些问题。很少有时候在游戏结束时,pig.image不会改变,之前的动画甚至在[pig stopAnimation]之后仍然继续...继承游戏结束时的代码到图像应该改变的地方...... / p>
-(void)gameover1{
[jetpacksound stop];
[self hitsound];
[pig stopAnimating];
[movementtimer invalidate];
if (score > highscorenumber) {
highscorenumber = score;
[[NSUserDefaults standardUserDefaults] setInteger:highscorenumber forKey:@"highscoresaved"];
}
else{
highscore.text = [NSString stringWithFormat:@"Try Harder Next Time"];
}
movementtimer = [NSTimer scheduledTimerWithTimeInterval:.035 target:self selector:@selector(gameover1movement) userInfo:nil repeats:YES];
bam.hidden = NO;
flash.hidden = NO;
background1.hidden = YES;
background2.hidden = YES;
background3.hidden = YES;
pauseg.hidden = YES;
scorelabel.hidden = YES;
fork1.hidden = YES;
fork2.hidden = YES;
fork3.hidden = YES;
fork4.hidden = YES;
knife1.hidden = YES;
knife2.hidden = YES;
knife3.hidden = YES;
knife4.hidden = YES;
poisoncloud.hidden = YES;
cake.hidden = YES;
}
-(void)gameover1movement{
pig.center = CGPointMake(pig.center.x, pig.center.y - 30);
if (IS_IPAD)
{
//do stuff for iPad
if (pig.center.y < 400) {
[self gameover2];
}
}
else
{
if(IS_IPHONE_5)
{
//do stuff for 4 inch iPhone screen
if (pig.center.y < 200) {
[self gameover2];
}
}
else
{
//do stuff for 3.5 inch iPhone screen
}
}
}
-(void)gameover2{
[movementtimer invalidate];
movementtimer = [NSTimer scheduledTimerWithTimeInterval:.035 target:self selector:@selector(gameover2movement) userInfo:nil repeats:YES];
pig.image = [UIImage imageNamed:@"DeadPig.png"];
background1.hidden = NO;
background2.hidden = NO;
background3.hidden = NO;
bam.hidden = YES;
flash.hidden = YES;
if (IS_IPAD)
{
//do stuff for iPad
pig.frame = CGRectMake(pig.center.x - 115, pig.center.y - 165, 230.0f, 330.0f);
if (pig.center.x < 115) {
pig.center = CGPointMake(115, pig.center.y);
}
if (pig.center.x > 653) {
pig.center = CGPointMake(653, pig.center.y);
}
background3.center = CGPointMake(384, 512);
background2.center = CGPointMake(384, 1536);
background1.center = CGPointMake(384, 2560);
}
else
{
if(IS_IPHONE_5)
{
//do stuff for 4 inch iPhone screen
pig.frame = CGRectMake(pig.center.x - 50, pig.center.y - 75, 100.0f, 150.0f);
if (pig.center.x < 50) {
pig.center = CGPointMake(50, pig.center.y);
}
if (pig.center.x > 270) {
pig.center = CGPointMake(270, pig.center.y);
}
background3.center = CGPointMake(160, 284);
background2.center = CGPointMake(160, 852);
background1.center = CGPointMake(160, 1420);
}
else
{
//do stuff for 3.5 inch iPhone screen
}
}
}