admin 管理员组

文章数量: 887021


2024年3月1日发(作者:z型注射法示范图)

卡西欧计算器飞机大战游戏代码

[object Object]

以下是一个使用卡西欧计算器编写的飞机大战游戏代码:

```

'版本:1.0

'适用于卡西欧计算器

'游戏设置

Dim screenWidth As Integer = 127

Dim screenHeight As Integer = 63

Dim playerWidth As Integer = 5

Dim playerHeight As Integer = 5

Dim bulletWidth As Integer = 1

Dim bulletHeight As Integer = 3

Dim enemyWidth As Integer = 4

Dim enemyHeight As Integer = 4

Dim enemySpeed As Integer = 1

Dim maxBullets As Integer = 5

Dim maxEnemies As Integer = 5

'游戏状态

Dim gameOver As Boolean = False

Dim score As Integer = 0

'玩家

Dim playerX As Integer = (screenWidth - playerWidth) / 2

Dim playerY As Integer = screenHeight - playerHeight - 1

'子弹

Dim bulletsX(maxBullets - 1) As Integer

Dim bulletsY(maxBullets - 1) As Integer

Dim bulletsFired(maxBullets - 1) As Boolean

'敌人

Dim enemiesX(maxEnemies - 1) As Integer

Dim enemiesY(maxEnemies - 1) As Integer

Dim enemiesAlive(maxEnemies - 1) As Boolean

'游戏循环

While Not gameOver

'清空屏幕

ClrDraw

'绘制玩家

DrawBox playerX, playerY, playerX + playerWidth, playerY +

playerHeight

'绘制子弹

For i = 0 To maxBullets - 1

If bulletsFired(i) Then

DrawBox bulletsX(i), bulletsY(i), bulletsX(i) + bulletWidth,

bulletsY(i) + bulletHeight

EndIf

Next i

'绘制敌人

For i = 0 To maxEnemies - 1

If enemiesAlive(i) Then

DrawBox enemiesX(i), enemiesY(i), enemiesX(i) + enemyWidth,

enemiesY(i) + enemyHeight

EndIf

Next i

'显示得分

Locate 1, 1

Print "得分:" + Str$(score)

'移动玩家

If GetKeyState(K_LEFT) Then

playerX = playerX - 1

EndIf

If GetKeyState(K_RIGHT) Then

playerX = playerX + 1

EndIf

'发射子弹

If GetKeyState(K_UP) Then

For i = 0 To maxBullets - 1

If Not bulletsFired(i) Then

bulletsFired(i) = True

bulletsX(i) = playerX + playerWidth / 2 - bulletWidth / 2

bulletsY(i) = playerY - bulletHeight

Exit For

EndIf

Next i

EndIf

'移动子弹

For i = 0 To maxBullets - 1

If bulletsFired(i) Then

bulletsY(i) = bulletsY(i) - 1

'子弹与敌人碰撞检测

For j = 0 To maxEnemies - 1

If enemiesAlive(j) Then

If bulletsX(i) >= enemiesX(j) And bulletsX(i) <= enemiesX(j)

+ enemyWidth And bulletsY(i) >= enemiesY(j) And bulletsY(i) <=

enemiesY(j) + enemyHeight Then

bulletsFired(i) = False

enemiesAlive(j) = False

score = score + 1

Exit For

EndIf

EndIf

Next j

'子弹与屏幕边界碰撞检测

If bulletsY(i) < 0 Then

bulletsFired(i) = False

EndIf

EndIf

Next i

'生成新的敌人

For i = 0 To maxEnemies - 1

If Not enemiesAlive(i) Then

enemiesAlive(i) = True

enemiesX(i) = Rnd * (screenWidth - enemyWidth)

enemiesY(i) = 0

Exit For

EndIf

Next i

'移动敌人

For i = 0 To maxEnemies - 1 If enemiesAlive(i) Then

enemiesY(i) = enemiesY(i) + enemySpeed

'敌人与玩家碰撞检测

If enemiesX(i) >= playerX And enemiesX(i) <= playerX +

playerWidth And enemiesY(i) >= playerY And enemiesY(i) <=

playerY + playerHeight Then

gameOver = True

Exit While

EndIf

'敌人与屏幕底部碰撞检测

If enemiesY(i) > screenHeight Then

enemiesAlive(i) = False

EndIf

EndIf

Next i

'延时,控制游戏速度

Sleep 50

End While

'游戏结束

Cls

Locate 1, 1

Print "游戏结束"

Locate 3, 1

Print "得分:" + Str$(score)

```

这是一个简单的飞机大战游戏,玩家可以使用左右箭头键移动飞机,并使用上箭头键发射子弹。玩家需要躲避敌人的攻击,并尽可能击败更多的敌人以获得更高的得分。游戏会根据玩家是否与敌人碰撞来判断游戏是否结束,并显示最终得分。游戏中的敌人会不断向下移动,玩家需要尽量击败更多的敌人,并躲避敌人的攻击。


本文标签: 游戏 敌人 玩家 飞机 子弹