前回製作したコントローラーを使って,ブロック崩しのゲームを作ってみましょう.
初めに,ブロック崩しのプログラムを保存するフォルダを作成します.
このフォルダにプログラムやゲームで使う画像ファイルを保存します.
次にブロック崩しで使う画像を用意します.ブロック崩しで使う画像は以下の三つになります.
block
board
circle
この画像はプラグラムで作ることができます.以下のIDLEで入力し実行してください.保存する際は,先ほど作成したフォルダに保存します.名前はdraw.pyで保存してください.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
import pygame from pygame.locals import* from sys import exit pygame.init() #Circle radius=6 display = (radius*2,radius*2) color=(0,0,0) pos = (radius,radius) screen=pygame.display.set_mode(display,0,32) screen.fill((255,255,255)) pygame.draw.circle(screen,color,pos,radius) pygame.image.save(screen,"circle.bmp") #board height=6 length=80 color=(0,0,0) screen=pygame.display.set_mode((length,height),0,32) screen.fill((color)) pygame.image.save(screen,"board.bmp") #block height=20 length=40 color=(0,0,0) screen=pygame.display.set_mode((length,height),0,32) screen.fill((color)) pygame.image.save(screen,"block.bmp") exit() |
このプログラムを実行すると,フォルダ内に3つの画像が保存されます.
次はこの画像のboard.bmpを移動させるプログラムを実行してみましょう.
以下のプログラムを同じフォルダに保存して,実行してみてください.名前はblock.pyにしてください.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
board_image_filename ='board.bmp' import RPi.GPIO as GPIO import pygame from pygame.locals import* from sys import exit GPIO.setmode(GPIO.BCM) GPIO.setup(22, GPIO.IN) GPIO.setup(23, GPIO.IN) GPIO.setup(24, GPIO.IN) GPIO.setup(25, GPIO.IN) pygame.init() window=pygame.display.set_mode((640,480)) pygame.display.set_caption("block_game") board = pygame.image.load(board_image_filename).convert_alpha() window.fill(pygame.Color(255,255,255)) x=0 while 1: for event in pygame.event.get(): if event.type == QUIT: exit() window.fill(pygame.Color(255,255,255)) if GPIO.input(22): x += 5 elif GPIO.input(23): x -= 5 if x>560: x=560 elif x<0: x=0 window.blit(board,(x,440)) pygame.display.update() |
実行するとこんな画面が表示されます.
RaspberryPiの22ピン及び23ピンに繋いだタクトスイッチを押すと,boardが左右に移動します.
9 Pythonでゲームを作ろう3(ブロック崩し) に続く.
参考図書(よかったらどうぞ)