Pygame:基本图形绘制


🚴大家好!我是近视的脚踏实地,虽然近视,但是脚踏实地,这一篇主要讲Pygame 的基本图形绘制

(一)学习基本图形绘制有什么用

虽然说大多数的游戏都是由图片构成的,而学习Pygame就是为了游戏开发,那么学习基本图形绘制对游戏开发有什么用呢?🤔

其实,绘制基本图形对于游戏开发不是没有用,说来也奇怪,一些像素游戏也很火,尤其是一些由一些简单的图形绘制的小游戏,大概的原因如下:

1️⃣唯美的游戏界面越来越多,层出不穷,所以呢,玩家朋友们难免会出现审美疲劳。

2️⃣时下盛行的就是简约风格,只要你的游戏能够让大家看得舒服,玩得舒服,一般大家都不会拒绝简单的游戏;

3️⃣大型的游戏的CG动画绘制需要耗费相当的人力、物力和财力。

4️⃣简单的游戏更容易开发,小游戏工作室或个人即可完成开发,有更多逆袭的机会。

5️⃣游戏依托的主要平台已经从电脑端转移到手机端,那么小一个屏幕你把图像做得惟妙惟肖意义并不大。
(还多很多原因,比如说手机配置的差异大,而游戏需要很可能满足低配置的手机才能获得更大的玩家数量,那大游戏消耗大、耗电,散热都是一个需要考虑的问题,反而是一些简入门的小游戏,坐坐公交车,等等地铁就可以拿出来玩一玩,这些反而就受欢迎了,另外,简单的图形也能构造出高颜值的游戏,越是简单,越是抽象,越是抽象越是艺术)

所以在Pygame中,简单的图形绘制真的挺有用的,最好能认真学,然后呢,在Pygame的 draw 模块提供了绘制简单图形的方法。支持绘制的图形有矩形、多边形、圆形、椭圆形、弧形以及各种线条。

(二)绘制各种基本图形

1️⃣绘制矩形

用法👉 rect(Surface, color, Rect, width = 0)

绘制矩形是用draw模块下的rect方法,第一个参数Surface指定矩形将绘制在哪个对象上,第二个参数指定color矩形的颜色,第三个参数Rect指定矩形的范围,矩形的范围跟矩形类是一样的,他实际上就是一个矩形的对象,第四个参数width = 0是指定矩形边框的大小,0是表示填充这个矩形,1或者1以上就是用第二个参数指定的颜色去绘制他的边框

import pygame
import sys
from pygame.locals import *

pygame.init()

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)

size = width, height = 640, 200
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Monster Demo")

clock = pygame.time.Clock()

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

    screen.fill(WHITE)
    
    pygame.draw.rect(screen, BLACK, (50, 50, 150, 50), 0)
    pygame.draw.rect(screen, BLACK, (250, 50, 150, 50), 1)
    pygame.draw.rect(screen, BLACK, (450, 50, 150, 50), 10)

    pygame.display.flip()

    clock.tick(10)

在这里插入图片描述
解析:首先加两个宏定义WHITE = (255, 255, 255)。RGB格式都设置255,就表示是白色,BLACK = (0, 0, 0) 都设置为0就表示是白色。

接着到循环里边绘制就好了,pygame.draw.rect(screen, BLACK, (50, 50, 150, 50), 0) 就表示调用了draw模块的rect方法,然后第一个参数表示绘制在前面生成screen这个Surface对象上,第二参数颜色给个黑色,然后第三个是指定矩形范围,这里是给(50,50,150,50),坐标表示这个矩形左边和右边的坐标,第四个参数这个给个0,表示黑色会填充这个矩形

接着在这个之间前来画一个背景,即:screen.fill(WHITE),这里背景填充白色

接着在画第二个矩形,改下坐标为250这次把第四个参数改为1,表示不填充

接着再来第三个矩形,改下坐标为450,把第四个参数设置为10

最后要记得调用pygame.display.flip() 来更新一下页面,因为由于双缓冲的关系,这些绘制都是在内存中进行的,所以要用这个方法,把内存中的画面给一次性更新到显示器上,才能看的到

运行结果中需要的注意的是,第四个参数为10的时候,边框是向外扩展的,里边矩形的尺寸和我们给定是有一摸一样的,也就是说边框的宽度在原来的尺寸上,向外去扩展的

但是这样运行久后会发现你的电脑风扇就会呼呼响,这是因为那是个死循环,在死循环里边拼命绘制,而我们只需要看到就行了,而不是需要一个移动的图形,所以我们要来调低一下帧率 clock.tick(10) ,设置为一秒钟绘制10次就🉑了

2️⃣绘制多边形

用法👉 polygon(Surface, color, pointlist, width=0)

那么polygon的用法跟rect继续类似,除了第三个参数不同,第三个参数是指定多边形的各个顶点坐标构成的一个列表

import pygame
import sys
from pygame.locals import *

pygame.init(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值