飞行棋小游戏.py_源代码

飞行棋小游戏.py_源代码

python turtle flying chess game 飞行棋小游戏演示
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()


如需要下载完整源代码及素材,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

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

评论已关闭。