带缓冲的形状列表_旋转矩形

"""
带缓冲的形状ShapeElementList

展示如何使用SahpeElementList这个列表
 
"""
import arcade
import random

# 常量定义,屏幕宽高和高度与标题
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
SCREEN_TITLE = "带缓冲的形状列表_旋转矩形_改编:李兴球"


class MyGame(arcade.Window):
    """
    Main application class.
    """

    def __init__(self, width, height, title):
        """
        Set up the application.
        """
        super().__init__(width, height, title)

        self.shape_list = arcade.ShapeElementList()
        self.shape_list.center_x = SCREEN_WIDTH // 2
        self.shape_list.center_y = SCREEN_HEIGHT // 2
        self.shape_list.angle = 0
 
        # 得到所有颜色,arcade.color是一个模块,它存储了颜色字符串
        colors = [getattr(arcade.color, color) for color in dir(arcade.color) if not color.startswith("__") ] 

        point_list = ((0, 0),(200, 0),(200, 100),(0,100))
        poly = arcade.create_polygon(point_list, (155, 90, 210), 5)
        # <arcade.buffered_draw_commands.Shape object at 0x0000000006DF5F28>
        print(poly)
        self.shape_list.append(poly)       # 添加到形状列表,(shape_list以屏幕中心为原点) 

        arcade.set_background_color(arcade.color.BLACK)

    def on_draw(self):
        """
        Render the screen.
        """
        # This command has to happen before we start drawing
        arcade.start_render()

        self.shape_list.draw()

    def update(self, delta_time):
        """更新坐标等"""
        self.shape_list.angle += 0.2
        #self.shape_list.center_x += 0.1
        #self.shape_list.center_y += 0.1


def main():
    MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
    arcade.run()


if __name__ == "__main__":
    main()