赞
踩
经过几个月的学习,自己也有了一些学习python的经验,想通过几个稍微大一点的项目的来对自己的开发能力进行训练和评估,从今天开始进行学习和练习Python编程从入门到实践这本书里面的项目。
本项目中,自己会对项目中使用的一些方法和构造进行解读,自己学会就是自己的东西。
这就是这个游戏的背景以及游戏里面的大概细节。
在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。在第一个开发阶段,我们将创建一艘可左右移动的飞船,这艘飞船在用户按空格键时能够开火。设置好这种行为后,我们就能够将注意力转向外星人,并提高这款游戏的可玩性。
在第一个开发阶段,我们将创建一艘可左右移动的飞船,这艘飞船在用户按空格键时能够开火。设置好这种行为后,我们就能够将注意力转向外星人,并提高这款游戏的可玩性。
这里我们使用
pip install pygame
http://t.csdn.cn/sPwIvhttp://t.csdn.cn/sPwIv
如果你使用的是pygame可以按照上面链接里我写的一篇文章里的安装方法进行安装。
首先我们先导入模块,其中模块对应的使用内容用注释已经写出
- # 创建 Pygame 窗口以及响应用户输入
- import sys # 使用sys模块进行退出游戏
- import pygame # 我们整个项目的重要模块
接下来我们创建一个运行游戏的函数,然后初始化创建屏幕对象
- # 定义一个运行游戏的函数
- def run_game():
- # 初始化游戏并创建一个屏幕对象
- pygame.init() # 初始化背景设置,让Pygame能够正确地工作
接下来有一个重要的知识点,
对象screen是一个surface(Surface 是一个用于绘制图像的对象。它表示一个可见的区域,可以在其上进行绘制操作,并将其显示在屏幕上。Surface 对象可以是窗口、图片、文本或其他可视元素。)在Pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素(如外星人或飞船)都是一个surface。display.set_mode()返回的surface表 示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。
-
- # 创建一个名为screen的显示窗口,实参(1200, 800)是一个元组,指定了游戏窗口的尺寸,宽1200像素,高800像素
- screen = pygame.display.set_mode((1200, 800))
就是游戏左上角的应用名
pygame.display.set_caption("外星人入侵")
- # 开始游戏的主循环
- while True: # 永真使得游戏一直执行
-
- # 监听键盘和鼠标事件
- for event in pygame.event.get(): # 使用方法pygame.event.get()。所有键盘和鼠标事件都将促使for循环运行
- if event.type == pygame.QUIT: # 如果玩家单机游戏窗口关闭按钮,则将检测到pygame.QUIT事件
- sys.exit() # 坚持到事件后,退出游戏
这里也就几行代码,解读一下:
第一行:先让游戏一直循环,作用嘛一是一直使得监听一直进行,二是还没展示的那行。
第二行,循环获取键盘和鼠标的按键操作,循环给event。
第三行,如果事件的类型为点击关闭,那么调用sys模块中的 exit()方法退出游戏。
Pygame的命令让最近绘制的屏幕可见。在这里,它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元 素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
-
- # 让最近绘制的屏幕可见
- pygame.display.flip()
调用运行游戏函数
-
- # 运行游戏
- run_game()
运行后的效果
- # 创建 Pygame 窗口以及响应用户输入
- import sys # 使用sys模块进行退出游戏
- import pygame
-
-
- # 定义一个运行游戏的函数
- def run_game():
- # 初始化游戏并创建一个屏幕对象
- pygame.init() # 初始化背景设置,让Pygame能够正确地工作
- # 创建一个名为screen的显示窗口,实参(1200, 800)是一个元组,指定了游戏窗口的尺寸,宽1200像素,高800像素
- screen = pygame.display.set_mode((1200, 800))
- """对象screen是一个surface(Surface 是一个用于绘制图像的对象。它表示一个可见的区域,可以在其上进行绘制操作,并将其显示在屏幕上。Surface 对象可以是窗口、图片、文本或其他可视元素。)
- 。在Pygame中,surface是屏幕的一部分,用于显示游戏元素。在这个游戏中,每个元素(如外星人或飞船)都是一个surface。display.set_mode()返回的surface表
- 示整个游戏窗口。我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。"""
- pygame.display.set_caption("外星人入侵")
-
- # 开始游戏的主循环
- while True: # 永真使得游戏一直执行
-
- # 监听键盘和鼠标事件
- for event in pygame.event.get(): # 使用方法pygame.event.get()。所有键盘和鼠标事件都将促使for循环运行
- if event.type == pygame.QUIT: # 如果玩家单机游戏窗口关闭按钮,则将检测到pygame.QUIT事件
- sys.exit() # 坚持到事件后,退出游戏
-
- # 让最近绘制的屏幕可见
- pygame.display.flip()
- """命令Pygame让最近绘制的屏幕可见。在这里,它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元
- 素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。"""
-
-
- # 运行游戏
- run_game()
到这里,我们就完成了创建窗口,以及响应用户的输入。
这次制作主要是通过pygame中的方法函数进行创建窗口,以及对键盘和鼠标事件进行获取推动游戏进行,进一步操作,通过sys模块的方法进行退出游戏操作,搭建了一个运行游戏开始的框架,接下来,将会一步一步进行操作,直至完成整个项目。
每日一言
尽管眼下十分艰难,可日后这段经历说不定就会开花结果。
如果我的学习项目的笔记对你有用,不妨点赞收藏一下,感谢你的支持,当然也欢迎大佬给我一下建议或是对笔记中的不足进行补充,对我学习大有帮助,谢谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。