""" 造人程序演示用形状列表创建一个复杂的图形 """ import arcade SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600 SCREEN_TITLE = "Python街机造人程序演示用形状列表创建一个复杂的图形" def make_person(head_radius, chest_height, chest_width, leg_width, leg_height, arm_width, arm_length, arm_gap, shoulder_height): shape_list = arcade.ShapeElementList() # 头 shape = arcade.create_ellipse_filled(0, chest_height / 2 + head_radius, head_radius, head_radius, arcade.color.WHITE) shape_list.append(shape) # 胸 shape = arcade.create_rectangle_filled(0, 0, chest_width, chest_height, arcade.color.BLACK) shape_list.append(shape) # 左腿 shape = arcade.create_rectangle_filled(-(chest_width / 2) + leg_width / 2, -(chest_height / 2) - leg_height / 2, leg_width, leg_height, arcade.color.RED) shape_list.append(shape) # 右腿 shape = arcade.create_rectangle_filled((chest_width / 2) - leg_width / 2, -(chest_height / 2) - leg_height / 2, leg_width, leg_height, arcade.color.RED) shape_list.append(shape) # 左臂 shape = arcade.create_rectangle_filled(-(chest_width / 2) - arm_width / 2 - arm_gap, (chest_height / 2) - arm_length / 2 - shoulder_height, arm_width, arm_length, arcade.color.BLUE) shape_list.append(shape) # Left shoulder shape = arcade.create_rectangle_filled(-(chest_width / 2) - (arm_gap + arm_width) / 2, (chest_height / 2) - shoulder_height / 2, arm_gap + arm_width, shoulder_height, arcade.color.BLUE_BELL) shape_list.append(shape) # Right arm shape = arcade.create_rectangle_filled((chest_width / 2) + arm_width / 2 + arm_gap, (chest_height / 2) - arm_length / 2 - shoulder_height, arm_width, arm_length, arcade.color.BLUE) shape_list.append(shape) # Right shoulder shape = arcade.create_rectangle_filled((chest_width / 2) + (arm_gap + arm_width) / 2, (chest_height / 2) - shoulder_height / 2, arm_gap + arm_width, shoulder_height, arcade.color.BLUE_BELL) shape_list.append(shape) return shape_list class MyGame(arcade.Window): """ Main application class. """ def __init__(self): """ Initializer """ # Call the parent class initializer super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE) head_radius = 30 chest_height = 110 chest_width = 70 leg_width = 20 leg_height = 80 arm_width = 15 arm_length = 70 arm_gap = 10 shoulder_height = 15 self.shape_list = make_person(head_radius, chest_height, chest_width, leg_width, leg_height, arm_width, arm_length, arm_gap, shoulder_height) arcade.set_background_color(arcade.color.AMAZON) def setup(self): """ 在这里设置一些变量的值或实例化一些类等等 """ def on_draw(self): """ 渲染屏幕. """ # This command has to happen before we start drawing arcade.start_render() self.shape_list.draw() def update(self, delta_time): """ 移动并旋转这个人 """ self.shape_list.center_x += 1 self.shape_list.center_y += 1 self.shape_list.angle += 10 def main(): window = MyGame() window.setup() arcade.run() if __name__ == "__main__": main()