飞行棋小游戏.py_源代码

python turtle flying chess game 飞行棋小游戏演示
python turtle flying chess game 飞行棋小游戏演示

用python的turtle制作的基本的一个飞行棋游戏,这是一个原形。可以轻易地把它扩展成一个好玩的飞行棋游戏。

以下是部分代码预览:

"""
   飞行棋小游戏.py
   按空格键会以抛物线扔出色子。QQ会根据色子的点数在棋内移动。
   
"""
import colorsys
from turtle import *
from random import *
from time import sleep

def loadmap(xs,ys):
    """
        xs,ys是以换行分隔的数据列表。
    """
    f1 = open(xs)
    xcors = f1.read()
    f1.close()
    xcors = xcors.split("\n")
    xcors.pop()
    xcors = [int(x) for x in xcors]
    f2 = open(ys)
    ycors = f2.read()
    f2.close()
    ycors = ycors.split("\n")
    ycors.pop()
    ycors = [int(y) for y in ycors]
    cors = [(x,y) for x,y in zip(xcors,ycors)]
    return cors

class Sprite(Turtle):
    """继承自Turtle的精灵类"""
    def __init__(self,image,cors):
        """image:造型,cors:坐标表"""
        Turtle.__init__(self,visible=False)
        self.end = False         # 描述是否到终点
        self.penup()
        self.shape(image)
        self.index = 0           # 坐标表从0开始
        self.cors = cors
        pass
        
    def move(self,steps):
        """从cors取坐标,移动"""
        pass
        
class Square(Turtle):
    """继承自Turtle的方块类,做色子的"""
    def __init__(self,images,cat=None):
        """初始化方法
           images:造型列表
           cat:海龟对象
        """
        Turtle.__init__(self,visible=False)
        self.penup()
        self.cat  = cat
        self.images = images
        self.amounts = len(images)
        self.sw = self.screen.window_width()
        self.sh = self.screen.window_height()
        self.da = -1              # 加速度
        self.screen.onkeypress(self.init,"space")
        
    def init(self):
        """设定初始速度准备做抛物线移动"""
        self.screen.onkeypress(None,"space")
        self.dx = randint(15,25)   # 水平速度
        self.dy = randint(15,25)   # 垂直速度
        self.goto(-self.sw//2,-self.sh//2)
        pass

    def move(self):
        """做抛物线移动"""
        pass     
        

if __name__ == '__main__':

    cors = loadmap("x表.txt","y表.txt")
    width,height = 480,360
    screen = Screen()
    screen.tracer(0,0)
    screen.colormode(255)
    screen.setup(width,height)
    screen.title("飞行棋小游戏by李兴球")
    # 注册色子的造型到形状字典中
    sezis = [f'im/{i}.png' for i in range(6)]    
    pass

    # 产生颜色表
    colorlist = []
    for y in range(100):
        x = random()
        r,g,b = colorsys.hsv_to_rgb(x,1,1)
        r,g,b = int(r*255),int(g*255),int(b*255)
        colorlist.append((r,g,b))

    # t根据cors铺地图
    t = Turtle(visible=False,shape='square')
    t.penup()
    t.shapesize(2.5,2.5,2.5)
    for cor in cors:
        t.color('gray',choice(colorlist))
        t.goto(cor)
        t.stamp()
        screen.update()
        sleep(0.01)

    sprite = Sprite(qq,cors)    # 新建一个精灵
    
    sezi = Square(sezis,sprite) # 新建一个色子
    
    screen.listen()             # 监听键盘按键

    screen.mainloop()


如需要下载完整源代码及素材,请扫码付款:

VIP免费查看

已有0人支付

本站所有作品,教程等皆为原创,版权所有。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。入住QQ群:225792826 和爱好者共同交流,并且能下载免费提供的Python资源(需提供真实姓名才可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 飞行棋小游戏.py_源代码
scratch

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

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