如何在特定位置移动对象。
例如。我有一个小条(宽= 50,高= 10)。我必须手动移动这个柱塞。我想只在x cordinates中移动(限制是x = 20(起始点)到x = 50(终点))y坐标上没有移动。但是在病房没有移动之后它移动了50到10。 编码: -
- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (isPlaying) {
UITouch *touch = [[event allTouches] anyObject];
touchPosition = [touch locationInView:touch.view];
if ( CGRectContainsPoint(para3.boundingBox,touchPoint)
isDragging = YES;
touchOffset = para3.position.y - touchPosition.y;
}
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if (isPlaying) {
UITouch *touch3 = [[event allTouches] anyObject];
float distanceMoved =
([touch3 locationInView:touch3.view].y + touchOffset) -
para3.position.y;
float newY = para3.position.y + distanceMoved;
if (newY > 67 && newY < 99)
para3.position = CGPointMake(newY , para3.position.y );
//para3.contentSize/2
if (newY >67 )
para3.position = CGPointMake( 67, para3.position.y );
if (newY < 99)
para3.position = CGPointMake( 99, para3.position.y );
}
}
答案 0 :(得分:2)
我希望我完全理解这个问题。在这种情况下我会做的是在我的游戏中包含Chipmunk框架,然后将我的柱塞和大炮作为物理对象。一旦完成,可以通过框架的“ApplyImpulse”方法控制速度和方向(即射弹的角度)。一旦我提供初始值,速度和角度将由物理本身控制....
答案 1 :(得分:1)
看看cocos2d初学者指南
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_2._your_first_game
这里描述了使用touches和sprite动画的基础知识