太空出租箭是本人设计一个微重力小游戏,在游戏中操作一艘飞船安全着陆,然后乘客就会跳出来,这个程序是太空出租箭的一个辅助程序,用来设计关卡地图。
下面是部分代码预览:
"""关卡设计器.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资源。)