[英]Java Slick2D Shooting Issue
我通常对Java和Slick2D都是陌生的,即使浏览Google之后,也找不到我的问题的答案。 在我的游戏中,我有一个当前可以来回奔跑并跳跃的角色。 我希望他能够射击弹丸,但是按照我的编码方式,当他切换方向或跳跃时,弹丸会改变轨迹。
if(input.isKeyPressed(Input.KEY_SPACE)){
shotX = charPosX;
shotY = charPosY;
if(left){
shotX += delta * -0.5f;
}else{
shotX +=delta * 0.5f;
}
}
这基本上是我目前拥有的代码。 “ left”布尔值仅说明字符是面向左还是面向右。 我感觉好像缺少一些明显的东西,但是我想知道是否有人对此有一个简单的解决方案,也许是一种在渲染后停止将镜头位置设置为角色位置的方法。 任何帮助表示赞赏。
正如您在评论中告诉您的那样,很难通过这么小的代码来确定情况,但是我认为问题在于,在按住空格键的同时,将反复执行if子句,设置子弹相对于角色的位置。
可能更好的方法是在bullet项目类中具有一个布尔值,指示是否已将其触发,然后在每个更新周期通过将增量时间乘以值来更新位置。 您描述的情况似乎在每次按住空格键时都会重置一个项目符号。
另外, 子弹只能在按住空格键的情况下移动,因为移动代码位于if语句中。 我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.