Python小游戏——外星人入侵(保姆级教程)第一章 03设置飞船图片 04创建Ship类

 2023-09-05 阅读 30 评论 0

摘要:系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类——管理飞船行为的类 目录 系列文章目录 第一章:武装飞船 03:设置飞船图片 04:创建Ship类——管理飞船行为的类 一、设置飞船图片 1.注意事项 2.素材及工具 3.操作步骤

系列文章目录

第一章:武装飞船

03:设置飞船图片

04:创建Ship类——管理飞船行为的类

目录

系列文章目录

第一章:武装飞船

03:设置飞船图片

04:创建Ship类——管理飞船行为的类

一、设置飞船图片

1.注意事项

2.素材及工具

3.操作步骤

二、代码及演示

1.创建Ship类管理飞船行为

2.在屏幕上绘制飞船

3.运行效果

三、学习笔记


一、设置飞船图片

1.注意事项

A.将图片设置为位图bmp格式最简单,因为pygame默认加载位图

B.飞船图片像素大小不能太大,否则飞船会占满整个面板(我的飞船图片像素为80*102,游戏面板像素为1200*800)

2.素材及工具

图片素材来源:pixabay

pixabayhttp://pixabay.com/

改变图片格式工具:WPS图片工具箱(需要会员!其他图片编辑工具也可以,例如PS) 

3.操作步骤

A.在主项目文件夹中创建images文件夹存放图片

 B.将BMP格式、像素为80*102的飞船图片存放在images文件夹中

C.飞船图片

二、代码及演示

1.创建Ship类管理飞船行为

在与文件:alien_invasion.py同一文件夹下创建
文件:ship.py
#渗透小红帽python的学习之路
#外星人入侵小游戏
#ship.py
#管理飞船行为的类import pygameclass Ship():def __init__(self,screen):#参数screen用来指定将飞船绘制到什么地方self.screen = screen#加载飞船图片并获取其外接矩形self.image = pygame.image.load('F:/PythonProject/pythongame/images/ship.bmp')#复制图片路径后需要将斜杠改为反斜杠self.rect = self.image.get_rect()self.screen_rect = screen.get_rect()#将每艘新飞船放在屏幕中间self.rect.centerx = self.screen_rect.centerxself.rect.bottom = self.screen_rect.bottomdef blitme(self):# 在指定位置绘制飞船self.screen.blit(self.image, self.rect)

2.在屏幕上绘制飞船

修改文件:alien_invasion.py
import sys#模块sys用来退出游戏
import pygame
from settings import Setting
#导入刚创建的设置类
from ship import Ship
#导入管理飞船行为的类def run_game():pygame.init() #初始化屏屏幕对象ai_settings = Setting()# 创建Setting类的实例,并存储在ai_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()

3.运行效果

三、学习笔记

1.pygame.image.load此函数可以返回一个表示飞船的surface,参数为存放图片的地址。

2.self.image.get_rect()加载图像后,使用get_rect()获取对应的surface属性rect。

3.rect对象:处理rect对象时可使用矩形四角和中心的x,y坐标。通过这些参数指定矩形的位置。

4.pygame中原点(0,0)位于屏幕左上角,向右下方移动时,坐标值将增大。右下角的坐标值为最大值。

5.self.rect.centerx表示飞船中心坐标的x坐标。

6.self.rect.bottom表示飞船下边缘的y坐标。

7.两个属性设置好的效果为飞船处于屏幕底部中央。

8.blitme()方法可以根据self.rect指定的位置将图像绘制到屏幕上。

有什么不懂的地方在评论区留言哦!希望我的文章能对你有所帮助,如果喜欢我的文章,请点赞收藏并关注!你的认可是对我创作最大的鼓励!

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/1404.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息