Updated on 2024-12-18 (水) 09:41:29
2023-11-21.jpg
 

2024年度

参加される方へ

  • ご自身のPCで参加される方は、事前に下記の準備が完了していると当日スムーズに開始できます。
  • ご不明な場合は当日会場で設定しますので、15分程度早めに集合ください。

参考:Pythonでエクセルに画像ファイルを貼り付ける

プログラム例:jump.py

&attachref(./player.png,50%);&attachref(coin.wav);
  • 最初に、ライブラリpygletを追加します。

    #codeprettify{{ !pip install -U pyglet }}

  • 続いて、次のプログラムを実行します。

    #codeprettify{{ import pyglet from pyglet import shapes

class Player(pyglet.sprite.Sprite):

   def __init__(self, *args, **kwargs):
       super().__init__(*args, **kwargs)
       self.vx = 0
       self.vy = 0
   def update(self, dt): # 毎フレームごとに
       self.x += self.vx * dt # 横の動き
       self.y += self.vy * dt # 縦の動き
       if self.x < 0: # 左端?
           self.x += 800 # 右へ
       if 800<self.x: # 右端?
           self.x -= 800 # 左へ
       if 200<player.y : # 空中
           self.vy -= 10 # 落ちる速さが増える
       else:
           self.vy = 0 # 落ちるのをやめる
           player.y = 200 # 地面にいる

window = pyglet.window.Window(800, 600) bg = pyglet.graphics.Batch() sky = shapes.Rectangle(0,0,800,600,color=(120,120,255),batch=bg) line = shapes.Rectangle(0,0,800,200,color=(100,50,0),batch=bg) player_image = pyglet.image.load('player.png') # キャラ画像 player = Player(player_image, x=400, y=200) sound = pyglet.media.load('coin.wav',streaming=False) # 音

@window.event def on_key_press(symbol, modifiers): # キー操作

   if player.y >200: # 空中なら操作できない
       return
   if symbol == pyglet.window.key.LEFT: # 左へ
       player.vx = -100
   elif symbol == pyglet.window.key.RIGHT: # 右へ
       player.vx = 100
   elif symbol == pyglet.window.key.SPACE: # ジャンプ
       player.vy = 200
       sound.play()

@window.event def on_key_release(symbol, modifiers): # キーを離したら止まる

   if symbol in (pyglet.window.key.LEFT, pyglet.window.key.RIGHT):
       player.vx = 0

@window.event def on_draw(): # 描画

   window.clear() # 消す
   bg.draw() # 赤い線
   player.draw() # キャラ

def update(dt):

   player.update(dt) # 繰り返す
 

pyglet.clock.schedule_interval(update, 1/60) pyglet.app.run() # 全体のスタート }}

過去の実施