太空出租箭关卡设计器_space rental rocket level designer

太空出租箭关卡设计器_space rental rocket level designer

太空出租箭的辅助程序

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

"""关卡设计器.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资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。