gpt4 book ai didi

iphone - UIImage 碰撞后出现不需要的移动

转载 作者:行者123 更新时间:2023-12-03 19:24:18 25 4
gpt4 key购买 nike

好吧,这是我的第一篇文章,我对 Xcode 和 Objective C 还很陌生。过去几周我一直在自学。不管怎样,我通过制作一个小游戏来练习,在这个游戏中你控制一架直升机并收集掉落的硬币。不过,我在对象碰撞方法方面遇到了一些麻烦。最大的问题是,成功碰撞后直升机会自动移回起始位置,这是我不希望的。我希望直升机 UIImage 保留在新位置。我已经检查了代码的每一行,但没有调用在其原始位置重新创建 Helicopter.frame 的位置。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *UserMoveTouch = [touches anyObject];
CGPoint pos = [UserMoveTouch locationInView: self.view];
if(pos.x<356)
{
[UIView beginAnimations:@"CopterMoveTo" context:NULL];
[UIView setAnimationDuration: .5];
[UIView setAnimationBeginsFromCurrentState:YES];

CopterPlayer.center = [UserMoveTouch locationInView:self.view];

[UIView setAnimationDelegate:self];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView commitAnimations];
}
}


-(void)CopterCollisionCheck
{
if(CGRectIntersectsRect(Coin1.frame, CopterPlayer.frame))
{
SystemSoundID soundID;
NSString *CoinSound=[[NSBundle mainBundle]
pathForResource:@"GetCoin" ofType:@"wav"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)
[NSURL fileURLWithPath:CoinSound], & soundID);
AudioServicesPlaySystemSound(soundID);
Coin1.frame=CGRectMake(Coin1.center.x+150,15,20,23);
if (MultiplierX==1)
{
ScoreValue=ScoreValue+1;
}
else if(MultiplierX==2)
{
ScoreValue=ScoreValue+2;
}
else if(MultiplierX==3)
{
ScoreValue=ScoreValue+3;
{
}
ScoreValueLabel.text = [NSString stringWithFormat:@"%d",ScoreValue];


}


-(void)CopterCollisionTimer
{
[NSTimer scheduledTimerWithTimeInterval:0.35 target:self
selector:@selector(CopterCollisionCheck) userInfo:nil repeats:YES];
}

如果我在粘贴代码时忘记了括号或其他内容,而不是用于格式化本网站上的帖子,我深表歉意。记住第一个菜鸟帖子!帮助非常感谢! :D

最佳答案

pshhh 这表明我是多么的菜鸟...没有意识到在游戏过程中不断改变标签文本值会让 UIImages 抓狂。将其更改为文本字段,一切都很好:)

关于iphone - UIImage 碰撞后出现不需要的移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305932/

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