普段の生活の中から大好きなパソコンや植物のことなどを書いています 最近ではyoutubeにも動画をアップしていますのでよかったらみてくださいませm(_ _)m https://www.youtube.com/user/xtoran1
pygletをさわってみた6
うさこさんに動きを加え
あおいうさぎさんからなるべく逃げるように
プログラムをしてみました
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
import random
from time import sleep
from pyglet.window import mouse
from pyglet.window import key
window = pyglet.window.Window(width=600, height=600, caption='usagitest')
usa_image = pyglet.resource.image('usa.png')
usa_image.anchor_x = usa_image.width / 2
usa_image.anchor_y = usa_image.height / 2
print("usawidth",usa_image.width)
print("usaheight",usa_image.height)
usako_image = pyglet.resource.image('usako.png')
usako_image.anchor_x = usako_image.width / 2
usako_image.anchor_y = usako_image.height / 2
usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=300, y=300)
usako_sprite = pyglet.sprite.Sprite(img=usako_image, x=350, 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]
usako_sprite.rotation += dt * 90
usako_sprite.x += dt * int(usa_sprite.y - usako_sprite.y) * 2
usako_sprite.y += dt * int(usa_sprite.x - usako_sprite.x) * 2
#print(usako_sprite.rotation)
if usako_sprite.x > 570:
usako_sprite.x = 30
elif usako_sprite.x < 30:
usako_sprite.x = 570
elif usako_sprite.y > 570:
usako_sprite.y = 30
elif usako_sprite.y < 30:
usako_sprite.y = 570
if up and down:
None
elif up:
usa_sprite.y += dt * 150
#print("\033[32mup\033[40m")
if usa_sprite.y > 600:
usa_sprite.y = 0
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
elif down:
usa_sprite.y -= dt * 150
#print("\033[32mdown\033[40m")
if usa_sprite.y < 0:
usa_sprite.y = 600
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
if right and left:
None
elif right:
usa_sprite.x += dt * 150
#print("\033[32mright\033[40m")
if usa_sprite.x > 600:
usa_sprite.x = 0
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
elif left:
usa_sprite.x -= dt * 150
#print("\033[32mleft\033[40m")
if usa_sprite.x < 0:
usa_sprite.x = 600
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
usako_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
うさこさんにあおいうさぎさんがタッチすることができると少しだけウエイトが入り
HIT!とターミナルに表示されます
とりあえずゲームっぽくなりました
得点なんかつけたらさらにゲームっぽくなりそうですが
とりあえずこのプログラムをここまでにして
最初に考えていたことにもどってみようとおもいます
プログラムとイメージは(うさとうさこ)は倉庫においておきましたので
ご自由におつかいください
ただ えくすとらんは素人ですのでトラブル等に対応できませんので
よろしくお願いします
あおいうさぎさんからなるべく逃げるように
プログラムをしてみました
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
import random
from time import sleep
from pyglet.window import mouse
from pyglet.window import key
window = pyglet.window.Window(width=600, height=600, caption='usagitest')
usa_image = pyglet.resource.image('usa.png')
usa_image.anchor_x = usa_image.width / 2
usa_image.anchor_y = usa_image.height / 2
print("usawidth",usa_image.width)
print("usaheight",usa_image.height)
usako_image = pyglet.resource.image('usako.png')
usako_image.anchor_x = usako_image.width / 2
usako_image.anchor_y = usako_image.height / 2
usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=300, y=300)
usako_sprite = pyglet.sprite.Sprite(img=usako_image, x=350, 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]
usako_sprite.rotation += dt * 90
usako_sprite.x += dt * int(usa_sprite.y - usako_sprite.y) * 2
usako_sprite.y += dt * int(usa_sprite.x - usako_sprite.x) * 2
#print(usako_sprite.rotation)
if usako_sprite.x > 570:
usako_sprite.x = 30
elif usako_sprite.x < 30:
usako_sprite.x = 570
elif usako_sprite.y > 570:
usako_sprite.y = 30
elif usako_sprite.y < 30:
usako_sprite.y = 570
if up and down:
None
elif up:
usa_sprite.y += dt * 150
#print("\033[32mup\033[40m")
if usa_sprite.y > 600:
usa_sprite.y = 0
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
elif down:
usa_sprite.y -= dt * 150
#print("\033[32mdown\033[40m")
if usa_sprite.y < 0:
usa_sprite.y = 600
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
if right and left:
None
elif right:
usa_sprite.x += dt * 150
#print("\033[32mright\033[40m")
if usa_sprite.x > 600:
usa_sprite.x = 0
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
elif left:
usa_sprite.x -= dt * 150
#print("\033[32mleft\033[40m")
if usa_sprite.x < 0:
usa_sprite.x = 600
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
sleep(0.5)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
usako_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
うさこさんにあおいうさぎさんがタッチすることができると少しだけウエイトが入り
HIT!とターミナルに表示されます
とりあえずゲームっぽくなりました
とりあえずこのプログラムをここまでにして
最初に考えていたことにもどってみようとおもいます
プログラムとイメージは(うさとうさこ)は倉庫においておきましたので
ご自由におつかいください
ただ えくすとらんは素人ですのでトラブル等に対応できませんので
よろしくお願いします
pygletさわってみた 5
pyglet衝突判定探してみた ちゃんとあるみたい....だが...
なんだか難しい...えくすとらんのレベルではいまのところ解読不可能...
要は相手との距離がゼロなら衝突ってことでいいんじゃないかなぁなどとおもい
キーイベントにスプライト同士の距離をはかる計算をいれてみました
#!/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
print("usawidth",usa_image.width)
print("usaheight",usa_image.height)
usako_image = pyglet.resource.image('usako.png')
usako_image.anchor_x = usako_image.width / 2
usako_image.anchor_y = usako_image.height / 2
usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=300, y=300)
usako_sprite = pyglet.sprite.Sprite(img=usako_image, x=350, 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("\033[32mup\033[40m")
if usa_sprite.y > 570:
usa_sprite.y = 30
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
elif down:
usa_sprite.y -= dt * 300
print("\033[32mdown\033[40m")
if usa_sprite.y < 30:
usa_sprite.y = 570
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
if right and left:
None
elif right:
usa_sprite.x += dt * 300
print("\033[32mright\033[40m")
if usa_sprite.x > 570:
usa_sprite.x = 30
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
elif left:
usa_sprite.x -= dt * 300
print("\033[32mleft\033[40m")
if usa_sprite.x < 30:
usa_sprite.x = 570
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
usako_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
ここにきてピンクのうさこさんに登場していただきました
GIMPで色だけかえました
これを実行すると
こんな感じになりました
print文でターミナルの文字色も変えてみました
ちなみに最初はX座標だけ(Y座標だけ)のマイナスだけで値をとったところ
Y座標を動かしても同じX座標でhitがでたため
X座標hit”かつ”(and) Y座標もhitという式になりました
あと16という数字は一応イメージサイズが32×32のチップなので
中心くらいで検出するといいのかなと思いこの数字にしてみました
なんだか難しい...えくすとらんのレベルではいまのところ解読不可能...
要は相手との距離がゼロなら衝突ってことでいいんじゃないかなぁなどとおもい
キーイベントにスプライト同士の距離をはかる計算をいれてみました
#!/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
print("usawidth",usa_image.width)
print("usaheight",usa_image.height)
usako_image = pyglet.resource.image('usako.png')
usako_image.anchor_x = usako_image.width / 2
usako_image.anchor_y = usako_image.height / 2
usa_sprite = pyglet.sprite.Sprite(img=usa_image, x=300, y=300)
usako_sprite = pyglet.sprite.Sprite(img=usako_image, x=350, 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("\033[32mup\033[40m")
if usa_sprite.y > 570:
usa_sprite.y = 30
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
elif down:
usa_sprite.y -= dt * 300
print("\033[32mdown\033[40m")
if usa_sprite.y < 30:
usa_sprite.y = 570
elif abs(usa_sprite.y - usako_sprite.y) < 16 and abs(usa_sprite.x - usako_sprite.x) < 16:
print("\033[31mHIT!\033[40m")
if right and left:
None
elif right:
usa_sprite.x += dt * 300
print("\033[32mright\033[40m")
if usa_sprite.x > 570:
usa_sprite.x = 30
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
elif left:
usa_sprite.x -= dt * 300
print("\033[32mleft\033[40m")
if usa_sprite.x < 30:
usa_sprite.x = 570
elif abs(usa_sprite.x - usako_sprite.x) < 16 and abs(usa_sprite.y - usako_sprite.y) < 16:
print("\033[31mHIT!\033[40m")
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
usako_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
ここにきてピンクのうさこさんに登場していただきました
GIMPで色だけかえました
これを実行すると
こんな感じになりました
print文でターミナルの文字色も変えてみました
ちなみに最初はX座標だけ(Y座標だけ)のマイナスだけで値をとったところ
Y座標を動かしても同じX座標でhitがでたため
X座標hit”かつ”(and) Y座標もhitという式になりました
あと16という数字は一応イメージサイズが32×32のチップなので
中心くらいで検出するといいのかなと思いこの数字にしてみました
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中心座標に丸か四角のポイントをつくって当たり判定とか
できたら楽しいだろうなぁ
ウインドウの端についたら反対側から出てくるようにしてみた
#!/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中心座標に丸か四角のポイントをつくって当たり判定とか
できたら楽しいだろうなぁ
続々.pygletさわってみた
今日はマウスイベントをちょっと勉強...
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
window = pyglet.window.Window(width=200, height=200, caption='Mouseev')
# MOUSE EVENTS
# mouse press
@window.event
def on_mouse_press(x, y, button, modifiers):
print('Mouse press')
print(' x: {}, y: {}, button: {}, modifiers: {}'.format(x, y, button, modifiers)
)
# mouse release
@window.event
def on_mouse_release(x, y, button, modifiers):
print('Mouse release')
print(' x: {}, y: {}, button: {}, modifiers: {}'.format(x, y, button, modifiers)
)
# mouse drag
pyglet.app.run()
ウインドウ内をクリックするとカーソル位置座標とクリックボタン名などを
返すようだ
返り値を使えばクリック座標にイメージやスプライトを配置することが
できるかもしれない
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
window = pyglet.window.Window(width=200, height=200, caption='Mouseev')
# MOUSE EVENTS
# mouse press
@window.event
def on_mouse_press(x, y, button, modifiers):
print('Mouse press')
print(' x: {}, y: {}, button: {}, modifiers: {}'.format(x, y, button, modifiers)
)
# mouse release
@window.event
def on_mouse_release(x, y, button, modifiers):
print('Mouse release')
print(' x: {}, y: {}, button: {}, modifiers: {}'.format(x, y, button, modifiers)
)
# mouse drag
pyglet.app.run()
ウインドウ内をクリックするとカーソル位置座標とクリックボタン名などを
返すようだ
返り値を使えばクリック座標にイメージやスプライトを配置することが
できるかもしれない
続 続 pygletさわってみた
昨日つくったプログラムを少し改造してみた
#!/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=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)
usa_run = 1
@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 += 10
elif symbol == key.LEFT:
usa_sprite.x -= 10
elif symbol == key.UP:
usa_sprite.y += 10
elif symbol == key.DOWN:
usa_sprite.y -= 10
うんわかりやすい!
おお ひとまずこれで画像をキーボードで動かすことができるようになった
えくすとらんの考えているソフトにはこの動きでもいい
....がこれではアクションゲームやシューティングには使えないなぁ
なめらかに動かすにはやはりupdate(dt)をつかって
キーを押している時間*距離したほうがよさそう
そして...
#!/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=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)
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("うえ")
elif down:
usa_sprite.y -= dt * 300
print("した")
if right and left:
None
elif right:
usa_sprite.x += dt * 300
print("みぎ")
elif left:
usa_sprite.x -= dt * 300
print("ひだり")
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
こんな感じにしてみた
すると.....
よし!いい感じ^^
あとはこのキャラを複製して配置後クリックでリスト表示なんかできれば
いいんだけど...まだまだ道は遠そうだなぁ
#!/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=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)
usa_run = 1
@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 += 10
elif symbol == key.LEFT:
usa_sprite.x -= 10
elif symbol == key.UP:
usa_sprite.y += 10
elif symbol == key.DOWN:
usa_sprite.y -= 10
うんわかりやすい!
おお ひとまずこれで画像をキーボードで動かすことができるようになった
えくすとらんの考えているソフトにはこの動きでもいい
....がこれではアクションゲームやシューティングには使えないなぁ
なめらかに動かすにはやはりupdate(dt)をつかって
キーを押している時間*距離したほうがよさそう
そして...
#!/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=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)
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("うえ")
elif down:
usa_sprite.y -= dt * 300
print("した")
if right and left:
None
elif right:
usa_sprite.x += dt * 300
print("みぎ")
elif left:
usa_sprite.x -= dt * 300
print("ひだり")
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
pyglet.clock.schedule_interval(update, 1 / 60.0)
pyglet.app.run()
こんな感じにしてみた
すると.....
よし!いい感じ^^
あとはこのキャラを複製して配置後クリックでリスト表示なんかできれば
いいんだけど...まだまだ道は遠そうだなぁ
続 pyglet さわってみた
おお! なんとか画像を動かすことができた!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
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=30, y=90)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
def update(dt):
usa_sprite.rotation += dt * 360
usa_sprite.x += dt * 70
pyglet.clock.schedule_interval(update, 0.03)
pyglet.app.run()
これを実行すると
こんな感じになった
キーイベントに抱き合わせればキャラクターを動かせるかも....
もう少し調べてみよう!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pyglet
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=30, y=90)
@window.event
def on_draw():
window.clear()
usa_sprite.draw()
def update(dt):
usa_sprite.rotation += dt * 360
usa_sprite.x += dt * 70
pyglet.clock.schedule_interval(update, 0.03)
pyglet.app.run()
これを実行すると
こんな感じになった
キーイベントに抱き合わせればキャラクターを動かせるかも....
もう少し調べてみよう!
登録:
投稿 (Atom)
久しぶりの更新です 備忘録 使っているarchlinuxにnvidiaのドライバを入れたところドライバがあっていなかったのかxが起動せずこれをアンインストールしたがその後xf86-video-nouveauが入っているにもかかわらずxが起動しなくなったのでarchwikiにて調...
-
スプライトの座標確認と ウインドウの端についたら反対側から出てくるようにしてみた #!/usr/bin/python # -*- coding: utf-8 -*- import pyglet from pyglet.window import mouse f...
-
とりあえずこの文字がどのようにへんかんされるのか? とりあえずこの文字がどのようにへんかんされるのか?<br /> <br /> <br /> こんな感じですね これはどうでしょう <span style="...
-
gentooGUI環境構築....道半ばにして終了 discの容量が足らないようです>< システム内容をたもったままdisc容量を変更できるほどの スキルはありませんので残念ながらここで終了ですね 一応システム自体は動いたのでG...