python
1import pygame 2from pygame.locals import * 3import sys 4import time 5def main(): 6 7 (w,h) = (400,400) # 画面サイズ 8 (x,y) = (w/2, h/2) 9 pygame.init() # pygame初期化 10 pygame.display.set_mode((w, h), 0, 32) # 画面設定 11 screen = pygame.display.get_surface() 12 pygame.display.set_caption("5byoudetomete") 13 # 画面設定 文字 14 sysfont = pygame.font.SysFont(None, 40) 15 # テキストを描画したSurface作成、画像の作成 16 click_start = sysfont.render("click to start", False, (0,0,0)) 17 count_during = sysfont.render("in measurement", False, (0,0,0)) 18 tokei = pygame.image.load("tokei.png").convert_alpha() 19 rect_tokei = tokei.get_rect() 20 rect_tokei.center = (200, 180) 21 screen.fill((255,255,255, )) # 画面の背景色 22 screen.blit(click_start, (20,350)) 23 pygame.display.update() # 画面更新 24 tmp = 0 25 while (1): 26 27 # 終了用のイベント処理 28 for event in pygame.event.get(): 29 if event.type == QUIT: # 閉じるボタンが押されたとき 30 pygame.quit() 31 sys.exit() 32 # マウスクリック1回目の処理(カウント中) 33 if event.type == pygame.MOUSEBUTTONDOWN and event.button == 1: 34 if tmp == 0: 35 t1 = time.time() 36 screen.fill((255,255,255, )) 37 screen.blit(count_during, (20,350)) 38 screen.blit(tokei, rect_tokei) # 画像の描画 39 pygame.display.update() # 画面更新 40 tmp = tmp+1 41 #マウスクリック2回目の処理(結果の出力) 42 elif tmp == 1: 43 t2 = time.time()-t1-5 44 screen.fill((255,255,255, )) 45 dif = sysfont.render("difference"+str(t2), False, (0,0,0)) 46 screen.blit(dif, (20,350)) 47 pygame.display.update() 48 tmp = 0 49 50if __name__ == "__main__": 51 main() 52```python初心者で課題としてゲーム作成をしています。 53 54現在反射神経ゲームを作ろうとしたところ挫折し、ストップウォッチゲームに変更したのですが、複数プレイ後スコアの入出力を行いたいのですがゲームが1回しかできないため複数回できるようにご指摘お願いいたします。マウスクリック1、2回目のifがループするのは気にしないでください。 55また、dif = sysfont.render("difference"+str(t2), False, (0,0,0))の文においてstr(t2)が長くなりすぎてしまうためstr型の文字列長を短くする(見た目上は小数点の切り上げ)方法でもつまづいているためアドバイスお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/18 16:22 編集
2018/01/18 16:43
2018/01/18 18:27