本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个类似与之前写的飞机大战很类似,但是又有不同,其中增加了敌人能够发射子弹的能力。
详情请看此文章:
Pygame游戏模块介绍二:最小开发框架代码_pygame最小开发框架_牧子川的博客-CSDN博客
import pygame # 制作游戏时要使用的模块
import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块
需要在屏幕上随机生成位置
from random import randint
详情请看此文章:Pygame游戏模块介绍一:random模块简介_random 范围_牧子川的博客-CSDN博客
【童年游戏】弹幕射击
定义主角和敌人
def draw_player():
pygame.draw.rect(screen, WHITE, (player_pos[0], player_pos[1], player_size, player_size))
def draw_enemies():
for enemy in enemies:
pygame.draw.rect(screen, RED, (enemy[0], enemy[1], enemy_size, enemy_size))
定义主角子弹和敌人子弹
def draw_bullets():
for bullet in bullets:
pygame.draw.rect(screen, WHITE, (bullet[0], bullet[1], bullet_size, bullet_size))
def draw_enemy_bullets():
for enemy_bullet in enemy_bullets:
pygame.draw.rect(screen, RED, (enemy_bullet[0], enemy_bullet[1], enemy_bullet_size, enemy_bullet_size))
敌人移动以及子弹发射
def move_enemies():
for enemy in enemies:
enemy[1] += enemy_speed
def move_bullets():
for bullet in bullets:
bullet[1] -= bullet_speed
def move_enemy_bullets():
for enemy_bullet in enemy_bullets:
enemy_bullet[1] += enemy_bullet_speed
# 生成新的敌人
if random.randint(1, 100) < 10: # 控制敌人生成的频率
new_enemy = [random.randint(0, WIDTH - enemy_size), 0]
enemies.append(new_enemy)
# 敌人发射子弹
for enemy in enemies:
if random.randint(1, 100) < 5: # 控制敌人发射子弹的概率
new_enemy_bullet = [enemy[0] + enemy_size // 2 - enemy_bullet_size // 2, enemy[1] + enemy_size]
enemy_bullets.append(new_enemy_bullet)
1.增加更加复杂的关卡
2.增加时间限制
3.增加音效
4.改变角色的状态
PyGame/弹幕射击 at main · mzc421/PyGame (github.com)
欢迎关注我的公众号:@AI算法与电子竞赛
硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!