我正在尝试开发一些简单的游戏应用。对于Pong风格的游戏,我有一个移动的球,保持在界限和两个桨。我实现了移动paddle 1的代码,以便它按预期反射球。
当我尝试将相同的行为添加到另一个paddle时,我尝试了这个:
UITouch *touch = [[event allTouches]anyObject]; // Picks up the touch
CGPoint location = [touch locationInView:self.view]; // Gets coordinates
// to help move the paddle on the X axis; Y axis is determined by the paddle,
// so it only moves along one axis
if ([touch view] == paddle2) {
// move the second paddle
...
}
else {
// move the first paddle
...
}
但是,任何触摸仅移动paddle1,表示从未激活条件。基于文档,我认为通过发送[touch view]
消息,触摸的图像视图将返回其自己的名称。
我究竟做错了什么?这是一种更简单的方法吗?
答案 0 :(得分:0)
不要对拨片使用不同的视图,使用一个具有不同CALayers
的主视图来绘制对象。
您可以通过为图层指定新原点来移动拨片。
该视图应该采用以下方法
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
找出你碰到它的地方。 假设你知道你的桨的框架,你可以决定是否用触摸击中它们。
我希望这会有所帮助。