簡體   English   中英

在pyglet窗口中加載多個PNG

[英]Loading multiple PNGs in pyglet window

如果我連續加載了兩個部分透明的PNG(onDraw),如果第二個圖像在該區域是透明的,我仍然能夠看到第一個圖像嗎? 這些圖像將被繪制到窗口中。 我會使用Sprites,但無法使它們工作。 謝謝!

您的問題中沒有代碼,坦率地說,我認為您的問題有很多解決方案,因此您至少可以有10個不同的答案。

我將投票結束這個問題,但是看到這些問題非常罕見,並且通常在結案請求或否決票上他們都不會得到足夠的回應,以至於人們不介意。.我將舉一個示例代碼片段,可能會得到您在尋求可行解決方案的途中:

import pyglet
from pyglet.gl import *

class main(pyglet.window.Window):
    def __init__ (self):
        super(main, self).__init__(300, 300, fullscreen = False)
        self.alive = 1

        self.image_one = pyglet.sprite.Sprite(pyglet.image.load('./image_one.png'))
        self.image_two = pyglet.sprite.Sprite(pyglet.image.load('./image_two.png'))

        self.image_one.x = 100
        self.image_one.y = 100

        self.image_two.x = 70
        self.image_two.y = 80

    def on_draw(self):
        self.render()

    def on_close(self):
        self.alive = 0

    def render(self):
        self.clear()

        self.image_one.draw()
        self.image_two.draw()

        self.flip()

    def run(self):
        while self.alive == 1:
            self.render()

            # -----------> This is key <----------
            # This is what replaces pyglet.app.run()
            # but is required for the GUI to not freeze
            #
            event = self.dispatch_events()

x = main()
x.run()

我使用了這兩個圖像:

  1. 在此處輸入圖片說明

  2. 在此處輸入圖片說明

沒什么,但是它將為您提供一個如何使用Sprite類渲染兩個圖像的示例。

這是我編寫的一些示例代碼:

import  pyglet

window = pyglet.window.Window()
one_image = pyglet.image.load("one.png") 
two_image = pyglet.image.load("two.png") 
one = pyglet.sprite.Sprite(one_image)
two = pyglet.sprite.Sprite(two_image)


@window.event
def on_draw():
    one.x = 0
    one.y = 0
    one.draw()
    two.x = 365
    two.y = 305
    two.draw()

pyglet.app.run()

one.png和two.png是透明的並且形狀不相同,我能夠看到two.png覆蓋在one.png上。

結果是 這里

希望這可以幫助!

暫無
暫無

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

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