- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在处理一个学校项目,但遇到了一些问题。我有一个 bulletList
数组,它在我的 draw()
类中循环,其中包含按下空格键时初始化的 Bullet
对象。
if(key==' '){
float currentPlayerX=playerX;
float currentPlayerY=playerY;
float currentMouseX=mouseX;
float currentMouseY=mouseY;
bullets.add(new
Bullet(currentPlayerX,currentPlayerY,currentMouseX,currentMouseY));
}
//in the draw method()
for(Bullet b: bullets){
b.shoot();
}
class Bullet{
float bulletX;
float bulletY;
float rise;
float run;
Bullet(float pX, float pY,float mX,float mY){
//I get the slope from the mouse position when the bullet was instantiated
to the bullet position (which starts at the player position and is
incremented out by the slope as shoot() is called
rise=(mY-pY)/12;
run=(mX-pX)/12;
bulletX=pX;
bulletY=pY;
}
void shoot(){
fill(255,0,0);
rect(bulletX,bulletY,7,7);
bulletX+=run;
bulletY+=rise;
}
}
本质上,Bullet
的轨迹是在第一次创建bullet
对象时确定的,最终目标是:将鼠标移动到所需的方向,按空格键酒吧,看着子弹飞去。问题是速度永远不是恒定的。当鼠标远离Player
对象时,速度还好,但是随着鼠标靠近,rise
和run
变得越来越小,Bullet
速度变得非常小。实际上,我最终搞乱了 rise
和 run
float ,并将它们除以 12,因为在其初始值时,Bullet
不是可见的。
我听说 PVectors
是提高游戏速度的好方法,但我们从未在类里面介绍过它们,而且我真的不知道从哪里开始。我也尝试过除以和乘以一个常数来尝试获得恒定的速度,但我基本上是在黑暗中拍摄的。非常感谢任何帮助,如果您对我的代码如何工作有任何疑问,请询问;我很高兴澄清。
最佳答案
您正在寻找的是一些基本的三角学知识。基本上我会 break your problem down into smaller steps :
第一步:获取子弹源和鼠标之间的角度。 Google“获取两点之间的角度”以获取大量资源。
第二步:将角度转换为单位 vector ,它是一个 x/y 对,您可以将其视为标题。 Google“将角度转换为单位 vector ”以获得大量资源。
第三步:将该单位 vector 的 x 和 y 值乘以某个速度,以获得每帧子弹应移动的量。
PVector
类确实提供了其中一些功能。查看the reference获取有用功能的列表。
如果您仍然遇到困难,请将问题范围缩小到 MCVE 。这可以像跟随鼠标画一圈一样简单。祝你好运!
关于java - 使用 PVectors 使速度恒定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50585099/
要求: 我们在数据库中有值 Chennai Baroda Bangalore New Delhi São Paulo, Lisboa San Jose 等... 所以我想将这些字符串转换成一个唯一的短
我需要通过 TCP 加密和发送数据(每条消息从几百字节到几百兆字节)以 block 从 Java 到 C++ 程序,并且需要发送的大小提前发送数据,以便收件人知道何时停止读取当前消息并处理它,然后等待
我不太知道如何问这个问题,因此我将其作为示例: 想象在一个应用程序中您有一个Country对象。此对象有两个属性:Name和'Bordering Countries'集合。稍后可能会添加更多属性,但这
我们正在尝试使用 IoT 中心、流分析和表存储来处理仪表板上的事件驱动图标(开/关/事件)。我无法让实际过程在 6 秒内完成。流分析的水印恒定为 5 秒。该网站声称即时处理。 https://azur
我正在尝试获取一个 JTabbedPane,其中所有选项卡(实际选项卡,而不是组件)具有相同的宽度(最宽标签所需的最小宽度或恒定宽度)。 我试图覆盖 BasicTabbedPaneUI.getTabB
你好安卓开发者, 我正在使用 OpenGLES 1.0 在 Eclipse 中为 Android 开发一个简单的游戏。我正在使用 Samsung Galaxy S2 Android(2.3) 作为开发
我正在尝试使用 ColorMatrix 为整个图像设置一个恒定的色调值。我的目标是使整个图像看起来颜色相同,而不会失去任何区域的亮度。我找到了一种使用 ColorMatrix 来移动图像的色调值的方法
我最近将我的 Postgres 数据库从 Windows 迁移到 CentOS 6.7。在 Windows 上,数据库从不使用太多 CPU,但在 Linux 上,我看到它使用恒定的 ~30% CPU(
你好,我正在用 SDL2 开发一款很棒的游戏,我添加了一个 FPS 调节器以使其在每台机器上都能流畅运行,但后来我创建了一个示例程序来输出 fps(不是调节,只是输出以查看电流的功率机器运行 ) 我在
我在 IntelliJ IDEA 13.0 中开发了一个应用程序,但是当我在我的设备上运行该应用程序时,它会不断等待调试器(如果我在 Debug模式下运行,调试器连接时没问题)但是如果远离计算机,我无
我想在 stat_密度2 图中绘制多个组,其中 alpha 值与每组中的观察计数相关。然而,由 stat_密度2d 形成的水平似乎已标准化为每组中的观察数量。例如, temp <- rbind(mov
我是一名优秀的程序员,十分优秀!