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

pygletさわってみた8

当初の計画?の通りスプライトに名前をつけ配置しクリックでデータを
見ることのできるプログラムを考えています

今日はスプライトに名前をつけてみました

ウインドウへのテキスト表示は
pyglet.text.Label()でできるようです

ドキュメントを見るとhtml表示にもできるようですねぇ
今回は入力した名前をスプライト上に表示してusaを動かすといっしょに名前が
動くよう考えてみました

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

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
a = input("spritename: ")
usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=30, y=30)
label = pyglet.text.Label('{0}'.format(a),
              font_name='Times New Roman',
              font_size=13,
              x=usa_sprite.x-10, y=usa_sprite.y+25)

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

@window.event
def on_key_press(symbol, modifiers):
    if symbol == key.RIGHT:
        usa_sprite.x += 20
        label.x += 20
    elif symbol == key.LEFT:
        usa_sprite.x -= 20
        label.x -= 20
    elif symbol == key.UP:
        usa_sprite.y += 20
        label.y += 20
    elif symbol == key.DOWN:
        usa_sprite.y -= 20
        label.y -= 20
    print(usa_sprite.x,usa_sprite.y)

@window.event
def on_mouse_press(x, y, button, modifiers):
    print(x)
    if int(x) <= usa_sprite.x + 10 and int(x) >= usa_sprite.x - 10 and int(y) <= usa_sprite.y + 10 and int(y) >= usa_sprite.y -10:
        msgbox("data:name/xtoran, age/00")

pyglet.app.run()

これを動作させると....



こんな感じになりました
あとはこれをクリックで量産できる方法があればいいんだけどなぁ
勉強不足でわからないなぁTT
セーブはテキストに座標を書き出して保存
ロードはそれを読み込むとかでできるのかな....



0 件のコメント:

コメントを投稿

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