我的简单2D瓷砖地图游戏遇到问题。我在屏幕上有一个角色,可以在由图块/块组成的世界中向各个方向移动。基本上,我创建了一个数组,其中的数字应该表示不同类型的块,而这些块又表示地面,天空和云彩。创建地图时会有所帮助。
此数组用于上下文:
from tkinter import *
window = Tk()
canvas = Canvas(window, width=300, height=300)
canvas.pack()
def add(image, x, y):
canvas.create_image(x, y, image=image)
image1 = PhotoImage(file="images/AceHearts.png")
image2 = PhotoImage(file="images/AceClubs.png")
image3 = PhotoImage(file="images/AceDiamonds.png")
canvas.after(1000, add, image1, 50, 50) # run after 1 sec
canvas.after(2000, add, image2, 70, 50) # run after 2 sec
canvas.after(3000, add, image3, 90, 50) # run after 3 sec
window.mainloop()
基本上,我想做的是我想将所有积木沿玩家行走的相反方向移动,以创建视图。现在,我不想使用内置的视图功能,而是要编写自己的视图,这导致了一些问题。
我已尝试使用以下代码作为示例,以查看我的想法是否可行:
int map[10][30] =
{
{2, 3, 2, 3, 3, 3, 2, 2, 2, 2, 2, 3, 2, 3, 3, 3, 2, 2, 2, 2, 2, 3, 2, 3, 3, 3, 2, 2, 2, 2},
{2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2},
{2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, 2, 2, 3, 2, 3, 2, 2, 2, 2},
{2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};
代码天空,地面和云中的对象是RectangleShapes,大小为50 x 50,并用不同的颜色区分。
此代码可用于打印世界,但由于某些原因,我根本不会移动这些块。根据我的逻辑,此代码除了打印出世界之外,还将在每一帧移动它(所有的块)。如果可以完成这项工作,则可以将view_direction向量替换为仅沿一个方向移动世界的当前移动向量,该view_direction向量根据角色的状态而变化(静止,向左移动,向右移动,向上移动,移动下)。知道我在这里做错什么的人,或者对如何创建在这种环境下工作的视图有更好,更有效,更轻松的想法的人。