12-2 游戏角色
1. 项目
找一幅你喜欢的游戏角色位图图像或将一幅图像转换为位图。创建一个类,将该角色绘制到屏幕中央,并将该图像的背景色设置为屏幕背景色,或将屏幕背景色设置为该图像的背景色。
2. 代码
- game_role.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import sys import pygame from settings import Settings from ship import Ship def run_game(): # 初始化pygame、设置和屏幕对象 pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption( "Alien Invasion" ) ship = Ship(screen) # 开始游戏的主循环 while True : # 监视键盘和鼠标事件 for event in pygame.event.get(): if event. type = = pygame.QUIT: sys.exit() # 每次循环时都重绘屏幕 screen.fill(ai_settings.bg_color) ship.blitme() # 让最近绘制的屏幕可见 pygame.display.flip() run_game() |
- settings.py
1 2 3 4 5 6 7 8 9 | class Settings(): # 存储《外星人入侵》的所有设置的类 def __init__( self ): """初始化游戏的设置""" # 屏幕设置 self .screen_width = 500 self .screen_height = 300 self .bg_color = ( 0 , 0 , 255 ) |
- ship.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import pygame class Ship(): def __init__( self , screen): """初始化飞船并设置其初始位置""" self .screen = screen # 加载飞船图像并获取其外接矩形 self .image = pygame.image.load( 'images/myplane2.bmp' ) self .rect = self .image.get_rect() self .screen_rect = screen.get_rect() # 将每艘新飞船放在屏幕底部中央 self .rect.centerx = self .screen_rect.centerx self .rect.bottom = self .screen_rect.bottom def blitme( self ): """在指定位置绘制飞船""" self .screen.blit( self .image, self .rect) |
3. 执行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律