问题标签 [game-physics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
810 浏览

android - Android AndEngine 模拟控制器

我是AndEngine的新手,

我可以使用标准模拟控制器并只允许水平垂直移动它吗?

我不明白我可以使用这个控制器来绘制我自己的 X\Y 坐标,但是如果有标准功能来制作这样的水平\垂直控制器,我会很有趣吗?(不仅忽略其中一个轴,而且限制在其上移动)

谢谢回答。

0 投票
1 回答
944 浏览

android - AndEngine 中的手绘物理对象

我发现“Chalk Ball 是用andengine 和 Box2D 作为物理引擎开发的”。

粉笔球是一款物理游戏。您可以用手指画一条线,它将是一个物理对象。我怎样才能做出这样的效果?我需要使用粒子系统来创建自定义曲线吗?我怎样才能像物理对象一样构建它们?或者它将是一个有很多点的多边形?

0 投票
1 回答
1880 浏览

math - 曲线精灵运动 COCOS2D

我正在尝试通过触摸拖动以等距曲线方式移动精灵位置,但没有运气。到目前为止,我使用以下代码没有运气

我试图模拟的曲线方式是 y=x^2。这可能吗?提前致谢!

0 投票
1 回答
82 浏览

game-physics - 如何确定力量是否有所作为

我正在制作一个游戏,我正在创建一个基于角色速度加速的动画系统。

问题是这不适用于跑步机的实例。

我没有跑步机的速度,但我有跑步机和角色之间的摩擦力。

我正在尝试确定是否有力量在发挥作用。仅知道施加在物体上的力、重量和速度,您将如何确定单个力是否对其速度产生影响,如果是,影响程度如何?

0 投票
3 回答
17264 浏览

math - 反射?我该怎么做?

这是我的头,有人可以更好地向我解释吗?http://mathworld.wolfram.com/Reflection.html

我正在制作一款 2d 突围格斗游戏,所以我需要球在击中墙壁、桨或敌人(或敌人击中它)时能够反射。

他们所有的公式都是这样的:x_1^'-x_0=v-2(v·n^^)n^^。

我不能这样。('是什么意思或x_0?或^^?)

0 投票
1 回答
1886 浏览

javascript - 在平台游戏中处理两个矩形的交集

我正在开发一个简单的 HTML5/Canvas/Javascript/jQuery 平台游戏。你可以在这里看到它。

我知道如何检查两个矩形的交集(这里有几个问题),我的游戏检查并处理两个矩形的交集,但仅在非常特定的情况下,并且只是因为角色是不比我的街区宽。

我的问题:我如何计算两个矩形的交点,我可以知道交点从哪个方向发生?我能想到的唯一方法包括 20 多个 if 语句(这不是正确的方法吗?)。

我需要知道相交的方向,因为我向前“窥视”以查看我的精灵坐标 (x + dx, y + dy) 是否会与矩形相交,如果会,请将精灵的新坐标设置为边缘下一个刻度上的矩形。

0 投票
1 回答
316 浏览

opengl - 如何在opegl中获得三角形的中点

我有在平面上绘制三角形的代码,如下所示

如果我的直角三角形是从点 (0,0,-6) 绘制的。我想计算三角形的中点和顶点(越来越像圆的半径或直径)。是直角三角形吗?

0 投票
1 回答
1341 浏览

box2d - Box 2D - 有没有办法将地面 b2EdgeShape 向上移动

我正在开发一款 iPhone 游戏,地面是一个长而重复的矩形精灵对象,它在屏幕底部上方延伸约 30 像素。我正在尝试将我的地面边缘形状对齐 30 像素,以便当玩家精灵从跳跃降落在地面上时,他将降落在地面图像的顶部。当我尝试添加以下代码时,它不起作用:

我意识到我可以使用矩形作为地面,但由于我的玩家精灵只与图像的顶部发生碰撞,我宁愿使用边缘形状。

0 投票
1 回答
1921 浏览

android - 用 Box2D 制作角色动画的最佳方法是什么?

我正在为 Android 开发一个 2D 水下动作角色扮演游戏,使用 Box2D 作为物理引擎,主要用于在由墙壁、岩石和其他生物组成的环境中的碰撞检测、碰撞响应和游戏中角色的移动。

我尝试了两种不同的方法来使用 Box2D 实现角色动画,并发现两者都有问题。由于我是 Box2D 和物理引擎的新手,我会很感激关于如何最好地完成这些事情的建议。

我正在尝试做的动画示例如下:

一条鱼想要攻击另一条鱼,以下操作也是如此:
1) 以速度向目标移动
2) 咬一口目标生物
3) 转身逃跑,回到攻击开始的地方
4) 转身面对目标,准备好进行另一次攻击

我尝试过的两种方法是:

A)对攻击者施加一个力(使用body.applyForce()
将其移向目标,然后在碰撞后再次将其移
回以极快的速度返回,并从墙上反弹,到处都是。速度是相当随机的,取决于它影响目标的位置、目标的质量等。它会破坏动画并且看起来很糟糕。
* 很难弄清楚应该对攻击者施加什么力以及何时在物理世界中模拟特定动画以使其看起来逼真

B)直接设置攻击者的位置(使用body.setTransform())将攻击者移动到正确的位置,因为它每一步向前移动,然后再次向后移动。
问题:
* 直接设置位置可以让攻击者忽略与墙壁和其他生物的碰撞,因此卡在墙上很常见
* 如果玩家正在攻击,我会在玩家移动时更新世界原点,以使玩家保持在屏幕中间。这很好用,除非我开始动画,因为我不希望屏幕跟随动画,但只有现有速度的运动分量,我不知道,因为我正在覆盖 Box2D 力/我设定位置时的速度。我敢肯定,这是可能的,但很困难——也许我遗漏了一些明显的东西。

我应该监控碰撞吗?覆盖碰撞响应??还有什么?

那么,你会建议我如何解决这个问题?

0 投票
1 回答
1022 浏览

android - 如何使用 libgdx 在 Box2D 中的碰撞事件中设置 false/NoCollision?

我正在为 Android 开发一个 2D 水下动作角色扮演游戏,使用 Box2D 作为物理引擎,主要用于在由墙壁、岩石和其他生物组成的环境中的碰撞检测、碰撞响应和游戏中角色的移动。

我正在尝试实现角色动画(根据在 Box2D 中做角色动画的最佳方法)。

问题是我想在发生碰撞时抑制碰撞响应。有人告诉我应该在碰撞事件中设置“NoCollision”,我假设您在 Pre-Solve 事件中通过 b2Contact::SetEnabled(false) 进行设置。但是,libgdx JNI 实现没有实现接口中的 pre-solve 或 post-solve 方法,因为它可以“以另一种方式完成” ,如此处所述

有谁知道我还能怎么做?

我是 Box2D 的新手,发现它很难,所以任何帮助将不胜感激!