[英]tkinter move object on canvas
我是python的新手。 我正在嘗試在畫布上實現簡單的對象移動。
想法是簡單地更新X,Y坐標並重繪橢圓。
我嘗試每次更新坐標時都使用canvas.update()
但是這種方式不起作用。
class character():
x = 10
y = 10
color = "red"
canvas.create_oval(x, y, x + 40, y + 40, fill=color)
def moveup():
character.y -= 10
def moveright():
character.x += 10
def movedown():
character.y += 10
def moveleft():
character.x -= 10
def choose():
choosen_move = randint(0, 4)
if choosen_move == 0:
moveup()
elif choosen_move == 1:
moveright()
elif choosen_move == 2:
movedown()
elif choosen_move == 3:
moveleft()
print "%s | %s" % (character.x, character.y)
canvas.update()
sleep(1)
while True:
choose()
root.mainloop()
代替character.x += 10
或character.y -= 10
,您需要使用move
:
canvas.move(oval, 10, 0) # for x += 10
canvas.move(oval, 0, -10) # for y -= 10
其余應遵循。
您可以說oval = canvas.create_oval(x, y, x + 40, y + 40, fill=color)
代替Character
類。
**請注意:這些代碼均無效-只是在這里為您提供有關操作方法的想法。 :)
我有綁定到鍵盤的對象,這些對象在按下按鈕時會在屏幕上移動。
除了循環之外,您還可以使用config和bind更改對象的x和y ...當您在鍵盤上向左按時,將運行def來移動事物。 (或事物)
def move_object_left()...
object.config(move left...)
綁定內容的示例:
entry.bind('<ButtonRelease-1>', lambda event: self.maximise_keyboard(event.widget))
x_var = 5 y_var = 9
**在此處將對象綁定到鍵盤:
*On_key_press('RIGHT'):
x_var = x_var + 5
object.config(x = x_var)
如果需要,您可以一次移動一堆東西(盡管您必須自己編寫代碼,哈哈)
list_of_stuff = [樹,灌木,蝸牛]
for entry in list_of_stuff:
...
**Get object X and Y of the object...
** add a number to this X and Y...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.