2016-10-24 9 views
-1

他の類似スレッドを検索しましたが、何も出ませんでした。スプライトをウィンドウにblitして5秒(5000ミリ秒)と言うことができるようにしたいのですが、時間が過ぎると、ブロックが解除されます。ありがとうございました。設定時刻にスプライトをウィンドウに表示する方法

class Flag(): 

    def Flagrun(self): 
     flaggen = str(randint(1,4)) 
     global milliseconds 
     global flagactive 
     if flaggen == '1': 
      flag_x = 58 
      flag_y = 89 

     elif flaggen == '2': 
      flag_x = 464 
      flag_y = 82    

     elif flaggen == '3': 
      flag_x = 343 
      flag_y = 215 

     elif flaggen == '4': 
      flag_x = 66 
      flag_y = 535 

     window.blit(flag, (flag_x,flag_y)) 
     collisiondet() 
     milliseconds += clock.tick_busy_loop(60) 
     print(milliseconds) 
     flagactive = 'No' 
+1

必要に応じて転記するのではなく、質問にコードを掲示する必要があります。 – techydesigner

+0

あなたはよりわかりやすくする必要があります。スプライトは5ミリ秒ごとにblitするか、プログラム開始時に5秒間blitしますか? –

+0

だから、このコードが呼び出されると、ifやelif文のそれぞれにflag_xとflag_yの座標を与える必要があります。ゲーム自体について心配しないでください、それは説明するのが難しいでしょう。私が望むのは、14000ミリ秒ごとにblitするフラグで、それぞれが4000ミリ秒間画面にとどまっていることです。これは理にかなっていますか? –

答えて

0

達成しようとしていることを達成する方法はたくさんあります。画像を「ぼかす」ことはできません。画面を消去するか、背後にあるものを再描画するか、画像を上書きする必要があります。

赤い円を1秒おきに、青い円を2秒おきに、緑色の円を3秒ごとに、黄色の円を3秒ごとに表示する非常に基本的なプログラムです。これは、モジュロを使用して、いつ物事を表示すべきかを追跡する。

import pygame, sys 
pygame.init() 
screen = pygame.display.set_mode([400,100]) 
clock = pygame.time.Clock() 

timer = 0 
fps = 60 
while 1: 
    clock.tick(fps) 
    timer += 1 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      sys.exit() 
    screen.fill([255,255,255]) 
    if int(timer/fps)%2==0: 
     pygame.draw.circle(screen, [255,0,0], [0,0], 50) 
    if int(timer/(fps*2))%2==0: 
     pygame.draw.circle(screen, [0,0,255], [100,0], 50) 
    if int(timer/(fps*3))%2==0: 
     pygame.draw.circle(screen, [0,255,0], [200,0], 50) 
    if int(timer/fps)%3==0: 
     pygame.draw.circle(screen, [255,255,0], [300,0], 50) 
    pygame.display.flip() 

あなたのプログラムにも同様のものを含めることができます。これを行う方法と混同している場合は、コードを投稿して文脈に入れてください。私は(学校コンピュータを使って)このコードをテストすることはできませんでしたが、うまくいくはずです。その他ご不明な点がございましたら、下記のコメントにご記入ください。できるだけ早く返信いたします。

関連する問題