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. 执行结果

  

 

posted @   JRS077  阅读(102)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示