今回はマウスイベントでイメージをクリックできるようにしたいとおもい
つついてみました
#!/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=240, 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=20, y=30)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.RIGHT:
usa_sprite.x += 20
elif symbol == key.LEFT:
usa_sprite.x -= 20
elif symbol == key.UP:
usa_sprite.y += 20
elif symbol == key.DOWN:
usa_sprite.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("usadate:name usa")
pyglet.app.run()
矢印keyでusa_spriteを動かしそれをクリックするとデータが表示されるというような
ものです
実行してみると
スプライトをクリックするときアンカー一点だとクリック判定がシビアすぎるので
X.Y座標とも+ー10の遊びをもたせてみました
クリックでeasyguiのmsgboxをたちあげてみました
やりたいことはほぼこんな感じのことなのですがデータの入力やスプライトのクローン
、はたまたスプライトの名前を常に表示しておきたい....セーブ機能もつけたい....
etc....とてもできそうにありませんね^^
つついてみました
#!/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=240, 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=20, y=30)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
@window.event
def on_key_press(symbol, modifiers):
if symbol == key.RIGHT:
usa_sprite.x += 20
elif symbol == key.LEFT:
usa_sprite.x -= 20
elif symbol == key.UP:
usa_sprite.y += 20
elif symbol == key.DOWN:
usa_sprite.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("usadate:name usa")
pyglet.app.run()
矢印keyでusa_spriteを動かしそれをクリックするとデータが表示されるというような
ものです
実行してみると
スプライトをクリックするときアンカー一点だとクリック判定がシビアすぎるので
X.Y座標とも+ー10の遊びをもたせてみました
クリックでeasyguiのmsgboxをたちあげてみました
やりたいことはほぼこんな感じのことなのですがデータの入力やスプライトのクローン
、はたまたスプライトの名前を常に表示しておきたい....セーブ機能もつけたい....
etc....とてもできそうにありませんね^^
0 件のコメント:
コメントを投稿