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

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!とターミナルに表示されます
とりあえずゲームっぽくなりました


得点なんかつけたらさらにゲームっぽくなりそうですが
とりあえずこのプログラムをここまでにして
最初に考えていたことにもどってみようとおもいます

プログラムとイメージは(うさとうさこ)は倉庫においておきましたので
ご自由におつかいください
ただ えくすとらんは素人ですのでトラブル等に対応できませんので
よろしくお願いします



0 件のコメント:

コメントを投稿

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