我正在开发一个棋盘游戏使用Ball
,在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;
}
这里,'Ball‘是一个MeshNode
。它的位置在origin cc3v(0.0, 0.0, 0.0)
。
当我奔跑和触球时,我发现球在移动到指定的位置。但是我得到的球的位置是:
Location of x=0.000000 and y=0.000000
当我再次触摸时,我发现球没有移动(因为它已经移动到了指定的位置)。但是它显示了Ball的位置:
Location of x=0.000000 and y=-6.000000
为什么我第一次找不到位置?
发布于 2013-10-04 00:34:47
根据您的代码,我认为问题在于BounceAction1以0.1的持续时间执行,因此在执行NSLog语句时,Ball的静态属性没有更新。要测试这一点,请尝试在NSLog语句之前插入休眠。
https://stackoverflow.com/questions/16710192
复制相似问题