pythonでトンネル抜けゲーム作成 (pygame)
計算とフローのとこで行き詰まってしまいました
初心者ながら一ヶ月ほど時間を費やしプログラムを作成してきましたが、エラーが発生して動きません
調べても解決策が自分の力では見つかりませんでした。
とりあえず、動かせる状態まで持っていき、そこからなにが原因で動かなかったのか勉強したいと思います。動かせる状態にできる方教えてください、お願いいたします。pythonプログラミングが得意な方、初心者でもわかるように教えてくれませんか。
何卒よろしくお願いいたします。
python
1コード 2```''' speed4.py''' 3import sys 4from math import sin,radians 5import pygame 6from pygame.locals import QUIT,KEYDOWN,K_SPACE, Rect 7 8pygame.init() 9pygame.key.set_repeat(5,5) 10SURFACE = pygame.display.set_mode((600,600)) 11FPSCLOCK = pygame.time.Clock() 12 13def main(): 14 '''メインルーチン''' 15 rect = Rect(0,300,10,10) 16 speed = 10 17 velocity = -20 18 accel = 5 19 offset = 0 20 game_over = False 21 font = pygame.font.SysFont(None,) 22 23 while True: 24 is_flying = False 25 26 for event in pygame.event.get(): 27 if event.type == QUIT: 28 pygame.quit() 29 sys.exit() 30 if event.type == KEYDOWN: 31 if event.key == K_SPACE: 32 is_flying = True 33 34 if not game_over: 35 velocity += -accel if is_flying else accel 36 rect.y += velocity 37 offset += speed 38 if offset % 100 == 0: 39 speed += 2 40 41 SURFACE.fill((0,255,0)) 42 43 #draw ceiling 44 points = [(0,0)] 45 for pos_x in range(0,610,10): 46 pos_y = 200 + sin(randians(pos_x + offset)\2)*80 47 points.append((pos_x,pos_y)) 48 if pos_x == 10 and rect.y <pos_y: 49 game_over = True 50 points.append([600,0]) 51 pygame.draw.polygon(SURFACE,(165,42,42),points) 52 53 #draw floor 54 points = [(0,600)] 55 for pos_x in range(0,610,10): 56 pos_y = 400 + sin(randians(pos_x + offset)\3)*60 57 points.append((pos_x,pos_y)) 58 if pos_x == 10 and rect.bottom > pos_y: 59 game_over = True 60 points.append([600,600]) 61 62 pygame.draw.polygon(SURFACE,(165,42,42),points) 63 64 pygame.draw.rect(SURFACE,255,255,255),rect) 65 66 score = font.render(str(offset),True,(255,255,255)) 67 SURFACE.blit(score,(500,50)) 68 69 pygame.display.update() 70 FPSCLOCK.tick(10) 71 72if_name_ =='_main_': 73 main()
あなたの回答
tips
プレビュー