
太空出租箭是本人设计一个微重力小游戏,在游戏中操作一艘飞船安全着陆,然后乘客就会跳出来,这个程序是太空出租箭的一个辅助程序,用来设计关卡地图。
下面是部分代码预览:
"""关卡设计器.py
太空出租箭的辅助程序。本程序单击屏幕时会显示个红色的圆圈,其实就是盖一个图章。
用dot命令也可以。为了配合太空出租箭,所以用的是stamp命令。当你单击后请自行记录坐标点。作者:李兴球
"""
from turtle import *
import os
def init_screen():
"""初始化屏幕"""
screen = Screen() # 生成屏幕对象
screen.setup(960,720) # 设置分辨率
screen.delay(0) # 延时为0
screen.bgcolor("black") # 背景为黑
screen.title("太空出租箭关卡设计器")
return screen
def produce_redcircle():
"""产生红色圆形对象"""
redcircle = Turtle(shape='circle')
def onmousemove(event):
"""转换tkinter画布坐标到海龟坐标系"""
x = event.x - 480 # 新的坐标的x值要比原来的大480
y = 360 - event.y
def append(x,y):
"""把redcircle坐标添加到列表"""
def output(x,y):
"""输出所有关卡列表到文件"""
all_levels = ""
levels_amount = len(all_list)
for i in range(levels_amount):
level = "map" + str(i+1) + " = " + str(all_list[i]) + "\n"
all_levels = all_levels + level
def end_append(x,y):
"""结束添加坐标点列表,把它放入总表all_list,然后清空cors_list"""
global level_number,cors_list
if cors_list !=[]: # 避免输出空列表
level_number = level_number + 1
def explain():
"""说明字符"""
ziti0 = ("黑体",32,"normal")
ziti1 = ("宋体",16,"normal")
info0 = "关卡设计器"
info1 = "单击左键设定红圆若干,\n单击右键本关设定完毕,\n单击中键输出到文件all_levels.txt并关闭窗口"
if __name__ == "__main__":
level_number = 0
cors_list = [] # 定义一个关卡的坐标表
all_list = [] # 定义所有关卡列表,嵌套列表
screen = init_screen() # 初始化屏幕
explain() # 显示标题与说明
redcircle = produce_redcircle() # 生成redcircle
screen.cv.bind("<Motion>",onmousemove) # 绑定鼠标移动事件到onmousemove函数
screen.onclick(append,1) # 单击左键设定一个红色圆点
screen.onclick(output,2) # 单击中键输出并关闭本程序
screen.onclick(end_append,3) # 单击右键结束本次设定,准备下一次设定
screen.mainloop()
如需要查看完整源代码,请
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
