当前位置: 首页 > 知识库问答 >
问题:

Libgdx applyforce到鼠标或手指方向

乐正宜人
2023-03-14

我想用手指或鼠标拖动动态对象,这样就不会破坏冲突检测,

身体setTransform()行为正是我所需要的,但当我使用它时,碰撞不起作用,我可以在静态物体中移动物体。

我试图使用鼠标关节,但我就是不知道它是如何工作的,有些人建议检查box2d测试平台来理解鼠标关节,但它成了我的噩梦,我错过了一些基本的东西,我认为。

我也试过applyForce和applyLinearImpulse,但我不明白它们是如何工作的,我不能将身体移动到鼠标方向,它只是到处弹跳,我无法预测它的行为。

现在我认为我对box2d缺乏一些基本的理解,我必须学习一些基本的想法,但在我学习之前,我需要快速完成这件事,很好的源代码示例将是很好的,或者解释一下如何使用其中一种或任何其他方法实现拖动对象。

谢谢。

共有1个答案

郜杰
2023-03-14

编辑-首先谈论setTransform

你应该知道的第一件事是setTransform基本上关闭了你正在摆弄的对象的box 2D物理。所以如果你想让你的运动看起来流畅自然,尽可能避免这种方法是个好主意(尽管它有它的用途)。

我对Android的手势不太了解,但这就是我用鼠标做的。除了检测到触地而不是鼠标点击之外,这可能没什么不同。

>

根据delta x和deltay得到角度θ。由于tan(θ)=deltay/deltax,那么arctan(deltay/deltax)将给出角度θ,以弧度为单位。

了解如何检测您的对象是否已被单击并按住。我将使用现有的java方法来检测一组坐标是否在形状内。我很确定libGDX在它们的形状库中有一些类似的功能,但如果没有,只需使用java形状并将它们与游戏对象同步即可。Box2d可能也有这样的方法。这不是一个很难解决的问题。

在被操纵html" target="_blank">对象的box2d主体上使用此box2d方法:

myObjectBody.applyForceToCenter(new Vector2((float)Math.cos(myMouseDirectionAngle) 
* forceYouWantToApply, (float)Math.sin(myMouseDirectionAngle) * forceYouWantToApply));

注意:您可能还需要通过将applyForceToCenter方法的wake参数设置为true,将对象的主体设置为“wake”。

 类似资料:
  • 本文向大家介绍Unity实现鼠标或者手指点击模型播放动画,包括了Unity实现鼠标或者手指点击模型播放动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了unity鼠标或者手指点击模型播放动的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我正在构建HTML5游戏,并且尝试将鼠标指针放在特定事件上的某个控件上,以便在特定方向上移动始终具有相同的结果。这可能吗? 问题答案: 因此,我知道这是一个古老的话题,但是我首先要说这是不可能的。当前最接近的事情是将鼠标锁定在单个位置,并跟踪其x和y的变化。这个概念已经被Chrome和Firefox所采用。它由所谓的 Mouse Lock进行管理 ,点击逃逸将破坏它。通过我的 简要 阅

  • 我使用Selenium和C#执行单击操作。 我可以执行点击操作,但我不能将鼠标指针(光标)移动到特定坐标或特定元素上。 这是我正在使用的代码。上下文单击正在工作,但光标未移动。 帮帮我。

  • 鼠标驱动的工作是触发包括移动、点击、滚轮在内的鼠标事件,通常我们只需要绑定系统的鼠标事件然后转换成 LCUI 的鼠标事件对象即可。 如需了解更多,可参考现有的鼠标驱动代码: ​src/platform/linux/linux_mouse.c​ ​src/platform/linux/linux_x11mouse.c​ ​src/platform/windows/windows_mouse.c​ ​

  • 鼠标是有一个或多个键的定位设备。虽然也可以使用诸如触摸画面和光笔之类的输入设备,但是只有鼠标以及常用在膝上型计算机上的轨迹球等才是渗透了PC市场的唯一输入设备。 情况并非总是如此。当然,Windows的早期开发人员认为他们不应该要求使用者为了执行其产品而必须买只鼠标。因此,他们将鼠标作为一种选择性的附加设备,而为Windows中的所有操作以及applet提供一种键盘接口(例如,查看Windows小

  • 问题内容: 根据这个(使用JavaScript在光标下找到一个单词d-under-cursor-using- javascript))链接我可以在鼠标[指针下得到一个单词。英语很好。我将其更改(对于阿拉伯语言) 但每个单词返回“ $ 1”。请帮忙! 问题答案: 您 需要 出现在原始正则表达式中的括号。在正则表达式中,括号形成一个“匹配组”,该替换组将替换字符串中的“ ”。 正则表达式中没有任何匹配