gpt4 book ai didi

iphone - 如何使用不同角度的弹弓移动物体?

转载 作者:行者123 更新时间:2023-11-28 03:53:57 25 4
gpt4 key购买 nike

我是 iPhone 应用程序开发和 Xcode 的初学者,我正在使用具有弹弓效果的 Box2D 开发一个小游戏。当使用吊索射击时,我需要帮助以各自的角度移动 body 。使用 ccDrawLine 绘制弹弓,并在其上放置一个物体。

在我的项目中,当使用弹弓时,物体会随意地朝不同的方向移动。有谁知道如何解决这个问题?

我的代码:

画弹弓:

-(void)draw
{
//NSLog(@"in dra");
//glDisable(GL_TEXTURE_2D);
//glDisableClientState(GL_COLOR_ARRAY);
//glDisableClientState(GL_TEXTURE_COORD_ARRAY);

_world->DrawDebugData();

glEnable(GL_TEXTURE_2D);
glEnableClientState(GL_COLOR_ARRAY);
//glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glColor4f(0.6, 0.4, 0.2, 1.0);
glLineWidth(4.0f);

//glEnable(GL_LINE_SMOOTH);
ccDrawLine( ccp(80, 75),ccp(pt1,pt2));
ccDrawLine(ccp(pt1,pt2), ccp(240,75));
ccDrawLine(ccp(80,75),ccp(80,0));
ccDrawLine(ccp(240,75),ccp(240,0));
}

将物体放在吊索上:

-(void)addsprite2
{
stone=[CCSprite spriteWithFile:@"rock.png"];
stone.position=ccp(160,80);
stone.tag=1;
[self addChild:stone];
}

我正在尝试手动创建和添加角度。

角度创建:

    if (stone.position.y < 80 && stone.position.y >= 70)
{
ft = abs(tp2)/PTM_RATIO;
}
else if(stone.position.y < 70 && stone.position.y >=60)
{
ft = (abs(tp2)+90)/PTM_RATIO;
}

else if(stone.position.y < 60 && stone.position.y >= 50)
{
ft = (abs(tp2)+110)/PTM_RATIO;
}

else if(stone.position.y < 50 && stone.position.y >= 40)
{
ft = (abs(tp2)+140)

最佳答案

您可以使用贝塞尔曲线在二维空间中实现弹丸曲线效果。然后根据拉动距离设置第一、第二控制点和终点。

这是实现抛射曲线最简单的方法。

还可以使用 touchesMoved 函数移动对象,并将对象的位置设置为与 touchesMoved 点的位置相同。

object.position = pulling.position;

这将允许您在移动手指时移动对象。

关于iphone - 如何使用不同角度的弹弓移动物体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343016/

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