Pygame绘制一个矩形

时间:2013-11-05 01:20:26

标签: python pygame rectangles 2d-games

我制作的游戏需要知道如何在python 3.2中绘制矩形。

我检查了很多来源,但没有一个确切地说明了如何做到这一点。

谢谢!

4 个答案:

答案 0 :(得分:7)

如果您彻底检查了您声称要检查的来源,那么您将找到如何绘制矩形 - 这是pygame中最简单的任务。但既然你问过,这是怎么回事:

import pygame, sys
from pygame.locals import *

def main():
    pygame.init()

    DISPLAY=pygame.display.set_mode((500,400),0,32)

    WHITE=(255,255,255)
    BLUE=(0,0,255)

    DISPLAY.fill(WHITE)

    pygame.draw.rect(DISPLAY,BLUE,(200,150,100,50))

    while True:
        for event in pygame.event.get():
            if event.type==QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.update()

main()

这将创建一个500像素×400像素的白色简单窗口。窗口内将是一个蓝色矩形。您需要使用pygame.draw.rect来解决此问题,并添加DISPLAY常量以将其添加到屏幕,将蓝色变为蓝色(蓝色是一个等于蓝色的元组值)在RGB值和它的坐标。

查找pygame.org了解更多信息

答案 1 :(得分:3)

你试过这个:

PyGame Drawing Basics

取自网站:

  

pygame.draw.rect(屏幕,颜色,(x,y,宽度,高度),厚度)绘制一个矩形(x,y,width,height)是一个Python元组x,y是上面的坐标左手边角宽度,高度是矩形的宽度和高度,厚度是线的粗细。如果为零,则填充矩形

答案 2 :(得分:2)

方法如下:

import pygame
screen=pygame.display.set_mode([640, 480])
screen.fill([255, 255, 255])
red=255
blue=0
green=0
left=50
top=50
width=90
height=90
filled=0
pygame.draw.rect(screen, [red, blue, green], [left, top, width, height], filled)
pygame.display.flip()
running=True
while running:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            running=False
pygame.quit()

答案 3 :(得分:0)

使用模块pygame.draw可以绘制矩形,圆形,多边形,留置物,椭圆或圆弧等形状。一些例子:

pygame.draw.rect绘制填充的矩形或轮廓。参数是目标表面(是显示),颜色矩形和可选的轮廓 width rectangle 参数是一个具有4个成分( x y width height < / em>),其中( x y )是矩形的左上角。或者,参数可以是pygame.Rect对象:

pygame.draw.rect(window, color, (x, y, width, height))
rectangle = pygame.Rect(x, y, width, height)
pygame.draw.rect(window, color, rectangle)

pygame.draw.circle绘制实心圆或轮廓。参数是目标表面(是显示),颜色中心半径和可选的轮廓 width center 参数是一个具有两个成分( x y )的元组:

pygame.draw.circle(window, color, (x, y), radius)

pygame.draw.polygon绘制填充的多边形或轮廓。参数是目标表面(是显示),颜色列表以及可选的轮廓 width 。每个 point 是一个具有2个组成部分( x y )的元组:

pygame.draw.polygon(window, color, [(x1, y1), (x2, y2), (x3, y3)])

最小示例:

import pygame

pygame.init()

window = pygame.display.set_mode((200, 200))
clock = pygame.time.Clock()

run = True
while run:
    clock.tick(60)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    window.fill((255, 255, 255))

    pygame.draw.rect(window, (0, 0, 255), (20, 20, 160, 160))
    pygame.draw.circle(window, (255, 0, 0), (100, 100), 80)
    pygame.draw.polygon(window, (255, 255, 0), 
        [(100, 20), (100 + 0.8660 * 80, 140), (100 - 0.8660 * 80, 140)])

    pygame.display.flip()

pygame.quit()
exit()