我工作的pygame的遊戲,並試圖實現遊戲的介紹。我希望有兩個角色四處移動並說話,玩家需要按空間向前移動對話並讓介紹動畫繼續。編程遊戲介紹動畫
雖然我沒有問題,而在遊戲主循環(使用密鑰作爲輸入),實施前奏「動畫」被證明是比我想很難移動在屏幕上的主角。
我的本意是爲這兩個字符走在屏幕上不同的地方,並停止,而他們交談。然後開始在不同的方向再走,等
下面是現在我實現,但它不工作,我所期望的代碼,遊戲時間過長有時加載,因爲我加入這個新的組成部分,也是因爲它不是一個循環運動(不像我的主要遊戲循環中那樣是一個重複的while循環),而是一系列相當定義的事件,我不知道如何處理它。
我一直在做的是從main_loop
函數(這是我的主While循環中的函數)調用一個函數intro
。我注意到因爲我沒有運行重複循環,刷新不能正常工作,我必須多次調用我的更新(或翻轉)顯示,以避免字符離開屏幕上的前一個位置,但它反正仍然發生)。再次,整個事情真的很慢。
def intro():
#VARIABLES
P1_x = 280 #starting position
P1_y = 380 #starting position
P1_dir = 3 #for the player sprite sheet loading
NPC_x = 240
NPC_y = 280
NPC_dir = 2
#LOAD PLAYER CLASSES
P1 = player(P1_x, P1_y, P1_dir)
P2 = npc(NPC_x, NPC_y, NPC_dir)
gameDisplay.fill(black)
#DRAW BACKGROUND MAP PLUS BACKGROUND OBJECTS
draw_layer(intro_int_matrix, house_tiles, house_tiles_W, house_tiles_H)
draw_layer_2(intro_int_matrix_2, intro_house_2, intro_house_2_W, intro_house_2_H)
#LOOP (TRIED WITH "WHILE" ALSO) TO MAKE THE PLAYER MOVE A BIT IN A DIRECTION AND THEN STOP
for i in range (5):
P1.update(3, 0, P1_dir) #THE 3 IS THE DISTANCE TO MOVE IN X-AXIS, and 0 in Y axis
pygame.display.update()
pygame.time.delay(300) #TRIED ADDING A DELAY SO IT DOES NOT MOVE TOO FAST BUT DOES NOT HELP MUCH
#THE IDEA OF SETTING X AND Y TO 0 IS TO STOP THE MOVEMENT
P1.update(0, 0, P2_dir)
draw_layer(intro_int_matrix, house_tiles, house_tiles_W, house_tiles_H)
draw_layer_2(intro_int_matrix_2, intro_house_2, intro_house_2_W, intro_house_2_H)
pygame.display.update()
pygame.time.delay(1000)
#SHOW DIALOGUE....AND WAIT FOR "SPACE" INPUT
#THEN I WILL INCLUDE ANOTHER "FOR" LOOP TO KEEP ON MOVING TO A DIFFERENT POSITION AND CALLING THE DIALOGUE IN BETWEEN ETC, BUT I WANT TO SOLVE THE MOVEMENT PART FIRST.
編輯:我已經成功通過簡單地在我的高清介紹使用While循環(),然後使用內解決這個問題的幾種IF是那些獲得由兩個條件觸發聲明:1,步驟數字(允許我跟蹤動畫實例)和2,get_ticks()數字,它允許我控制動畫的速度。然後由於While循環,通過在我剛剛提到的IF語句中使用額外的IF語句,所有事情都會重複X次。希望這個問題很容易理解。
歡迎來到[so]。你自己解決這個問題很好。作爲問答網站,您可以*並鼓勵*在下面的答案框中發佈您的答案。記住,問題框是針對問題的,答案框是答案。謝謝! –