前提・実現したいこと
pygameを用いて、アクションゲーム(ドライブゲーム)のようなものを作りたいと思っています。
今は、ドライブゲームでいうところの参加者が動かせる車を赤いrectで書いています。
発生している問題・エラーメッセージ
赤いrect(車)のx座標を0.1秒ごとに取得したいのですが、最後のx座標のデータしか取得できません…。
該当のソースコード
python
1python 2import pygame 3from pygame.locals import * 4import sys 5 6BLACK = (0, 0, 0) 7RED = (255, 0, 0) 8WHITE = (255, 255, 255) 9 10pygame.init() #初期化 11screen = pygame.display.set_mode((640, 480)) #画面サイズ 12myclock = pygame.time.Clock() 13myclock.tick(60) 14pygame.display.flip() 15 16x = 320 17pos_2y=380 18pos_3y=480 19pos_4y=380 20pos_5y=480 21pos_6y=330 22pos_7y=380 23pos_8y=330 24pos_9y=380 25 26velocity_y=0.1 27 28while True: 29 with open('sample.txt', 'w') as f: 30 print(x, file=f) 31 pos_2y+=velocity_y 32 pos_3y+=velocity_y 33 pos_4y+=velocity_y 34 pos_5y+=velocity_y 35 pos_6y+=velocity_y 36 pos_7y+=velocity_y 37 pos_8y+=velocity_y 38 pos_9y+=velocity_y 39 screen.fill(BLACK) 40 st1=(330, pos_2y) 41 en1=(330, pos_3y) 42 pygame.draw.line (screen, WHITE, st1, en1) 43 st2=(320, pos_4y) 44 en2=(320, pos_5y) 45 pygame.draw.line (screen, WHITE, st2, en2) 46 st3=(280, pos_6y) 47 en3=(330, pos_7y) 48 pygame.draw.line (screen, WHITE, st3, en3) 49 st4=(270, pos_8y) 50 en4=(320, pos_9y) 51 pygame.draw.line (screen, WHITE, st4, en4) 52 rect1 = (x, 400, 10, 5) #動かすほう 53 pygame.draw.rect(screen, RED, rect1) 54 pygame.display.update() 55 for event in pygame.event.get(): 56 if event.type==pygame.QUIT: 57 pygame.quit() 58 sys.exit() 59 if event.type==KEYDOWN: 60 if event.key==K_ESCAPE: 61 pygame.quit() 62 sys.exit() 63 if event.key==K_LEFT: 64 x -= 5 65 if event.key==K_RIGHT: 66 x += 5 67 68 69 70
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー