前段时间就根据python书上写完这个了,但是没有什么时间写博客,因为现在正好在复习python的一些东西,可以写一下博客来复习梳理一下整个游戏的流程。
1.效果展示
2.实现主窗体
先从最主要的开始入手,做一个游戏的窗体,因为导入了pygame,感觉在python中做一个小游戏比Java中更加容易做。可以直接设置FPS什么的,很方便。
下面是窗体部分实现代码
import pygame
from pygame.locals import * # 导入pygame中的常量
SCREENWIDTH = 822
SCREENHEIGHT = 260
FPS = 30 # 更新画面的时间
def mainGame():
global SCREEN, FPSCLOCK
pygame.init() # 使用pygame前先初始化
# 要使用pygame时钟,先创建clock对象的实例
# 用于控制每个循环多长时间运行一次
FPSCLOCK = pygame.time.Clock()
# 先创建一个窗体
SCREEN = pygame.display.set_mode((SCREENWIDTH, SCREENHEIGHT))
pygame.display.set_caption('恐龙快跑')
while True:
# 判断是否单击关闭了窗体
for event in pygame.event.get():
# 单击关闭窗体就关闭窗体
if event.type == QUIT:
exit() # 关闭窗体
pygame.display.update() # 更新整个窗体
FPSCLOCK.tick(FPS) # 循环多久运行一次
if __name__ == '__main__':
mainGame()
我们可以看下运行效果
3.游戏背景的滚动
恐龙快跑的游戏背景滚动其实是恐龙没有动,背景一直在动,这一点和飞机大战是一样的,所以实现原理也是一样,总共有两张图片,第一张图片放完后就放第二张,第二张图片放完后继续放第一张。这个和我以前写的飞机大战的绘制背景是一样的,在飞机大战里面有画图解释,链接如下:
飞机大战博客链接
先创建一个地图类
class Map():
def __init__(self, x, y):
# 背景图片加载
self.bg = pygame.image.load("images/bg.png").convert_alpha()
self.x = x
self.y = y
def map_move(self):
if self.x < -790: # 已经移动完毕
self.x = 800 # 再次开始
else:
self.x -= 5 # 一次左移动5个像素点
def map_update(self):
SCREEN.blit(self.bg, (self.x, self.y))
当游戏开始后,因为地图要移动&#x