用Pygame Zero 画矩形 (空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)

简介: 用Pygame Zero 画矩形(空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)

零、时光宝盒

2ab463de26a541818271efa176656ae6.png

逆境清醒:https://blog.csdn.net/weixin_69553582

  每个人都是独一无二的,都有自己独特优胜过别人的地方,谁都不可能完全替代另外一个人。谁都有属于自己的独特人生需要去经历。
  如果真的关心一个人,有没有想过你给他(她)的是否他(她)心里最想要的?
  你认为(或者你身边的人)认为某个人一定知道的事情,其实这个人可能并不知道,是真的不知道,这当中有不可估计的变故。在未了解100%真相前做任何结论都是不明智的。

逆境清醒
2025.1.13

此文地址:https://blog.csdn.net/weixin_69553582/article/details/145121515

fgx1.gif

一、绘制空心矩形

效果如下图所示:

8277c05d27ab4210bb0c378e892e2b61.png

代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 400
HEIGHT = 200
def draw():
    screen.fill('white')
    rect=Rect((50, 50), (300, 100))
    screen.draw.rect(rect,'black')
pgzrun.go()

运行效果为在窗口中画了一个矩形.


def draw()

表示定义了一个绘图函数,冒号后面的语句表示具体的绘制工作。


    screen.fill('white')

screen.fill('white')语句中,screen表示屏幕,fill表示用括号里的颜色来填充整个背景画面。

代码表示显示背景是白色。

    rect=Rect((50, 50), (300, 100))
    screen.draw.rect(rect,'black')

rect=Rect((50, 50), (300, 100))是描述所画的矩形

Rect(left, top, width, height) -> Rect

'black'表示圆的颜色为黑色。

二、绘制实心矩形

绘制实心矩形,效果如下:
8b262b1769a94a04b6db1e79815c63d6.png

代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 400
HEIGHT = 200
def draw():
    screen.fill('white')
    rect=Rect((50, 50), (300, 100))
    screen.draw.filled_rect(rect,'purple')
pgzrun.go()

运行代码,运行效果为在窗口中画了一个实心矩形,

这里使用了filled_rect函数,filled_rect就是填充矩形的意思。

    rect=Rect((50, 50), (300, 100))
    screen.draw.filled_rect(rect,'purple')

其中screen表示屏幕,draw为绘制的英文单词,filled_rect表示填充矩形;

'purple'表示矩形的颜色为紫色。

三、画多个静止矩形

要画多个小球,我们需要了解一下zero坐标系,

0f179b43fc4c440893576d32e765f5fb.png

Pygame Zero 的坐标系以左上角为原点 ( 0, 0 )

  游戏窗口的绘制区域采用直角坐标系,左上角的坐标为(0,0)。

  横轴方向由x坐标表示,取值范围为0到最大横坐标,例如x=800;

  纵轴方向由y坐标表示,取值范围为0到最大纵坐标,例如y=600。

  游戏窗口中任一点的位置可由其(x,y)坐标表示。

绘制多个静止实心矩形

绘制多个静止实心矩形,效果如下:

14eec26d6a11437bac2c63b7d0ae19c8.png

运行以下代码,即可在对应的坐标位置绘制出图所示的3个矩形:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 600
HEIGHT = 400
def draw():
    screen.fill('white')
    screen.draw.filled_rect(Rect((50, 50), (300, 100)), 'red')
    screen.draw.filled_rect(Rect((150, 150), (300, 100)), 'green')
    screen.draw.filled_rect(Rect((250, 250), (300, 100)), 'blue')
pgzrun.go()

四、绘制多层同心矩形

4.1、绘制7层彩虹条矩形

绘制7层彩虹条矩形,效果如下:
d2174859c833493682c9fba0ddca5456.png

相关的代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 400
HEIGHT = 450
def draw():
    screen.fill('white')
    screen.draw.filled_rect(Rect((50, 50), (300, 50)), 'red')
    screen.draw.filled_rect(Rect((50, 100), (300, 50)), 'orange')
    screen.draw.filled_rect(Rect((50, 150), (300, 50)), 'yellow')
    screen.draw.filled_rect(Rect((50, 200), (300, 50)), 'green')
    screen.draw.filled_rect(Rect((50, 250), (300, 50)), 'cyan')
    screen.draw.filled_rect(Rect((50, 300), (300, 50)), 'blue')
    screen.draw.filled_rect(Rect((50, 350), (300, 50)), 'purple')
pgzrun.go()

4.2、绘制5层同心矩形

绘制5层同心矩形,效果如下:
08be4b81b0de46818be9bb9ffc3bc53c.png

相关的代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 600
HEIGHT = 600
def draw():
    screen.fill('white')
    i=0
    for r in range(400,0, -40):
        screen.draw.rect(Rect((100+(400-r),100+(400-r)), (r-i*40, r-i*40)), 'purple')
        screen.draw.rect(Rect((100+(400-r)+20,(100+(400-r)+20)), (r-(i+1)*40,r-(i+1)*40)), 'white')
        i=i+1
pgzrun.go()

4.3、绘制20层同心随机彩色矩形

绘制20层同心随机彩色矩形,效果如下图所示:

dc2ccd19b88c4c40a2f75a393c2e99c4.png

代码如下:

import pgzrun
import random
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH =360
HEIGHT = 360
def draw():
    screen.fill('white')
    i=0
    for r in range(30, 231, 10):
        rect = Rect((r, r), (300-i*20, 300-i*20))
        screen.draw.rect(rect, (random.randint(0, 255), random.randint(0, 255),random.randint(0, 255)))
        i=i+1
pgzrun.go()

​4.4、绘制条纹相间的矩形

绘制条纹相间的矩形,效果如下图所示:
55b90c97e1a243dd9eaafb9f6e3a57ad.png

相关代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 400
HEIGHT = 400
def draw():
    screen.fill('white')
    for r in range(250, 0, -40):
        screen.draw.filled_rect(Rect((50, r), (300, 50)), 'purple')
        screen.draw.filled_rect(Rect((50, r - 20), (300, 50)), 'white')
pgzrun.go()

4.5、绘制梯形扇形

绘制梯形扇形,效果如下图所示:
6117e7906ee541388c27654226c4da1c.png

相关代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 350
HEIGHT = 350
def draw():
    screen.fill('white')
    for r in range(300, 0, -30):
        screen.draw.filled_rect(Rect((30,30), (300-r, r)), 'purple')
        screen.draw.filled_rect(Rect((30, 30), (300-r, r - 30)), 'white')
pgzrun.go()

4.6、绘制图形

效果如下图所示:
bef2bb16218f4bcf8c7e82f83b1094c1 (1).png

相关代码如下:

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 350
HEIGHT = 350
def draw():
    screen.fill('white')
    for r in range(300, 0, -30):
        screen.draw.filled_rect(Rect((30,30), (r,r)), 'purple')
        print( (r,r))
        print( (r- 30,r - 30))
        screen.draw.filled_rect(Rect((30, 30), (r- 15,r - 15)), 'white')
pgzrun.go()

4.7、绘制条纹相间的同心矩形

绘制绘制条纹相间的同心矩形,效果如下图所示:
ccfa5f37c8144d808b6397cf7d494a51.png

相关代码如下:

绘制同心多个填充矩形

import pgzrun
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH = 600
HEIGHT = 600
def draw():
    screen.fill('white')
    i=0
    for r in range(400,0, -40):
        screen.draw.filled_rect(Rect((100+(400-r),100+(400-r)), (r-i*40, r-i*40)), 'purple')
        screen.draw.filled_rect(Rect((100+(400-r)+20,(100+(400-r)+20)), (r-(i+1)*40,r-(i+1)*40)), 'white')
        i=i+1
pgzrun.go()

4.8、绘制随机颜色的同心填充矩形

效果如下图所示:

ee292efbc4be4983b680d33775684e38.png

相关代码如下:

import pgzrun
import random
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH =350
HEIGHT = 350
def draw():
    screen.fill('white')
    i=0
    for r in range(1, 201, 10):
        rect = Rect((r, r), (300-i*20, 300-i*20))
        screen.draw.filled_rect(rect, (random.randint(0, 255), random.randint(0, 255),random.randint(0, 255)))
        i=i+1
pgzrun.go()

五、绘制有渐变效果的填充矩形

绘制有渐变效果的填充矩形,效果如下图所示:

df7c5a364dda4180be1537698e98d374.png

实现的代码为:

import pgzrun
import random
TITLE = "逆境清醒编程用法示例pgzrun——画矩形"
WIDTH =350
HEIGHT = 350
def draw():
    screen.fill('white')
    i=0
    for r in range(1, 201, 10):
        rect = Rect((r, r), (300-i*20, 300-i*20))
        screen.draw.filled_rect(rect, (r, 0, r))
        i=i+1
pgzrun.go()

调整代码,我们还可以做出其他效果,例如实现有立体效果的矩形,如下图所示:

e51ac8786f3f4642a94b0f64977d739e.png

本系列Pygame Zero(pgzrun)文章:
1、Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)

2、让我们一起用Pygame Zero 画圆形(空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)

3、用Pygame Zero 画矩形(空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)

相关文章
|
8天前
|
Python
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
让我们一起用Pygame Zero 画圆形 (空心圆圈、实心圆、多个小球、多层同心圆、随机颜色同心圆、有渐变效果填充圆)
56 31
|
8天前
|
API 开发者 Python
Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)
Pygame Zero(pgzrun)详解(简介、使用方法、坐标系、目录结构、语法参数、安装、实例解释)
56 17
|
Python
pygame学习笔记(1)——安装及矩形、圆型画图
pygame是一个设计用来开发游戏的python模块,其实说白了和time、os、sys都是一样的东东。今天开始正式学习pygame,下载地址:www.pygame.org。下载后安装完成即可,在pygame的学习中,我使用了spe编辑器,感觉还不错。
1280 0
|
8月前
|
Python
Python使用pygame播放MP3
Python使用pygame播放MP3
106 0
|
2月前
|
JSON 开发工具 git
基于Python和pygame的植物大战僵尸游戏设计源码
本项目是基于Python和pygame开发的植物大战僵尸游戏,包含125个文件,如PNG图像、Python源码等,提供丰富的游戏开发学习素材。游戏设计源码可从提供的链接下载。关键词:Python游戏开发、pygame、植物大战僵尸、源码分享。
|
5月前
|
定位技术 Python
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
【python】python基于pygame坦克大战游戏设计(源码+图像+操作说明)【独一无二】
110 1
|
5月前
|
Linux iOS开发 MacOS
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
【Python】Python基于Pygame疯狂赛车游戏设计(源码+报告)【独一无二】
142 1
|
5月前
|
Python
【python】python基于pygame弹珠游戏设计(源码)【独一无二】
【python】python基于pygame弹珠游戏设计(源码)【独一无二】

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等