python勉強〜8日目〜
kazuma.です。
今日はUnityを放って置いて、pythonをしたいと思います。(500行チャレンジ)
もちろん使うのは"pygame"。
めっちゃ簡単にplayerを動かすことができます。
前のpython勉強の際にpygameのインストールを行いました。(Mac用です。)kazumalab.hatenablog.com
今回はイカ(某任天堂ゲーム)が流行っているのでそれに則ってイカを動かしたいと思います。
まずは素材作り。イカを作ります。(20秒)笑
はい、できましたね。
次にそれをpythonのコードで読み込みキーボードで動かしていきます。
#sample.py import pygame from pygame.locals import * import sys screen_size = (640, 480) pygame.init() #first setting. screen = pygame.display.set_mode(screen_size) pygame.display.set_caption(u"window") img = pygame.image.load("ika.png").convert_alpha() img_rect = img.get_rect() img_rect.center = (320,240) move_x = 10 move_y = 10 while True: screen.fill((0,0,255)) screen.blit(img,img_rect) pygame.display.update() for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_LEFT: img_rect.move_ip(-move_x,0) if event.key == K_RIGHT: img_rect.move_ip(move_x,0) if event.key == K_UP: img_rect.move_ip(0,-move_y) if event.key == K_DOWN: img_rect.move_ip(0,move_y) if event.key == K_ESCAPE: sys.exit()
ほい、これだけで動きます。(すげー)
主に
img_rect.move_ip(x,y)
これで動きます。あとはwhileで回し、update()をしています。
ただ、これだけで動いてしまうと500行には到底及ばないじゃないか!!
ということでかさまししましょう。
海のという設定で少し重力をつけたり少し、イカ感を出してみましょう。
#sample.py import pygame from pygame.locals import * import sys screen_size = (640, 480) pygame.init() #first setting. screen = pygame.display.set_mode(screen_size) pygame.display.set_caption(u"window") img = pygame.image.load("ika.png").convert_alpha() img_rect = img.get_rect() img_rect.center = (320,240) move_x = 10 move_y = 20 #変更点 gravity = 1 #変更点 while True: screen.fill((0,0,255)) screen.blit(img,img_rect) pygame.display.update() img_rect.move_ip(0,gravity) #変更点 for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_LEFT: img_rect.move_ip(-move_x,0) if event.key == K_RIGHT: img_rect.move_ip(move_x,0) if event.key == K_UP: img_rect.move_ip(0,-move_y) if event.key == K_DOWN: img_rect.move_ip(0,move_y) if event.key == K_ESCAPE: sys.exit()
これでうまくいかっぽくなりました。
2行のかさまし成功です。
なにせ1行だけでイカは重力を持つようになる。素晴らしい。 pic.twitter.com/lBpmHgMhtC
— Kazuma. (@kazumalab) 2015, 7月 5
何かマリオの海ゾーンのいかになった気分ですね。
次は当たり判定もやってみたいです。
以上です。(35/500行)