我想让一个精灵旋转一个手指触摸。老实说,我不知道该怎么做,spriteKit是新的。 任何想法?如何在spriteKit上触摸图像/精灵?
1
A
回答
1
这将使用动作将精灵旋转到触摸的位置。如果您希望在拖动手指时旋转它。您应该删除该操作并改为在touchesMoved:
上执行计算。
-(void)didMoveToView:(SKView *)view {
sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite.xScale = 0.5;
sprite.yScale = 0.5;
sprite.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
[self addChild:sprite];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
float dY = sprite.position.y - location.y;
float dX = sprite.position.x - location.x;
float angle = atan2f(dY, dX) + 1.571f;
[sprite runAction:[SKAction rotateToAngle:angle duration:0.5 shortestUnitArc:YES]];
return;
}
}
或者:???(请记住,从touchesBegan:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
float dY = sprite.position.y - location.y;
float dX = sprite.position.x - location.x;
float angle = (atan2f(dY, dX)) + 1.571f;
sprite.zRotation = angle;
}
}
+0
)正如你所说,我希望它旋转它是在拖动手指的同时,但是你的意思是通过去除动作,精灵如何在没有交流的情况下旋转重刑?代码可能会有帮助...再次感谢! – 2014-10-16 20:11:26
+0
touchesMoved:方法在每次触摸移动时都会被调用,这是相当多的时间。如果每次添加一个动作,它可能看起来很奇怪,而且效率很低。所以你必须手动更新旋转。我更新了答案替代解决方案。 – gzafra 2014-10-16 21:16:54
相关问题
- 1. 图像精灵和触摸设备
- 2. 小精灵触摸
- 3. 如何识别非常规精灵图像的触摸?
- 4. 如何让精灵旋转触摸Cocos2d
- 5. 触摸后动画精灵?
- 6. 如何检测上旋转精灵触摸在cocos2d
- 7. 如何创建一个精灵,然后用Swift通过触摸删除SpriteKit中的特定精灵?
- 8. 根据用户触摸位置旋转精灵图像?
- 9. cocos2D和Box2D:如何获得精确触摸的精灵?
- 10. 用触摸旋转一个精灵 - Cocos2d
- 11. 检测触摸小精灵并convertToNodeSpaceAR
- 12. Cocos2d-js精灵阵列触摸事件
- 13. cocos2d的精灵禁用触摸
- 14. 如何将精灵放置在触摸位置
- 15. 如何让某些精灵在触摸后消失 - Cocos2d
- 16. 如何使用cocos2d在触摸时移动精灵?
- 17. 获取在Cocos2D中的精灵上的触摸点的alpha值
- 18. 在Android上使用图像精灵
- 19. CSS图像精灵
- 20. CSS图像精灵
- 21. SpriteKit敌方精灵在与玩家接触后跳过
- 22. 如何检测一个孩子精灵的触摸
- 23. 如何更改重叠精灵的触摸优先级
- 24. Cocos2dx,如何检测部分精灵的触摸?
- 25. 如何在变焦状态下检测触摸动作是否触及精灵?
- 26. Cocos2d:检测旋转精灵上的触摸?
- 27. Cocos2d输入图层仅接收精灵顶部的触摸
- 28. 如何找到精灵图像
- 29. 如果在AndEngine中触摸是精灵或正文,如何检查触摸事件?
- 30. GWT UiBinder和图像精灵
删除代码你希望它继续只要你触摸旋转或在设定时间或固定金额 – Egghead 2014-10-11 21:30:15
你想要根据用户的触摸位置将精灵旋转到特定的角度,还是无限期地旋转精灵? – 0x141E 2014-10-11 21:34:34
感谢人(:这个人在那里解决了它(:: – 2014-10-12 14:18:33