《python从入门到实践》习题记录:练习12-1

liftword4个月前 (03-08)技术文章27

练习 12.1:蓝色的天空 创建一个背景为蓝色的 Pygame 窗口。

提前准备的工作:在sublime里安装Terminus插件,用来运行命令行。

使用Sublime Text创建工程项目:

在Sublime Text中,选择 Project > Add Folder to Project…




选择12.1的文件夹,然后点击open


按住快捷键Cmd+Shift+P,打开输入Terminus: Toggle Panel唤起命令行工具



开始安装 pygame 库:

1.检查Python和pip是否已安装,在终端工具里输入python3 --version 和 pip3 --version


2.在当前项目中创建虚拟环境python3 -m venv venv


3.激活虚拟环境source venv/bin/activate


4.在虚拟环境中安装pygame



在当前页面按cmd+s保存py文件命名为alien_invasion.py

同时创建py文件settings.py


两个文件:alien_invasion.py和settings.py

alien_invasion.py

import sys
import pygame

from settings import Settings

class AlienInvasion:
	"""管理游戏资源和行为的类"""

	def __init__(self):
		"""初始化游戏兵创建游戏资源"""
		pygame.init()
		self.clock = pygame.time.Clock()
		self.settings = Settings()

		self.screen = pygame.display.set_mode((self.settings.SCREEN_WIDTH, self.settings.SCREEN_HEIGHT))
		pygame.display.set_caption("Alien Invasion")

	def run_game(self):
		"""开始游戏的主循环"""
		while True:
			# 监听键盘和鼠标事件
			self._check_events()
			# 每次循环时都会重绘屏幕
			self._update_screen()
			
			self.clock.tick(60)

	def _check_events(self):
		"""响应按键和鼠标事件"""
		for event in pygame.event.get():
			if event.type == pygame.QUIT:
				sys.exit()

	def _update_screen(self):
	    """更新屏幕上的图像,并切换到新屏幕"""
	    self.screen.fill(self.settings.BG_COLOR)

	    #让最近绘制的屏幕可见
	    pygame.display.flip()

if __name__ == '__main__':
	#创建游戏实例兵运行游戏
	ai = AlienInvasion()
	ai.run_game()

settings.py

class Settings:
	"""存储游戏《外星人入侵》中所有设置的类"""

	def __init__(self):
		"""初始化游戏的设置"""
		#屏幕设置
		self.SCREEN_WIDTH = 1200
		self.SCREEN_HEIGHT = 800
		#蓝色的RGB颜色值是(0, 0, 255)
		self.BG_COLOR = (0, 0, 255)

在终端中运行python3 alien_invasion.py


背景为蓝色的页面展示


相关文章

Python新手精选:20个必做算法题,全面提升编程实力!

以下是针对 Python 新手 精选的 20个必做算法题,涵盖基础语法、逻辑训练和算法思维,附带代码示例和关键学习点:一、基础数学与逻辑1. 判断质数关键点:循环边界优化(只需判断到平方根)2. 斐波...

加班熬夜整理出来的100道Python基础题,学到就是赚到!超级详细

Python在编程圈里可谓是非常流行,最近两年更是火出了编程圈,越来越多不是程序员的朋友也了解到Python,但是,对Python岗位的要求也越来越高。无论你是零基础还是老前辈,对于Python面试都...

一学就废|Python基础碎片,关于函数的自测题

测试题1print(type(type(int))) 以输出结果为: A. B. C.Error D.0 题1详细解释在 Python 中,int 是用来表示整数的数据类型。例如 1、100...

别再死记硬背!Python函数知识点和练习题都在这里,速来挑战!

Python函数知识点教程一、函数的定义与调用定义函数:使用 def 关键字。def greet(name): print(f"Hello, {name}!")调用函数:传递实际参数。gree...

一套真实的Python面试题,几十个题目汇总

1. (1)python下多线程的限制以及多进程中传递参数的方式python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟...