- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从屏幕右下角向屏幕左侧发射射弹。现在,我希望射弹根据屏幕尺寸以随机速度和角度飞行,就像那样。现在,我知道这非常简单,但由于某种原因我无法做到这一点。
这是我迄今为止尝试过的:
我的第一次尝试 - 启动功能
private void launchProjectile() {
projectiles.peek().getBody().applyForce(projectiles.peek().getBody().getWorldVector(new Vector2(MathUtils.random(-20,-1*SCALAR_HEIGHT),
MathUtils.random(2*SCALAR_HEIGHT,8*SCALAR_HEIGHT)).scl(MathUtils.random(3*SCALAR_HEIGHT,5*SCALAR_HEIGHT))),
projectiles.peek().getBody().getWorldCenter(), true);
Gdx.app.log("System", String.valueOf(SCALAR_HEIGHT));
}
这是我的第二次尝试 - 启动功能
private void launchProjectile() {
float xVelocity;
float yVelocity;
xVelocity = (float) MathUtils.random(0,0)*SCALAR_WIDTH/2;
yVelocity = (float) MathUtils.random(20,20)*SCALAR_HEIGHT;
velocityProjectile.set(xVelocity,yVelocity); // Sets the velocity vector to the above values
velocityProjectile.sub(projectiles.peek().getBody().getPosition());
velocityProjectile.nor(); // Normalize the vector - Now it's fine and ready!
// Sets the start velocity of the projectile Trajectory to the current velocity
projectiles.peek().getBody().setLinearVelocity(velocityProjectile.scl(18+SCALAR_HEIGHT));
}
在这两次尝试中,射弹的飞行速度都超出了我的需要,并且没有像应有的那样考虑屏幕尺寸。
你们能告诉我正确的方法是什么吗?
谢谢!!
最佳答案
从此页面开始:http://www.iforce2d.net/b2dtut/projected-trajectory
在“应该以多快的速度发射才能达到所需的高度?”部分,您可以看到使射弹到达屏幕顶部需要多少垂直速度。因此,您会选择一个小于该值的随机数,以确保它不会超出屏幕顶部。
接下来,在“它会走多高?”部分,您可以看到公式来找出射弹达到最大高度需要多少时间步长。然后需要相同的时间才能回到起始高度。例如,假设需要 60 个时间步才能达到最大高度。这意味着需要 120 个时间步才能再次落到与开始时相同的高度。然后您可以设置发射速度的水平部分,使其在 120 个时间步长内不能超出屏幕。
关于java - 弹丸速度 box2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26329559/
所以我使用 projectile 作为 emacs 的项目管理工具,我可以在我的 emacs 中执行 projectile-ag 来查找术语。 但是我想通过文件扩展名过滤我的搜索,例如有时我只想查看
简介 我正在使用 ARKit 在增强现实中设计一款 iPhone 游戏。我的游戏的一部分涉及用户滑动以将球扔向目标。我的目的是创建一个向量,其中包含目标的 y 值和 z 值,但包含用户滑动位置的 x
我是一名优秀的程序员,十分优秀!