用户:
x博查看:0 回复:1 评论:0 创建时间:2020-12-20T19:15:37
【作品展示】

【作品介绍】
解压视频,不可操作。升级版预计明年二月发布
【作品源代码】
import pygame
import sys
import random
pygame.init()
screen = pygame.display.set_mode([750, 500])
# 设置窗口标题
pygame.display.set_caption('奔跑吧!忍者猿')
# 加载并设置窗口标题
iconImg = pygame.image.load('pkimages/logo.jpg')
pygame.display.set_icon(iconImg)
# 加载背景图片
bgImg = pygame.image.load('pkimages/bg.png')
# 加载地面图片
groundImg = pygame.image.load('pkimages/ground.png')
# 加载角喵片
playerImg = pygame.image.load('pkimages/player_run_1.png')
# 获取角色高度
playerHeight = playerImg.get_rect().height
# 自定义事件(添加障碍物定时器事件)ADDBARRIER-----------
ADDBARRIER = 24
# 启动定时器 -----------------------
pygame.time.set_timer(ADDBARRIER, int(1500))
# 背景数据
bg = {'img': bgImg,
'x': 0,
'y': 0,
'step': 2}
# 地面数据
gd = {'img': groundImg,
'x': 0,
'y': 330,
'step': 4}
# 创建列表barrierImgList,用于保存障碍物图片
barrierImgList = []
# 遍历加载图片
for i in range(1, 7):
# 完成加载障碍物图片
picName = 'pkimages/barrier' + str(i) + '.png'
barrierImg = pygame.image.load(picName)
# 向障碍物图片列表中添加障碍物图片
barrierImgList.append(barrierImg)
# 把生成障碍物封装成函数
def getBarrier():
barrierImg = random.choice(barrierImgList)
# 障碍物字典
rect = barrierImg.get_rect()
barrier = {'img': barrierImg,
'width': rect.width,
'height': rect.height,
'x': 750,
'y': 330 - rect.height,
'step': 4}
return barrier
def draw():
# 绘制背景图
screen.blit(bg['img'], [bg['x'], bg['y']])
# 绘制背景图2
screen.blit(bg['img'], [bg['x'] + 750, bg['y']])
# 绘制地面图
screen.blit(gd['img'], [gd['x'], gd['y']])
# 绘制地面图2
screen.blit(gd['img'], [gd['x'] + 750, gd['y']])
# 绘制角喵
screen.blit(playerImg, [60, 330 - playerHeight])
# 遍历列表,绘制障碍物图片
for barrier in barrierList:
screen.blit(barrier['img'], [barrier['x'], barrier['y']])
def move():
# 设置背景向左移动2个像素
bg['x'] -= bg['step']
# 判断背景图到达临界位置就重新设置背景图x坐标
if bg['x'] <= -750:
bg['x'] = 0
# 设置地面向左移动2个像素
gd['x'] -= gd['step']
# 判断地面图到达临界位置就重新设置地面图x坐标
if gd['x'] <= -750:
gd['x'] = 0
# 遍历列表,设置障碍物向左移动4个像素
for barrier in barrierList:
barrier['x'] -= barrier['step']
# 创建一个障碍物列表
barrierList = []
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 判断生成障碍物事件,使用getBarrier()函数生成障碍物添加到列表中------------
elif event.type == ADDBARRIER:
barrierList.append(getBarrier())
# 使用绘制函数
draw()
# 使用移动函数
move()
pygame.display.update()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn