ひろひろの生活日記(LIFE Of HIROHIRO)

パソコン講習とソフト開発をしています。自作小説も掲載しています。ネット情報発信基地(上野博隆)Hirotaka Ueno

pythonテスト2のコーデイング(No.01)

2020年05月23日 20時32分42秒 | ゲーム開発(Game development)

# sprite test
#pygameを使用する場合、インポートは必要です。
import pygame
#乱数を使用する場合、ランダム(random)をインポートする必要があります。
#インポートはソースをプログラムソースに取り込むことです。
import random

#定数を定義します。大文字で変数名を定義しています。
WIDTH = 640
HEIGHT= 480
#色の定数の指定。RBGの8ビットで指定します。
BLUE  = (   0,   0, 255)
GREEN = (   0, 255,   0)

# sprite class
#クラスを定義します。ここでは、pygameにあるSpriteと言うクラスをモデイファイします。
#Spclassは、新しいクラスの名前です。人形描画のオブジェクトです。
class Spclass(pygame.sprite.Sprite):
#初期処理の定義です。
  def __init__(self):

つづき

#Spriteクラスのinitの実行
    pygame.sprite.Sprite.__init__(self)
#イメージファイルの読み込み。 \は行の継続
    self.image = \
    pygame.image.load("man.png").convert()
#self.imageから(0,0)ピクセルの色の値を取得する
    colorkey = self.image.get_at((0,0))
#取得した色を透明にする
    self.image.set_colorkey(colorkey)
#imageを四角にセットする。
    self.rect = self.image.get_rect()

#ランダムに四角の読み込んだイメージを配置する。(0~WIDTH、HEIGH)

    self.rect.centerx = random.randrange(WIDTH)
    self.rect.centery = random.randrange(HEIGHT)
#スピードをランダムにセットする。(-3~3)
    self.x1 = random.randrange(-3, 3)
    self.y1 = random.randrange(-3, 3)

つづき

# 画像の更新(クラスの一部です)
  def update(self):
# ランダムな場所からランダムにinitで設定したスピード(増分)を足す。
    self.rect.centerx += self.x1
    self.rect.centery += self.y1
# 端まで行くとスピードを反転する。
# x方向の反転
    if self.rect.centerx >= WIDTH \
    or self.rect.centerx < 0:
      self.x1 *= -1
# y方向の反転
    if self.rect.centery >= HEIGHT \
    or self.rect.centery < 0:
      self.y1 *= -1
# メインの処理(実際のクラスの実行)
# main

つづき

# 処理は、上から順に実行されます。
# initは、pygameを使うときに必ずする初期処理です。
pygame.init()
# スクリーンの大きさを指定します。
screen = pygame.display.set_mode((WIDTH,HEIGHT))
# クロック(時計)の設置です。
myclock = pygame.time.Clock()
# クラスグループのエリアを定義します。
allgroup = pygame.sprite.Group()
# グループにSpclassを登録します。
# 登録と同時にinitが実行されます。
for i in range(100):
  allgroup.add(Spclass())
# 処理のループ条件を0に設定しします。
# エリアは、初期値の設定と同時に取られます。
endflag = 0
# endflag が 0の間繰り返し実行する。
while endflag == 0:
# イベントを取得する。
  for event in pygame.event.get():
# イベント・タイプがQUIT(閉じるを押されたら)ならendflagを1にし繰り返しを出る。
    if event.type == pygame.QUIT: endflag = 1
# スクリーンの背景をブルーで塗る。
  screen.fill(BLUE)
# svreenの半分の長方形の始点と終点を定義する。
  rect = (0, HEIGHT/2, WIDTH, HEIGHT/2)
# 長方形をグリーンで塗て配置する。
  pygame.draw.rect(screen, GREEN, rect)
# クラスグループの更新を実行する。
  allgroup.update()
# クラスグループの描画を実行する。
#(当プログラムには表示されていないがコピーの本体にある)
  allgroup.draw(screen)
# 1秒間に60回実行する。60FPS
  myclock.tick(60)
# 実描画する。(表示する)
  pygame.display.flip()
# プログラムを終わらせる。
pygame.quit()

終わり。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 将棋の棋譜を載せます。 | トップ | 3301_0010人間の本位(大悪)... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ゲーム開発(Game development)」カテゴリの最新記事