gpt4 book ai didi

android - 如何使用 AndEngine 通过在球上滑动来扔/扔球?

转载 作者:行者123 更新时间:2023-11-29 17:54:22 24 4
gpt4 key购买 nike

我在屏幕上有一个球 Sprite ,当我触摸并在该 Sprite 上滑动时,它必须朝特定的滑动方向移动。

我在那个球上添加了物理学。

我想做一些类似 paper toss 的事情

谁能帮帮我。提前致谢。

最佳答案

您需要重写 Sprite 的 onAreaTouched 方法,如下所示。您可以从 pSceneTouchEvent、pTouchAreasLocalX 和 pTouchAreaLocalY 变量中获取有关触摸事件的信息,并使用它们来确定移动球的方式。

不过,您不想在 OnAreaTouched 方法内对物理体施加任何力,因为对物理体的更改应该使用更新处理程序进行。我建议让 onAreaTouched 方法设置一个标志和一些其他变量,以便下次更新处理程序运行时它可以使用这些值。

更新:我添加了一些代码来帮助您确定方向。 if 语句中的注释应该解释它们何时被调用。基本上,您获得初始触摸位置( Action 向下),计算您移动到的位置( Action 移动)并使用方向在更新处理程序中施加力( Action 向上)。

mSprite = new Sprite(x, y ,mRegion, mEngine.getVertexBufferObjectManager()){
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY)
{

//set flag member variable that sprite has been touched
if (pSceneTouchEvent.isActionDown())
{
//here is where the touch was initiated so you
//can store the x,y location. You obtain it by using pSceneTouchEvent.getX()
// and pSceneTouchEvent.getY()
}

if (pSceneTouchEvent.isActionMove())
{
//This will be called when you slide your finger, so you
//can get the new coordinates by again using pSceneTouchEvent.getX()
// and pSceneTouchEvent.getY()

}

if (sSceneTouchEvent.isActionUp())
{
//this will be called when you release the sprite
// and tell the update handler to apply the force
}
}
};


this.registerUpdateHandler(new IUpdateHandler(){
@Override
public void onUpdate(float pSecondsElapsed) {
//if flag is set apply a force to the physics body
//set flag to false to wait for next touch event
}

@Override
public void reset() {

}

关于android - 如何使用 AndEngine 通过在球上滑动来扔/扔球?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20540858/

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