Objective-C中的循环问题
两个循环都有两个问题 第一个问题,是否有可能使循环(while或其他东西)等待我的命令 例如,我需要选择一个可能的移动,直到我有机会下一步,我必须有机会选择Objective-C中的循环问题,objective-c,Objective C,两个循环都有两个问题 第一个问题,是否有可能使循环(while或其他东西)等待我的命令 例如,我需要选择一个可能的移动,直到我有机会下一步,我必须有机会选择 While(eat==1){ if(CGRectContainsPoint([BOX9 frame], [touch locationInView:self.view])){ eat=0; } } 我的问题是,当在圆圈和盒子中旋转时,9不能被按下,因为旋转和旋转。我需要一些循环,旋转圆圈,但将允许选择下一个命令。我希望我是清
While(eat==1){
if(CGRectContainsPoint([BOX9 frame], [touch locationInView:self.view])){
eat=0;
}
}
我的问题是,当在圆圈和盒子中旋转时,9不能被按下,因为旋转和旋转。我需要一些循环,旋转圆圈,但将允许选择下一个命令。我希望我是清楚的,英语不是我的强项
第二个问题 第二个问题是while循环。触摸时,我将图像从UIimageView控制器显示到另一个控制器。有时我有更多的动作,我需要使用,因为我永远不知道我会有怎样的动作。我想让这个动作慢一点 如果我写的代码是我想要的
uiimage1.image=someimage代码>很好用。但问题是当我说例如:
uiimage1.image=someimage;
while(eat==1){
uiimage2.image=uiimage1.image;
uiimage1.image=NULL;
uiimage3.image=uiimage1.image;
}
(这是我现在为更好地解释这个问题而编写的唯一示例代码。)
如果我在“while loop”中做一些等待,我总是会看到只有第一张图片的显示速度较慢,而第二张图片的显示速度较快
我尝试使用过渡效果使速度变慢,但这仅在我使用触摸在imagecontroller中加载一些图片时有效。如果我用代码编写,转换将无法工作
所有都在触摸开始功能中
谢谢您的帮助。所以,据我所知,您正在制作一个游戏,并希望将其动画化。您的问题是while循环位于主线程上,因此在它们完成之前,不会接受任何用户输入,屏幕也不会刷新
有几种方法可以解决这个问题,所有这些方法都涉及到移动“实时”发生的事情的执行,我指的是呈现给用户的事情,脱离主线程
第一个:使用scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
创建一个NSTimer
。选择器“实时”处理事物的动画。调用touchesbeated
时,设置标志eating
。这在代码中大致类似
-(void) setUp
{
NSTimer scheduleTimerWithTimeInterval: 1.0
target: self
selector: @selector(runLoop)
userInfo: NULL
repeats: YES];
}
-(void) runLoop
{
if(eatingDuration && eating)
{
eatingDuration--;
//do something because we're eating
}
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//if we need to set eating to yes do it
eating = YES;
eatingDuration = whatEverWeNeedItToBe;
}
这可能被认为是一个“运行循环”,因为它会被反复调用,直到您摆脱计时器。这可能是最好的方法
第二个:使用UIView的animateWithDuration:animations:
类方法为每个元素设置动画 我不确定我是否理解你写的内容,但答案是否定的。如果while循环,你不能等待。你想解决什么问题?我需要为大学做一些游戏,类似于国际象棋,但在吃了一个相反的数字后,我可以吃得更多,直到我没有机会。虽然循环是为了检查我的机会,在我采取行动并尽我所能吃下之前不要更换球员。我不知道我会怎么吃,我是靠触摸来吃的。我不知道如何更好地解释。而直到我有机会下一次吃东西,循环的内部可能有一个图像控制器,当我吃人的时候,我可以移动我的身体。我希望这是更清楚的。是的,我想我明白所有的,我会帮助我,我会尝试用代码实现,非常感谢。