我一直在制作街机视频游戏,我需要一些关于子弹方向的帮助。现在我只有一颗不移动的子弹,它只是在它开始的地方绘制(我正在一步一步地做所有事情)。问题是我不知道子弹向右或向左的方向。我有一个名为bullet的布尔变量,当子弹被触发时(当X键被释放时)变为true。
public void pistol( boolean right ) {
if( right ) {
dbg.fillRect( barrelRightX, barrelY, barrelWidth, barrelHeight );
dbg.fillRect( handleRightX, handleY, handleWidth, handleHeight );
}
else {
dbg.fillRect( barrelLeftX, barrelY, barrelWidth, barrelHeight );
dbg.fillRect( handleLeftX, handleY, handleWidth, handleHeight );
}
if( bullet ) {
if( right )
dbg.drawOval( barrelRightX + barrelWidth, barrelY, 5, 5 );
else
dbg.drawOval( barrelLeftX - 5, barrelY, 5, 5 );
}
}
if(bullet)之前的第一段代码只是为了画手枪。我把它放在那里你可以看到右边是一个布尔参数。基本上这意味着如果子弹被射击并且如果手枪朝右,那么你会画出子弹,看起来好像它正好从枪管中出来,如果子弹被射击而且它没有朝右(这显然意味着它面向左边)然后你会画它所以它看起来像它通常会出现。问题是,因为有一个巨大的动画循环来运行整个程序,当我发射子弹并改变手枪的方向(从右到左或从左到右)时,子弹会改变位置,这不应该发生。我尝试制作子弹最终版,但是当X键被释放时,我需要它来改变它。那么,有没有办法让它最终成为最终的?
答案 0 :(得分:6)
final
只表示无法重新分配[member]变量(或者无法扩展类和其他方法;-)。它说 nothing 关于对象的可变性。我也没有在代码中看到它的用法......
在任何情况下,为什么不创建一个新的子弹[对象] 当枪被解雇时?也就是说,“方向”和“初始位置”是Bullet在创建时已知的方面。这允许产生和处理[多个独立的]子弹而不用担心不必要的交互......(1子弹只是N子弹的一个特例)。