問題如下所示:Python - 在RPG遊戲中計算步驟
我對我的RPG遊戲使用pygame。 我有一個球員,響應左,右,上,下,並相應地移動座標(即。0,0 - > 1,0 - > 2,0 - > 3,0 - > 2,0)
每次我按下指定的移動按鈕向左或向右按下時,我就可以取得計數器。
問題是我的玩家可以在按住ie時移動。左鍵。 這是註冊之前發佈「永久」運動。
每當我按下按鈕1時,計數器就會上升。 現在我想o計算運動而無需計算每次按壓,因爲玩家可以在不釋放的情況下移動整個地圖並將其計爲1步。
count = 0
while True:
for e in pygame.event.get():
if e.type == KEYDOWN and e.key == K_UP:
player.changespeed(0, -3)
if e.type == KEYDOWN and e.key == K_DOWN:
player.changespeed(0, 3)
if e.type == KEYDOWN and e.key == K_RIGHT:
player.changespeed(3, 0)
if e.type == KEYDOWN and e.key == K_LEFT:
player.changespeed(-3, 0)
if e.type == KEYDOWN and e.key == K_i:
player_menu = Player_menu()
if e.type == KEYUP and e.key == K_UP:
player.changespeed(0, 3)
count += 1
if e.type == KEYUP and e.key == K_DOWN:
player.changespeed(0, -3)
count += 1
if e.type == KEYUP and e.key == K_RIGHT:
player.changespeed(-3, 0)
count += 1
if e.type == KEYUP and e.key == K_LEFT:
player.changespeed(3, 0)
count += 1
我該怎麼定義,只要供玩家X的變化,通過步驟1中相同的速度增長,如果沒有更改完成到球員,沒有步驟算的?
我不知道如果我理解正確的問題,但如果你只是想怎麼算通常玩家會移動,當用戶按下某個鍵時,可以增加「steps」計數器,例如'if event.key == pygame.K_LEFT:steps + = 1'(in your event loop)。 – skrx
我試圖計算X和Y位置的變化量,而不考慮方向。所以1步= 1像素= 0,0 - > 1,0就位。 – Emute
然後skrx給出了一個合適的答案 - 你實現增量計數器是你的決定,一個好主意是當你執行你的「字符」的x/y變量的變化 - 每當你添加/減去x或y,增加計數器。我建議不要在鍵盤輸入時這樣做,因爲你的角色有可能無法在所需的方向上移動(在牆的前面),因此不會採取步驟=>在鍵盤輸入處的計數器即使x/y位置變量沒有變化,也會增加1。 – Cribber