pygameでアニメーション(1)円軌道を動かす_孫と遊ぶためのPython日記(14)
pygameの学習が少し進んだ。
pygameはゲーム作成用のモジュールで、GUIコードはtkinterとかなり違う。
どちらがよいのかわからないが、学習目的でしばらくチャレンジすることにした。
(暗夜行路ですが・・・。一縷の光)
とりあえずイメージ・キャラクターを円軌道に動かすアニメーションを作成した。
〜〜〜〜〜smallRedMonster〜〜〜〜〜〜
#### 始めにモジュールのimport
import sys
import math
import pygame
from pygame.locals import QUIT
### 画面の設定。ここでは600×600に設定
GAMEN = pygame.display.set_mode(ここにサイズを記入、(600、600))
### キャプションの表示
pygame.display.set_caption(ここに名前を記載、"smallRedMonster")
### クロックの設定はpygame.time.Clock()で行う
CLOCK = pygame.time.Clock()
### main routineを def main():と記述
def main(): ###以下、インデントが必要
""" main routine """
radius = 100
y_center = 300 ### 円の中心座標y
x_center = 300 ### 円の中心座標x
count = 0
a = 3.14/360
deg = 0
rad = 0
### キャラクターの呼び込み、コードと同じホルダーに記録が便利
image = pygame.image.load(ここで画像をロードする、"redmonster.png")
### 以下がキャラクターを動かすコード。以下すべてインデントが必要。
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
#角度はラジアンで計算
GAMEN.fill(0xFFFFFF)
count += a/3.14
rad += count
y = int(radius * math.sin(rad)) + y_center #yの座標
x = int(radius * math.cos(rad)) + x_center #xの座標
### 画面にimageを表示。blitを用いる。
GAMEN.blit(image,(x,y))
### 画面の初期化
pygame.display.update()
### タイム・ディレイの挿入
CLOCK.tick(50)
### 角度の初期化
if count >= 3.14/180 :
count = 0
### runで動かす場合の常套句、コードの最後に記載
if __name__ == '__main__':
main()
###
全体にアニメーションが簡単にできるようになっている。
tkinterよりも記載が単純で、直感的に理解しやすいかもしれない。
<注意>HATENAのブログでは、インデントが表示できないので、これまではインデント部分には”___”で書いてきたが、みにくので今回からは省略することにした。