📜  PYGLET – 绘制多个精灵

📅  最后修改于: 2022-05-13 01:54:50.030000             🧑  作者: Mango

PYGLET – 绘制多个精灵

在本文中,我们将看到如何在Python的 PYGLET 模块中的窗口上绘制多个 spries。 Pyglet 是易于使用但功能强大的库,用于开发视觉丰富的 GUI 应用程序,如游戏、多媒体等。窗口是占用操作系统资源的“重量级”对象。 Windows 可能显示为浮动区域,也可以设置为填充整个屏幕(全屏)。精灵是在屏幕上显示的图像的一个实例。多个精灵可以在屏幕的不同位置显示相同的图像。精灵也可以放大或缩小,以任何角度旋转并以分数不透明度绘制。图像是在 pyglet 的图像模块的帮助下加载的。
与单独调用它们的每个绘制方法相比,精灵可以一起批处理并立即绘制。以下示例创建了 100 个球精灵并将它们中的每一个添加到批处理中。然后在一次调用中绘制整批精灵

我们可以在下面给出的命令的帮助下创建一个窗口、批处理和精灵

# creating a window
window = pyglet.window.Window(width, height, title)

# creating a batch 
batch = pyglet.graphics.Batch()

# creating a sprite object
pyglet.sprite.Sprite(img, x, y)

下面是实现

Python3
# importing pyglet module
import pyglet
import pyglet.window.key as key
   
# width of window
width = 500
   
# height of window
height = 500
   
# caption i.e title of the window
title = "Geeksforgeeks"
   
# creating a window
window = pyglet.window.Window(width, height, title)
   
# text 
text = "Welcome to GeeksforGeeks"
  
# creating label with following properties
# font = cooper
# position = 250, 150
# anchor position = center
label = pyglet.text.Label(text,
                          font_name ='Cooper',
                          font_size = 16,
                          x = 250, 
                          y = 150,
                          anchor_x ='center', 
                          anchor_y ='center')
 
 
# creating a batch
batch = pyglet.graphics.Batch()
 
# loading geeksforgeeks image
image = pyglet.image.load('gfg.png')
 
# creating a list of sprites object
sprites = []
 
# position of images
pos_x = 10
pos_y = 230
 
for i in range(5):
     
    # temporary sprite object
    temp = pyglet.sprite.Sprite(image, pos_x, pos_y, batch = batch)
     
    # append the sprite object to the list
    sprites.append(temp)
     
    # increment the x co-ordinate
    pos_x = pos_x + 100
 
 
# on draw event
@window.event
def on_draw():
       
    # clear the window
    window.clear()
       
    # draw the label
    label.draw()
     
    # draw the batch
    batch.draw()
       
# key press event    
@window.event
def on_key_press(symbol, modifier):
   
    # key "C" get press
    if symbol == key.C:
         
        # printing the message
        print("Key : C is pressed")
         
# image for icon
img = image = pyglet.resource.image("gfg.png")
 
     
 
# getting mouse button string
value = pyglet.window.mouse.buttons_string(2 | 5)
 
 
# setting image as icon
window.set_icon(img)
    
# start running the application
pyglet.app.run()


输出 :