как рисовать линии на фоне картинки в Pygame

1

Я хотел бы нарисовать линии (произвольного положения и длины) на поверхности в pygame, которая сама представляет собой изображение, загруженное из файла на диске.

Может ли кто-нибудь указать мне на какой-то пример кода, который делает это?

Теги:
pygame
drawing

2 ответа

2
Лучший ответ

Это должно делать то, о чем вы просите:

# load the image
image = pygame.image.load("some_image.png")

# draw a yellow line on the image
pygame.draw.line(image, (255, 255, 0), (0, 0), (100, 100))

Обычно вы не рисуете исходное изображение, так как вам придется перезагрузить изображение, чтобы вернуть оригинал (или создать его копию, прежде чем вы начнете рисовать на нем). Возможно, вам действительно нужно что-то большее:

# initialize pygame and screen
import pygame
pygame.init()
screen = pygame.display.set_mode((720, 576))

# Draw the image to the screen
screen.blit(image, (0, 0))

# Draw a line on top of the image on the screen
pygame.draw.line(screen, (255, 255, 255), (0, 0), (50, 50))
0

Справка по модулю pygame.draw в pygame:

NAME   pygame.draw - модуль pygame для рисования фигур

FILE   d:\program files\python25\lib\site-packages\pygame\draw.pyd

ФУНКЦИИ   aaline (...)       pygame.draw.aaline(Поверхность, цвет, startpos, endpos, blend = 1): return Rect       нарисовать прекрасные сглаженные линии

aalines(...)
    pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect

arc(...)
    pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1): return Rect
    draw a partial section of an ellipse

circle(...)
    pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect
    draw a circle around a point

ellipse(...)
    pygame.draw.ellipse(Surface, color, Rect, width=0): return Rect
    draw a round shape inside a rectangle

line(...)
    pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect
    draw a straight line segment

lines(...)
    pygame.draw.lines(Surface, color, closed, pointlist, width=1): return Rect
    draw multiple contiguous line segments

polygon(...)
    pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect
    draw a shape with any number of sides

rect(...)
    pygame.draw.rect(Surface, color, Rect, width=0): return Rect
    draw a rectangle shape

Ещё вопросы

Сообщество Overcoder
Наверх
Меню