import math import pyglet from pyglet.window import key window = pyglet.window.Window(width=300, height=300) batch = pyglet.graphics.Batch() batch2 = pyglet.graphics.Batch() sprite_image = pyglet.image.load('ufo.png') sprite_image.anchor_x = sprite_image.width // 2 sprite_image.anchor_y = sprite_image.height // 2 sprite = pyglet.sprite.Sprite(sprite_image, x=window.width // 2, y=window.height // 2, batch=batch2) batch = pyglet.graphics.Batch() rectangle = pyglet.shapes.Rectangle(x=50, y=50, width=200, height=100, color=(255, 255, 0), batch=batch) def get_background_color(x, y): window.switch_to() window.clear() batch.draw() buffer = pyglet.image.get_buffer_manager().get_color_buffer().get_region(x, y, 1, 1) color = buffer.get_image_data().get_data('RGB', buffer.width * 3) return tuple(color) def update(dt): sprite.rotation += sprite.rotation_speed angle_rad = -sprite.rotation * (3.14159 / 180.0) sprite.x += sprite.velocity * dt * math.cos(angle_rad) sprite.y += sprite.velocity * dt * math.sin(angle_rad) background_color = get_background_color(int(sprite.x), int(sprite.y)) print(f"x: {sprite.x:.2f}, y: {sprite.y:.2f}, color: {background_color}") sprite.velocity = 20 # velocjity sprite.rotation_speed = 0 @window.event def on_key_press(symbol, modifiers): if symbol == key.LEFT: sprite.rotation -= 7 elif symbol == key.RIGHT: sprite.rotation += 3 @window.event def on_draw(): window.clear() batch.draw() batch2.draw() pyglet.clock.schedule_interval(update, 1 / 60) pyglet.app.run()