Я пытаюсь провести эксперимент с использованием Pygame. Я пытаюсь написать простой кусок кода, чтобы можно было рисовать на экране с помощью мыши.
Это код, который я написал:
import pygame
import pygame.time
import graphics
def init_surface():
DISPLAY_SURFACE = pygame.display.set_mode((640,480), pygame.DOUBLEBUF)
return graphics.ViewportSurface(DISPLAY_SURFACE)
def init_mouse_pointer():
mouse_pointer_color = pygame.Color(255, 64, 64)
mouse_pointer = graphics.MousePointer(5, mouse_pointer_color, graphics.Point(0,0))
return mouse_pointer, mouse_pointer_color
def main():
pygame.init()
window_surface = init_surface()
center_point = graphics.Point(0,0)
mouse_pointer, mouse_pointer_color = init_mouse_pointer()
color = pygame.Color(255, 255, 255)
clock = pygame.time.Clock()
while True:
# Event handling
for event in pygame.event.get():
if event.type == pygame.NOEVENT:
continue
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
pygame.quit()
sys.exit()
# Update mouse status
mouse_position = pygame.mouse.get_pos()
mouse_position_viewport = window_surface.convert_coordinate_from_display_to_viewport(graphics.Point(mouse_position[0], mouse_position[1]))
mouse_pointer.set_position(mouse_position_viewport)
# Update screen
window_surface.draw_point(center_point, color)
mouse_pointer.draw(window_surface)
window_surface.flip()
clock.tick(180)
if __name__ == '__main__':
main()
Проблема в том, что при перемещении мыши я получаю не непрерывную линию, а пунктирную линию, как вы можете видеть на следующем рисунке:
По какой причине линия не является непрерывной? Что-то не так в моем коде? Я не понимаю, где проблема. Какая у тебя идея?