如何用python做动画_python的动画怎么弄啊

展开全部

你好,你可以考虑用turtle,这个是python自己带的简单画图的32313133353236313431303231363533e59b9ee7ad9431333431346432库,下面是一个小动画。from turtle import Turtle, Screen

MAP = '''

XXXXXXXXOX

XOOOOOOOOX

XOXXXXXXXX

XOOOOXXXXX

XXXXOXXXXX

XXXXOXXXXX

XXXXOOOOOX

XXXXXXXXOX

XOOOOOOOOX

XOXXXXXXXX

'''

MAP_ARRAY = [list(row) for row in MAP.strip().split('\n')]

MAP_ARRAY.reverse()  # put 0, 0 in lower left corner

ADJACENT = [

(0,  1),

(-1,  0),          (1,  0),

(0, -1),

]

SCALE = 3

STAMP_SIZE = 20

WIDTH, HEIGHT = len(MAP_ARRAY[0]), len(MAP_ARRAY)

def any_adjacent(x, y):

return [(x + dx, y + dy) for dx, dy in ADJACENT if 0 <= x + dx 

def move():  # slowly navigate the MAP, quit when no where new to go

x, y = turtle.position()

adjacent_squares = any_adjacent(int(x), int(y))

# always moves to first valid adjacent square, need to consider

# how to deal with forks in the road (e.g. shuffle adjacent_squares)

for adjacent in adjacent_squares:

if adjacent not in been_there:

turtle.goto(adjacent)

been_there.append(adjacent)

screen.ontimer(move, 1000)  # one second per move, adjust as needed

break

screen = Screen()  # recast the screen into MAP coordinates

screen.setup(WIDTH * STAMP_SIZE * SCALE, HEIGHT * STAMP_SIZE * SCALE)

screen.setworldcoordinates(-0.5, -0.5, WIDTH - 0.5, HEIGHT - 0.5)

turtle = Turtle('square', visible=False)

turtle.shapesize(SCALE)

turtle.speed('fastest')

turtle.penup()

for y, row in enumerate(MAP_ARRAY):  # draw the MAP

for x, character in enumerate(row):

if character == 'X':

turtle.goto(x, y)

turtle.stamp()

turtle.color('red')

turtle.shapesize(SCALE / 2)

turtle.goto(1, 0)  # should use unique character in MAP to indicate start & end points

turtle.showturtle()

been_there = []  # prevent doubling back

move()

screen.mainloop()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值