Python小游戏14——雷霆战机

首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装:

bash

pip install pygame

  • 代码如下:

python

import pygame

import sys

import random

初始化Pygame

pygame.init()

设置屏幕大小

screen_width = 800

screen_height = 600

screen = pygame.display.set_mode((screen_width, screen_height))

pygame.display.set_caption("雷霆战机")

颜色定义

WHITE = (255, 255, 255)

BLACK = (0, 0, 0)

加载飞机图像

player_img = pygame.image.load("player.png") # 确保你有一个名为player.png的飞机图像文件

player_img = pygame.transform.scale(player_img, (50, 50))

player_x = screen_width // 2

player_y = screen_height - 100

player_x_change = 0

子弹定义

bullet_img = pygame.image.load("bullet.png") # 确保你有一个名为bullet.png的子弹图像文件

bullet_img = pygame.transform.scale(bullet_img, (10, 20))

bullet_x = 0

bullet_y = player_y

bullet_x_change = 0

bullet_y_change = 10

bullet_state = "ready" # "ready"表示子弹未发射,"fire"表示子弹已发射

游戏主循环

running = True

while running:

背景填充

screen.fill(BLACK)

for event in pygame.event.get():

if event.type == pygame.QUIT:

running = False

检测按键

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_LEFT:

player_x_change = -5

if event.key == pygame.K_RIGHT:

player_x_change = 5

if event.key == pygame.K_SPACE and bullet_state == "ready":

bullet_x = player_x + 20

bullet_state = "fire"

if event.type == pygame.KEYUP:

if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:

player_x_change = 0

更新飞机位置

player_x += player_x_change

if player_x <= 0:

player_x = 0

elif player_x >= screen_width - 50:

player_x = screen_width - 50

更新子弹位置

if bullet_state == "fire":

fire_bullet(screen, bullet_x, bullet_y, bullet_img, bullet_x_change, bullet_y_change)

bullet_y -= bullet_y_change

if bullet_y <= 0:

bullet_y = player_y

bullet_state = "ready"

绘制飞机

screen.blit(player_img, (player_x, player_y))

更新屏幕

pygame.display.update()

退出Pygame

pygame.quit()

sys.exit()

def fire_bullet(screen, x, y, bullet_img, x_change, y_change):

bullet_rect = bullet_img.get_rect()

bullet_rect.topleft = (x, y)

screen.blit(bullet_img, bullet_rect)

  • 注意事项:

图像文件:确保你有名为player.png和bullet.png的图像文件,并放在与你的Python脚本相同的目录中。

  • 《雷霆战机》Python小游戏的知识点总结
  1. pygame库的安装与配置

pygame是一个开源的Python库,用于制作游戏,包括图形和声音库。

安装pygame可以通过pip命令完成。

配置pygame通常意味着确保所有依赖项都正确安装,包括SDL、音频库等。

  1. 游戏窗口与图形绘制

使用pygame.display.set_mode()设置游戏窗口的大小。

使用pygame.display.set_caption()设置窗口标题。

使用pygame.image.load()加载图像,并使用pygame.Surface()创建图像对象。

使用pygame.draw.circle()、pygame.draw.rect()等函数在屏幕上绘制形状。

使用screen.blit()将图像绘制到屏幕上。

  1. 游戏循环与事件处理

游戏主循环是游戏运行的核心,通常使用while循环实现。

使用pygame.event.get()获取事件队列中的事件,并处理用户输入(如按键、鼠标点击等)。

使用pygame.quit()和sys.exit()退出游戏。

  1. 精灵(Sprite)与精灵组(Sprite Group)

精灵是pygame中用于表示游戏对象的类,通常包含图像、位置和移动速度等属性。

使用pygame.sprite.Sprite()创建精灵类,并定义其__init__()、update()和draw()方法。

精灵组用于管理多个精灵,可以方便地对它们进行更新和绘制。

  1. 碰撞检测与得分系统

使用pygame.sprite.spritecollide()检测两个精灵之间的碰撞。

可以设置得分系统,通过碰撞检测来增加或减少分数。

  1. 音频管理

使用pygame.mixer.init()初始化音频模块。

使用pygame.mixer.music.load()和pygame.mixer.music.play()加载和播放背景音乐。

可以使用pygame.mixer.Sound()加载和播放音效。

  1. 游戏状态管理

游戏状态管理涉及游戏的不同阶段(如开始、运行、结束等)的切换和处理。

可以使用变量或类来管理游戏状态,并根据状态执行相应的操作。

  1. 用户输入处理

处理键盘和鼠标输入是游戏开发中常见的需求。

使用pygame.key.get_pressed()获取键盘按键状态。

使用pygame.mouse.get_pos()获取鼠标位置,使用pygame.mouse.get_pressed()获取鼠标按键状态。

相关推荐
LKID体9 分钟前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j
小尤笔记25 分钟前
利用Python编写简单登录系统
开发语言·python·数据分析·python基础
FreedomLeo130 分钟前
Python数据分析NumPy和pandas(四十、Python 中的建模库statsmodels 和 scikit-learn)
python·机器学习·数据分析·scikit-learn·statsmodels·numpy和pandas
007php0071 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
Tech Synapse1 小时前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
一行玩python2 小时前
SQLAlchemy,ORM的Python标杆!
开发语言·数据库·python·oracle
数据小爬虫@2 小时前
利用Python爬虫获取淘宝店铺详情
开发语言·爬虫·python
编程修仙3 小时前
Collections工具类
linux·windows·python
芝麻团坚果4 小时前
对subprocess启动的子进程使用VSCode python debugger
linux·ide·python·subprocess·vscode debugger
EterNity_TiMe_4 小时前
【论文复现】神经网络的公式推导与代码实现
人工智能·python·深度学习·神经网络·数据分析·特征分析