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

你好,请进入Q群:225792826,免费下载本站最新提供的视频教程原创源码资料,从2020年2月20号到3月底,成为本站会员只要原价的3折,即2980元*0.3 = 894元 ,向微信scratch8付款即可成为本站会员。即可拥有本站所有原创资源,并提供技术支持。如本消息修改,以最后时间的为准。

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

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

如需要查看完整源代码,请扫码付款:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,盗版必究。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿 » 太空出租箭关卡设计器_space rental rocket level designer

学本领,探索更大的世界!

李兴球博客 风火轮编程主页