2017-08-13 91 views
1

我想在pygame上下移動一個框。
我可以移動使用鍵a和使用權的關鍵d離開了包廂。
如何上下移動它?
我的代碼:如何在pygame中上下移動一個方框[矩形爲正方形]?

import sys 
import pygame as pg 


def main(): 
    screen = pg.display.set_mode((640, 480)) 
    clock = pg.time.Clock() 
    rect = pg.Rect(300, 220, 20, 20) 
    velocity = (0, 0) 
    done = False 

    while not done: 
     for event in pg.event.get(): 
      if event.type == pg.QUIT: 
       done = True 

     keys = pg.key.get_pressed() 
     if keys[pg.K_a]: #to move left 
      rect.x -= 4 
     if keys[pg.K_d]: #to move right 
      rect.x += 4 


     screen.fill((40, 40, 40)) 
     pg.draw.rect(screen, (150, 200, 20), rect) 

     pg.display.flip() 
     clock.tick(30) 


if __name__ == '__main__': 
    pg.init() 
    main() 
    pg.quit() 
    sys.exit() 

回答

1

您可以使用相同的邏輯水平移動,通過改變y座標:

 y-4 
     | 
x-4 <-- [_] --> x+4 
     | 
     y+4 


if keys[pg.K_w]: # to move up 
    rect.y -= 4 
if keys[pg.K_s]: # to move down 
    rect.y += 4 
+0

我的連接被中斷(我無法看到你的答案),我解決我自己,感謝 –

+0

我還有一個問題,**我怎樣才能設置它的邊界?** –

+0

@ user8455923是否要在遊戲畫面上設置邊界,或者它必須小一點,就像該框只能在特定單元格中移動一樣? – PRMoureu

-1

我覺得方向鍵的按壓會更有意義的移動框。

(內部,而沒有這樣做:循環)

if event.type == pg.KEYDOWN: 
    if event.key == pg.K_LEFT: 
     rect.x -= 4 
    if event.key == pg.K_RIGHT: 
     rect.x += 4 
    if event.key == pg.K_UP: 
     rect.y -= 4 
    if event.key == pg.K_DOWN: 
     rect.y += 4 
+0

我不使用箭頭鍵,因爲他們不會讓移動盒子不斷。 –

+0

不要試一試,它在我的最後。 –

+0

我曾嘗試過。 –

相關問題