猫史档案馆


【Python作品分享】wswd13e【作品秀】

用户:你好a你好a查看:0 回复:0 评论:0 创建时间:2023-07-15T22:22:29


【作品展示】

center_image

 

【作品介绍】

12e23e

 

【作品源代码】

import turtle
import copy

# -----------------------------------------------------------------
# 1、功能模块区,主要放置函数
# 绘制图形
def draw(img, x, y):
    p.goto(origin_x + x * size, origin_y - y * size)
    p.shape(img)
    p.stamp()

# 地形改变
def change_grid():
    if grid[player_y][player_x] == 2:                   # 如果角色位置地形为2
        grid[player_y][player_x] = 3                    # 就把这个地形改为3
    elif grid[player_y][player_x] == 3:                 # 如果角色位置地形为3
        grid[player_y][player_x] = 4                    # 就把这个地形改为4

# 判断游戏状态
def show_result():
    global result
    if grid[player_y][player_x] == 4:
        result = 0
    else:
        for i in grid:
            if 2 in i:
                result = 2
                break
        else:
            result = 1


def move_up():
    global player_y
    if grid[player_y-1][player_x] != 1:                 # 如果角色移动之后地形不是1(墙壁)
        player_y -= 1                                   # 角色可以移动
        change_grid()

def move_down():
    global player_y
    if grid[player_y+1][player_x] != 1:                 # 如果角色移动之后地形不是1(墙壁)
        player_y += 1                                   # 角色可以移动
        change_grid()


def move_left():
    global player_x
    if grid[player_y][player_x-1] != 1:                 # 如果角色移动之后地形不是1(墙壁)
        player_x -= 1                                   # 角色可以移动
        change_grid()

def move_right():
    global player_x
    if grid[player_y][player_x+1] != 1:                 # 如果角色移动之后地形不是1(墙壁)
        player_x += 1                                   # 角色可以移动
        change_grid()



# ------------------------------------------------------------
# 2、基本信息区,放置游戏相关的一些信息
size = 70

grid = [[0, 0, 1, 1, 1, 0],
        [0, 0, 1, 3, 1, 1],
        [1, 1, 1, 2, 2, 1],
        [1, 3, 2, 2, 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

# ------------------------------------------------------------
# 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')
result_shapes = ['失败.gif', '成功.gif', '空.gif']
for i in result_shapes:
    turtle.addshape(i)
# ------------------------------------------------------------
# 5、画面绘制区,绘制场景用的画笔,绘制场景的代码
result=2
p = turtle.Pen()
p.penup()
p.hideturtle()

s = turtle.Screen()
s.tracer(0)

while True:
    p.clear()
    for i in range(width):
        for j in range(height):
            draw(tile_shapes[grid[j][i]], i, j)
    draw('编程猫.gif', player_x, player_y)
    draw(result_shapes[result],(width-1)/2,(height-1)/2)
    turtle.update()
    show_result()
turtle.done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页