我一直在努力通過一本名爲python的書爲孩子們。本書的最後一個項目是關於平臺遊戲。這場比賽被稱爲棒人先生的出口。你移動角色(一個火柴人)的方式是按左或右,他會左右移動。但是與大多數遊戲不同,如果你放棄了這個關鍵,他就會繼續前進。你如何做到這一點,所以當鑰匙被釋放後他會停下來?如何僅在按下鍵時移動字符Python。
這是一個下載代碼的鏈接:https://www.nostarch.com/pythonforkids
如果你從書上按下載示例代碼,程序是「stickmangame7」中的第18章的文件夾。如果我在代碼中嵌入了錯誤的位,我已經包含了這個鏈接。
下面是一些嵌入的代碼,其可以是正確的比特:
class StickFigureSprite(Sprite):
def __init__(self, game):
Sprite.__init__(self, game)
self.images_left = [
PhotoImage(file="stick-L1.gif"),
PhotoImage(file="stick-L2.gif"),
PhotoImage(file="stick-L3.gif")
]
self.images_right = [
PhotoImage(file="stick-R1.gif"),
PhotoImage(file="stick-R2.gif"),
PhotoImage(file="stick-R3.gif")
]
self.image = game.canvas.create_image(200, 470, image=self.images_left[0], anchor='nw')
self.x = -2
self.y = 0
self.current_image = 0
self.current_image_add = 1
self.jump_count = 0
self.last_time = time.time()
self.coordinates = Coords()
game.canvas.bind_all('<KeyPress-Left>', self.turn_left)
game.canvas.bind_all('<KeyPress-Right>', self.turn_right)
game.canvas.bind_all('<space>', self.jump)
另外:
def turn_left(self, evt):
if self.y == 0:
self.x = -2
def turn_right(self, evt):
if self.y == 0:
self.x = 2
P.S.我知道你可以使用pygame來做到這一點,但這並不是使用pygame,所以我認爲這不會起作用。
感謝您的編輯,我不擅長格式化。對於那個很抱歉。 –