这篇文章主要讲解了“Python外星人入侵游戏开发中怎么添加飞船图像”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python外星人入侵游戏开发中怎么添加飞船图像”吧!
用法分析
下面将飞船加入到游戏中。为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再使用Pygame方法blit() 绘制它。
选择用于表示飞船的图像后,需要将其显示到屏幕上。我们将创建一个名为ship 的模块,其中包含Ship 类,它负责管理飞船的大部分行为。
代码实例
#======================================================
#功能:ship 类
import pygameclass Ship(): def __init__(self, screen): """初始化飞船并设置其初始位置""" self.screen = screen # 加载飞船图像并获取其外接矩形 ❶ self.image = pygame.image.load('images/ship.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)
首先,我们导入了模块pygame 。Ship 的方法__init__() 接受两个参数:引用self 和screen ,其中后者指定了要将飞船绘制到什么地方。为加载图像,我们调用了pygame.image.load() (见❶)。这个函数返回一个表示飞船的surface,而我们将这个surface存储到了self.image 中。
加载图像后,我们使用get_rect() 获取相应surface的属性rect (见❷)
我们将把飞船放在屏幕底部中央。为此,首先将表示屏幕的矩形存储在self.screen_rect 中(见❸),再将self.rect.centerx (飞船中心的x 坐标)设置为表示屏幕的矩形的属性centerx (见❹)
在❺处,我们定义了方法blitme() ,它根据self.rect 指定的位置将图像绘制到屏幕上。
#======================================================
#功能:alien_invasion类
import sysimport pygamefrom settings import Settingsfrom ship import Shipdef run_game(): # 初始化游戏并创建一个屏幕对象 pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height)) pygame.display.set_caption("外星人入侵") # 创建一艘飞船 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()
我们导入Ship 类,并在创建屏幕后创建一个名为ship 的Ship 实例。必须在主while 循环前面创建该实例(见程序第12行ship = Ship(screen)),以免每次循环时都创建一艘飞船。填充背景后,我们调用ship.blitme() 将飞船绘制到屏幕上,确保它出现在背景前面(见程序第21行ship.blitme())。
代码运行输出:
感谢各位的阅读,以上就是“Python外星人入侵游戏开发中怎么添加飞船图像”的内容了,经过本文的学习后,相信大家对Python外星人入侵游戏开发中怎么添加飞船图像这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。