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()获取鼠标按键状态。

相关推荐
恬淡虚无真气从之41 分钟前
django中entity.save(using=)的使用
数据库·python·django
lovelin+v175030409661 小时前
电商平台店铺运营:巧用 API 接口的策略之道
java·大数据·后端·python
AI原吾1 小时前
构建灵活、高效的HTTP/1.1应用:探索h11库
网络·python·网络协议·http·ai·h11
傻啦嘿哟1 小时前
Python中的HTTP高手:如何玩转requests模块
开发语言·python·http
Jason-河山2 小时前
Python 爬虫的寻宝大冒险:如何捕获 API 数据的宝藏
开发语言·爬虫·python
程序媛96882 小时前
计算机毕业设计——ssm基于HTML5的互动游戏新闻网站的设计与实现录像演示2021
开发语言·游戏·毕业设计·课程设计
南宫理的日知录2 小时前
96、Python并发编程:三个核心概念及Python并发编程模型
开发语言·python·编程学习
程序员编程指南2 小时前
python类与对象
python
cocosgirl2 小时前
python中高频小脚本汇合
linux·python
世间万物皆对象2 小时前
Java 基础教学:方法与数组-数组
java·开发语言·python