免责声明:几周前我从未使用过C语言,而且我对编程一般都不熟悉。
我正在用C写一个非常基本的太空入侵者类型的游戏。我们有一个带屏幕,操纵杆和按钮的小主板。我还远未完成,但它目前的工作方式是:
- 角色可以使用操纵杆从左到右移动屏幕底部
- 按下按钮时,它会在头顶上方创建一个子弹,然后向上移动然后消失
现在这里出现了问题。为了使子弹产生在他头顶上方,我不得不使用角色的x坐标来定义子弹的创建位置。它们存储在变量中,每当移动操纵杆时,变量就会在操纵杆代码中进行修改。
子弹的移动就像这样:一个黑色的方块迅速覆盖了子弹,在它上面画了一个新的子弹。这一直重复,直到子弹击中顶部。
所以,问题在于子弹围绕x轴移动就像角色一样。这是因为子弹的“运动”的所有矩形都被定义为使得它们的x坐标是角色x坐标的变量,当然这些坐标随操纵杆而变化。
所以我的问题是:在C中是否可以提取变量的INSTANT整数值?例如,如果我可以在创建项目符号的第一个矩形时捕获字符的x坐标的即时值,然后将该不变的整数(作为另一个变量)重新用于后续矩形的x坐标,它将出现好像子弹的运动是直的,尽管角色仍在四处移动。
TLDR:在C中是否可以提取经常变化的变量的即时整数值并将其存储在另一个变量中以供临时使用?
答案 0 :(得分:1)
当然可以。将赋值放在一个代码块中,该代码块仅在按下按钮时执行。这样,子弹x位置不会更新,直到你再次射击。