少儿编程教学:手把手教你用Python编写推星星游戏(一)
游戏分享:手把手教你用Python编写推星星
游戏 (一)
2017.12.03
相信大家小时候
一定都玩过一个经典游戏
推箱子
今天,我们就一起来学习
推箱子的姐妹版游戏
推星星
这款游戏可以说是进阶版
不仅在视觉效果上进行了增进
关卡设计也相对较难
你,准备好了吗?
游戏介绍
推星星游戏中,玩家在一个地上有许多星星、砖块、箱子的小房间里,他需将所
有星星找出来并推到带有星标方块的方格中;当星星推到靠墙或者碰到另外一个星
星的时候,玩家就不能再继续推动当前星星了,唯一的办法只能是重启关卡;当所
有星星被推上星标方块后,这一关就完成了并进入下一关。
TIPS
游戏中的每一关都由许多2D网格方块组成,所有方块元素都能放在彼此的旁边,
所以我们可以通过增加一些障碍方块来创造出许多困难有趣的关卡。
The InitialSetup (初始设置)
1.#
2.# 游戏分享之五:推星星
3.#
4.#
5.
6. import random, sys, copy, os, pygame
7.from pygame.locals import *
8.
9.FPS 30# 帧数
10.WINWIDTH 800# 游戏窗口宽度 (像素)
11.WINHEIGHT 600# 游戏窗口高度 (像素)
12.HALF_WINWIDTH int(WINWIDTH / 2)
13.HALF_WINHEIGHT int(WINHEIGHT / 2)
14.
15.# 每个方块大小 (像素).
16.TILEWIDTH 50
17.TILEHEIGHT 85
18.TILEFLOORHEIGHT 45
19.
20.CAM_MOVE_SPEED 5# 镜头移动时每一帧的像素
21.
22.
23.# 地图外有额外装饰的方块比例
24.OUTSIDE_DECORATION_PCT 20
25.
26.BRIGHTBLUE ( 0, 170, 255)
27.WHITE (255, 255, 255)
28.BGCOLOR BRIGHTBLUE
29.TEXTCOLOR WHITE
30.
31.UP 'up'
32.DOWN 'down'
33.LEFT 'left'
34.RIGHT 'right'
这些常量将用在程序的各个部分中。
TILEWIDTH和TILEHEIGHT变量将方块设置为50像素宽和85像素高。然而这些方
块在屏幕上显示的时候会重叠起来 (稍后解释)
TILEFLOORHEIGHT意味着充当地板的部分方块大小为45像素。请见下面这张对这
些设置的图解:
在关卡房间外长草的方块将可能带有额外的装饰 (E.g.树或石头)
OUTSIDE_DECORATION_PCT常量表示这些方块将有多大比例获得这些随机装饰。
37.def main():
38. global FPSCLOCK, DISPLAYSURF, IMAGESDICT, TILEMAPPING,
OUTSIDEDECOMAPPING, BASICFONT, PLAYERIMAGES, currentImage
39.
40. # pygame初始化并创建全局变量
41. pygame.init()
42. FPSCLOCK pygame.time.Clock()
43.
44. # 因为储存在DISPLAYSURF中的表层对象
45. # 是pygame.display.set_mode()函数的返回值
46. # 所以当函数pygame.display.update()被调出时
47. # 这个表层对象就正如实际屏幕一样
48. DISPLAYSURF pygame.display.set_mode((WINWIDTH, WINHEIGHT))
49.
50. pygame.display.set_caption('Star Pusher')
51. BASICFONT pygame.font.Font('freesansbold.ttf', 18)
这是通常Pygame在程序最开始设置时需要做的