簡體   English   中英

Python Pyglet,批量新精靈

[英]Python Pyglet, new sprites in batch

Python,pyglet

我想在繪制后將精靈添加到我的 window 中。

我嘗試使用批處理,因為我想要有很多精靈。

我的簡單測試代碼是:

import pyglet
import random
from pyglet.window import key, mouse
from pyglet import image
from PIL import Image, ImageDraw, ImageFont

#function return pyglet image 10x10px triangle, random color. Instead of loading a file, work fine
def pyimg():
    background = Image.new('RGBA', (10,10), (255,255,255,0) )
    img = Image.new('RGBA', (10,10), (0,0,0,0) )
    draw = ImageDraw.Draw(img)
    draw.polygon([(0,0), (0,10), (10,0)], fill=(random.randint(0,255),random.randint(0,255),random.randint(0,255)))
    im= Image.alpha_composite(background, img)
    return pyglet.image.ImageData(im.width, im.height, 'RGBA', im.tobytes(), pitch=-im.width * 4)

screenWidth=1280
window = pyglet.window.Window(screenWidth, 720, resizable=True)

batch=pyglet.graphics.Batch()
sprites=[]
sprites.append(pyglet.sprite.Sprite(pyimg(), x=50, y=50, batch=batch))
sprites.append(pyglet.sprite.Sprite(pyimg(), x=150, y=50, batch=batch))

i=30

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


@window.event
def on_key_press(symbol, modifiers):
    global i
    if symbol == key.RETURN:
        print("Return key pressed")
        sprites.append(pyglet.sprite.Sprite(pyimg(), x=150+i, y=50))
        i+=15

pyglet.app.run()

應用顯示兩個精靈,按下回車鍵后應該再添加一個。 如何更新顯示?

這一行: sprites.append(pyglet.sprite.Sprite(pyimg(), x=150+i, y=50))您沒有指定要添加精靈的批次。

它需要是sprites.append(pyglet.sprite.Sprite(pyimg(), x=150+i, y=50, batch=batch))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM