我正在使用Ballin 开发一款棋盘游戏cocos3d.在那我已经采取了行动touchevent.我正在使用打印位置到控制台NSLog().
这是代码
-(void) touchEvent: (uint) touchType at: (CGPoint) touchPoint {
CCActionInterval *BounceAction1=[CC3MoveTo actionWithDuration:0.1 moveTo:cc3v(0.0, -5.0, -0.7)];
switch (touchType) {
case kCCTouchBegan:
[Ball runAction:BounceAction1];
NSLog(@"Location of x=%f and y=%f", Ball.globalLocation.x, Ball.globalLocation.y );
break;
}
Run Code Online (Sandbox Code Playgroud)
在这里,'球'是一个MeshNode.它的位置在起源cc3v(0.0, 0.0, 0.0).
当我跑步和触摸时,我发现球移动到指定位置.但我得到Ball的位置:
Location of x=0.000000 and y=0.000000
Run Code Online (Sandbox Code Playgroud)
当我再次触摸时,我发现球没有移动(因为它已经移动到指定位置).但随后它将Ball的位置显示为:
Location of x=0.000000 and y=-6.000000
Run Code Online (Sandbox Code Playgroud)
为什么我第一次找不到位置?
小智 1
根据您的代码,我认为问题在于 BounceAction1 的执行持续时间为 0.1,因此当 NSLog 语句执行时,Ball 的静态属性尚未更新。要测试这一点,请尝试在 NSLog 语句之前插入 sleep。