Ios 使用Cocos2d中的按钮同时移动一定距离
当按下按钮时,我得到了一个方法,一个用于右键,一个用于左键,如下所示 现在,当精灵在中央加载时,精灵根本不会移动,但我想实现的是,当按下相应的按钮时,精灵会从中央移动到屏幕的左侧或右侧,非常简单(我可以自己完成) 但我希望这样,如果“按下右键,精灵在右手边满是,你可以按一下左键移到屏幕中间,如果你想,再按一下它移到左边,反之亦然” 现在,我如何才能使同一个按钮能够移动到中间,然后如果再次按下所有到另一边 我当前的代码只会将其从两边移到中间Ios 使用Cocos2d中的按钮同时移动一定距离,ios,objective-c,cocos2d-iphone,Ios,Objective C,Cocos2d Iphone,当按下按钮时,我得到了一个方法,一个用于右键,一个用于左键,如下所示 现在,当精灵在中央加载时,精灵根本不会移动,但我想实现的是,当按下相应的按钮时,精灵会从中央移动到屏幕的左侧或右侧,非常简单(我可以自己完成) 但我希望这样,如果“按下右键,精灵在右手边满是,你可以按一下左键移到屏幕中间,如果你想,再按一下它移到左边,反之亦然” 现在,我如何才能使同一个按钮能够移动到中间,然后如果再次按下所有到另一边 我当前的代码只会将其从两边移到中间 -(void) btnRightTapped: (id)
-(void) btnRightTapped: (id) sender{
CCLOG(@"Left button Tapped");
CGSize viewSize = [CCDirector sharedDirector].viewSize;
if (_claw.position.x >= viewSize.width / 2) {
CCLOG(@"Left button Tapped inside if statement");
float clawSpeed = - viewSize.width / 400.0;
float distanceToMoveClaw = clawSpeed;
float newXClaw = _claw.position.x + distanceToMoveClaw;
float newYClaw = _claw.position.y;
_claw.position = ccp(newXClaw, newYClaw);
[self schedule:@selector(btnRightTapped:) interval:0.02];
[self unschedule:@selector(btnLeftTapped:)];
}
else [self unschedule:@selector(btnRightTapped:)];
}
-(void) btnLeftTapped: (id) sender{
CCLOG(@"Right button Tapped");
CGSize viewSize = [CCDirector sharedDirector].viewSize;
if (_claw.position.x <= viewSize.width / 2) {
float clawSpeed = viewSize.width / 400.0;
float distanceToMoveClaw = clawSpeed;
float newXClaw = _claw.position.x + distanceToMoveClaw;
float newYClaw = _claw.position.y;
_claw.position = ccp(newXClaw, newYClaw);
[self schedule:@selector(btnLeftTapped:) interval:0.02];
[self unschedule:@selector(btnRightTapped:)];
}
else [self unschedule:@selector(btnLeftTapped:)];
}
-(无效)BTN右击:(id)发送方{
CCLOG(@“点击左键”);
CGSize viewSize=[CCDirector sharedDirector].viewSize;
如果(_.position.x>=viewSize.width/2){
CCLOG(@“在if语句中点击左按钮”);
浮动速度=-viewSize.width/400.0;
浮动距离TOMOVECLOW=定位爪速度;
float newXClaw=_claw.position.x+距离向量;
float newycaw=\u claw.position.y;
_爪位置=ccp(newXClaw,newYClaw);
[自调度:@选择器(btnRightTapped:)间隔:0.02];
[自我计划外:@selector(btnlefttap:)];
}
else[自我非计划:@selector(btnRightTapped:)];
}
-(无效)BTNLefttap:(id)发件人{
CCLOG(“点击右键”);
CGSize viewSize=[CCDirector sharedDirector].viewSize;
如果(_claw.position.x只需检查节点的x位置,如果它不靠近中心,则首先将其移动到中心,否则将其移动到左/右边界,您可以通过一个示例演示如何执行此操作吗?我发现,没关系,必须使用CCActionMoveTo而不是schedule方法=)