猫史档案馆


急,在线等,1-16上午9:00要用

用户:cogmohcogmoh查看:1 回复:2 评论:1 创建时间:2023-01-15T19:42:38


import turtle # ----------------------------------------------------------------- # 1.基本信息区,放置游戏相关的一些信息 size = 70
grid = [[0, 0, 1, 1, 1, 0], [0,0,1,3,1,1], [1,1,1,2,2,1], [1,3,4,4,2,1], [1,1,2,2,2,1], [0,1,1,1,1,1]] width = len(grid[0]) height = len(grid) origin_x = -(width-1) / 2 * size origin_y = (height-1) / 2 * size #角色初始位置 player_x = 1 player_y = 3
# ------------------------------------------------------------ # 2.功能模块区,主要放置函数 def change_grid():     global grid, player_x, player_y     if grid[player_y][player_x]==2:         grid[player_y][player_x] == 3     elif grid[player_y][player_x] == 3:         grid[player_y][player_x] ==4
def draw(pen, img, x, y):     global origin_x ,origin_y,size     pen.goto(origin_x + x * size, origin_y - y * size)     pen.shape(img)     pen.stamp()
def move_up():     global player_x, player_y, grid     player_y -= 1     #移动范围     if player_y < 0:         player_y += 1     elif grid[player_y][player_x] == 1:         player_y += 1     change_grid()
def move_down():     global player_x, player_y, grid     player_y += 1     #移动范围     if player_y >= height:         player_y -= 1     return     elif grid[player_y][player_x] == 1:         player_y -= 1     return     change_grid() def move_left():     global player_x, player_y, grid     player_x -= 1     #移动范围     if player_x < 0:         player_x += 1     return     elif grid[player_y][player_x] == 1:         player_x += 1     return     change_grid() def move_right():     global player_x, player_y, grid     player_x += 1     #移动范围     if player_x >= width:         player_x -= 1     return     elif grid[player_y][player_x] == 1:          player_x -= 1     return     change_grid() # ------------------------------------------------------------ # 3.操作事件区,放置键鼠操作相关的内容 turtle.onkey(move_up,'Up') turtle.onkey(move_down, 'Down') turtle.onkey(move_left, 'Left') turtle.onkey(move_right, 'Right') turtle.listen() # ------------------------------------------------------------ # 4.场景素材区,添加游戏画面相关的素材 tile_shapes = ['空.gif', '墙壁.gif', '通道.gif', '目标.gif', '箱子.gif'] for i in tile_shapes:     turtle.addshape(i) turtle.addshape('编程猫.gif')
# ------------------------------------------------------------ # 5.画面绘制区,绘制场景用的画笔,绘制场景的代码 p = turtle.Pen() p.penup() p.hideturtle()
turtle.tracer(False) while True:     p.clear()-------------------------------------tkinter.TclError:invalid command name ".!canvas"     for i inrange(width):         for j inrange(height):             draw(p,tile_shapes[grid[j][i]],i,j)             draw(p,'编程猫.gif',player_x,player_y)              turtle.update()              turtle.done()


回复

上一页1 页 / 共 1下一页
cogmohcogmoh

这是什么报错

 

点赞0


评论


cogmohcogmoh

 

import turtle
# -----------------------------------------------------------------
# 1.基本信息区,放置游戏相关的一些信息
size = 70
grid = [[0, 0, 1, 1, 1, 0],
        [0, 0, 1, 3, 1, 1],
        [1, 1, 1, 2, 2, 1],
        [1, 3, 4, 4, 2, 1],
        [1, 1, 2, 2, 2, 1],
        [0, 1, 1, 1, 1, 1]]
width = len(grid[0])
height = len(grid)
origin_x = -(width-1) / 2 * size
origin_y = (height-1) / 2 * size
p_x = 1
p_y = 3
# ------------------------------------------------------------
# 2.功能模块区,主要放置函数
def c_g():
    global grid, p_x, p_y
    if grid[p_y][p_x] == 2:
        grid[p_y][p_x] = 3
    elif grid[p_y][p_x] == 3:
        grid[p_y][p_x] = 4
def darw(pen, img, x, y):
    global origin_x, origin_y
    p.goto(origin_x + x * size, origin_y - y * size)
    p.shape(img)
    p.stamp()
def move_up():
    global p_y, p_y, grid
    p_y -= 1
    if p_y <= 0:
        p_y += 1
        return
    elif grid[p_y][p_x] == 1:
        p_y -= 1
        return
    c_g()
def move_down():
    global p_y, p_y, grid
    p_y += 1
    if p_y >= height:
        p_y -= 1
        return
    elif grid[p_y][p_x] == 1:
        p_y -= 1
        return
    c_g()
def move_left():
    global p_x, p_y, grid
    p_x -= 1
    if p_x < 0:
        p_x += 1
        return
    elif grid[p_y][p_x] == 1:
        p_x += 1
        return
    c_g()
def move_right():
    global p_x, p_y, grid
    p_x += 1
    if p_x >= width:
        p_x -= 1
        return
    elif grid[p_y][p_x] == 1:
        p_x -= 1
        return
    c_g()
# ------------------------------------------------------------
# 3.操作事件区,放置键鼠操作相关的内容
turtle.onkey(move_up, 'Up')
turtle.onkey(move_down, 'Down')
turtle.onkey(move_left, 'Left')
turtle.onkey(move_right, 'Right')
turtle.listen()
# ------------------------------------------------------------
# 4.场景素材区,添加游戏画面相关的素材
tile_shapes = ['空.gif', '墙壁.gif', '通道.gif', '目标.gif', '箱子.gif']
for i in tile_shapes:
    turtle.addshape(i)
turtle.addshape('编程猫.gif')
# ------------------------------------------------------------
# 5.画面绘制区,绘制场景用的画笔,绘制场景的代码
p = turtle.Pen()
p.penup()
p.hideturtle()
turtle.tracer(False)
while True:
    p.clear()
    for i in range(width):
        for j in range(height):
            darw(p, tile_shapes[grid[j][i]], i, j)
    darw(p, '编程猫.gif', p_x, p_y)
    turtle.update()
turtle.done()

点赞0


评论