えくすとらんのブログ: pygletさわってみた4

pygletさわってみた4

スプライトの座標確認と

ウインドウの端についたら反対側から出てくるようにしてみた

#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet

from pyglet.window import mouse
from pyglet.window import key

window = pyglet.window.Window(width=600, height=600, caption='Sprite animation')

usa_image = pyglet.resource.image('usa.png')
usa_image.anchor_x = usa_image.width / 2
usa_image.anchor_y = usa_image.height / 2

usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=300, y=300)

keys = pyglet.window.key.KeyStateHandler()


def update(dt):
    window.push_handlers(keys)
    left = keys[pyglet.window.key.LEFT]
    right = keys[pyglet.window.key.RIGHT]
    up = keys[pyglet.window.key.UP]
    down = keys[pyglet.window.key.DOWN]

    if up and down:
        None
    elif up:
        usa_sprite.y += dt * 300
        print("うえ",usa_sprite.y)
        if usa_sprite.y > 570:
            usa_sprite.y = 30
    elif down:
        usa_sprite.y -= dt * 300
        print("した",usa_sprite.y)
        if usa_sprite.y < 30:
            usa_sprite.y = 570
    if right and left:
        None
    elif right:
        usa_sprite.x += dt * 300
        print("みぎ",usa_sprite.x)
        if usa_sprite.x > 570:
            usa_sprite.x = 30
    elif left:
        usa_sprite.x -= dt * 300
        print("ひだり",usa_sprite.x)
        if usa_sprite.x < 30:
            usa_sprite.x = 570

@window.event
def on_draw():
    window.clear()
    usa_sprite.draw()



pyglet.clock.schedule_interval(update, 1 / 60.0)

pyglet.app.run()

なかなかいい感じ



















これで一応キャラクターは好きな位置にもってこれることがわかった
もう一体くらい登場させて衝突判定とかできたらいいのになぁ
探してみたけれどpygletにそういった関数はないみたい?
cocos2d使ってくれとかという記述を見たような気がするが

sprite中心座標に丸か四角のポイントをつくって当たり判定とか
できたら楽しいだろうなぁ






0 件のコメント:

コメントを投稿

 久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...