# -*- encoding: utf-8 -*-
#
# Обработка мыши
#
# Основано на примерах Simpson College Computer Science <http://cs.simpson.edu>
import pygame
import math
# Определим константы для цветов (модель RGB)
black = (0, 0, 0)
white = (255, 255, 255)
green = (0, 255, 0)
red = (255, 0, 0)
blue = (0, 0, 255)
dkgreen = (0, 100, 0)
purple = (0xBF, 0x0F, 0xB5)
brown = (0x55, 0x33, 0x00)
def draw_background(screen):
"""Отрисовка заднего фона"""
# Заполняем белым цветом
screen.fill(white)
def draw_item(screen, x_float, y_float):
# Округлим позицию, т.к. функции рисования принимают int
x = round(x_float)
y = round(y_float)
pygame.draw.rect(screen, green, [0 + x, 0 + y, 30, 10], 0)
pygame.draw.circle(screen, black, [15 + x, 5 + y], 7, 0)
def main_impl():
# Инициализируем экран для рисования
size = (640, 480)
screen = pygame.display.set_mode(size)
clock = pygame.time.Clock()
# Флаг: стоит ли завершить игру
done = False
# ------- главный цикл приложения
while not done:
# Обработаем события (ввод с клавиатуры, мышь и т.п.)
for event in pygame.event.get():
if event.type == pygame.QUIT: # пользователь нажал кнопку закрытия окна
done = True # завершить главный цикл на следующей итерации
# Получаем текущую позицию мыши
mouse_x, mouse_y = pygame.mouse.get_pos()
# Рисуем задний фон
draw_background(screen)
# Рисуем объект
draw_item(screen, mouse_x, mouse_y)
# Показываем на экран только что нарисованный кадр
pygame.display.flip()
# Ограничиваем частоту обновления экрана 40 кадрами в секунду
clock.tick(40)
def main():
# Инициализируем библиотеку PyGame.
pygame.init()
try:
main_impl()
finally:
# Всегда деинициализируем библиотеку PyGame, даже в случае падения.
pygame.quit()
if __name__ == "__main__":
main()