gpt4 book ai didi

iphone - 为什么我的 Sprite 在第一次移动后会转到错误的坐标?

转载 作者:行者123 更新时间:2023-11-29 04:40:29 27 4
gpt4 key购买 nike

这是我的移动方法:

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
UITouch *touch = [touches anyObject];
location = [touch locationInView: [touch view]];
CGPoint location_ = [[CCDirector sharedDirector] convertToGL:location];
NSLog(@"Click Position = (%f,%f)",location_.x,location_.y);

float moveSpeed = 40.0;
float moveDist = sqrt(pow(abs(location_.x - sprite.position.x),2) + pow(abs(location_.y - sprite.position.y),2));
float moveTime = (moveDist / moveSpeed);

[sprite runAction:[CCMoveTo actionWithDuration:moveTime position:location_]];
}

这是我的初始化方法。

-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
if( (self=[super init])) {
self.isTouchEnabled = YES;
// create and initialize a Label

[self scheduleUpdate]; // available since v0.99.3
[self schedule: @selector(update:) interval:0.5];

CGSize size = [[CCDirector sharedDirector] winSize];

bg = [CCSprite spriteWithFile:@"testBG.png"];
bg.position = ccp( size.width /2 , size.height/2 );
[self addChild: bg];

sprite = [CCSprite spriteWithFile:@"testSprite.png"];
sprite.position = ccp( size.width /2 , size.height/2 );
[self addChild: sprite];

[self runAction:[CCFollow actionWithTarget:sprite]];
}
return self;
}

我的窗口跟随 Sprite 四处移动,但正如我所说, Sprite 在第一次触摸后将到达与触摸不同的点。谁能告诉我这是怎么回事?

编辑:我认为这可能与坐标系本身有关,或者可能与

[触摸任何对象];?我的搜索结果很少。

edit2:我发现如果我再次将 Sprite 返回到背景 Sprite 的中间,它会从那里再次正常运行,直到它离得太远。

最佳答案

我相信问题出在[self runAction:[CCFollow actionWithTarget:sprite]];

self 是您不想移动的场景

执行此操作的模式是添加一个 CCNode,您可以将其称为 _contentNode 到您的 场景,并添加您想要的所有内容小时候喜欢动。

然后你会调用[_contentNode runAction:[CCFollow actionWithTarget:sprite]];

关于iphone - 为什么我的 Sprite 在第一次移动后会转到错误的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com