pygame游戏入门02.1 ——绘制基础图形练习 |
|
原来是稀琳
L7
• 2024-10-02 • 回复 0 • 只看楼主
• 举报
|
我是一个python入门的小白,做这个系列即是为了巩固pygame的相关知识,也是为了考验自己坚持做一件事。
另外如果下内容有错误或不规范的请各位大佬积极指出,谢谢大家。
在上一节中,我们已经学习了绘制基本三个基本图形(直线,矩形,圆)的教程却没有进行过实战,接下来,我将通过一个绘图的小案例来带各位画一个简单的图像 ——丑陋的脸(临时想的,没有什么美学价值,还请各位见谅。)
接下来我们先看一下实际的效果:
这就是大致的效果了(它真的,真的是一张很丑的脸,请各位见谅)
接下来是展示它的代码:
import pygame
import sys
import random
#初始化pygame
from pygame.locals import*
pygame.init()
# 控制眼珠变色的速度,防止CPU高速运行
clock = pygame.time.Clock()
#创建游戏窗口
width = 300
height = 300
screen = pygame.display.set_mode((width,height))
#给游戏窗口命名
pygame.display.set_caption("原来是稀琳")
#脸的变量
circle_x = 150
circle_y = 150
r =150
#眼睛变量
x_1 = 60
y_1 = 60
width_1 = 30
height_1 = 60
x_2 = 180
y_2 = 60
width_2 = 30
height_2 = 60
#胡子变量
huzi_x_up = 90
huzi_y_up = 170
huzi_x_down = 70
huzi_y_down = 190
#主循环
runing = True
while runing:
for event in pygame.event.get():
if event.type == pygame.QUIT:
runing = False
#清屏
screen.fill((0,0,0))
# 画脸
pygame.draw.circle(screen,(225,225,0),(circle_x,circle_y),r)
# 画眼睛
pygame.draw.rect(screen,(225,0,0),(x_1,y_1,height_1,width_1))
pygame.draw.rect(screen,(225,0,0),(x_2,y_2,height_2,width_2))
#变色小眼珠
red = random.randint(0,225)
yellow = random.randint(0,225)
bule = random.randint(0,225)
pygame.draw.rect(screen,(red,yellow,bule),
(x_1 + 30,y_1 ,height_1 // 2,width_1))
pygame.draw.rect(screen,(red,yellow,bule),
(x_2 ,y_2 ,height_2 // 2,width_2))
# 画鼻子
pygame.draw.line(screen,(160,90,55),(150,130),(150,160),5)
# 画胡子
pygame.draw.line(screen,(0,0,0),
(huzi_x_up,huzi_y_up),(huzi_x_down,huzi_y_down),2)
for num in range(30):
temp_huzi_x_up = huzi_x_up + num * 5
temp_huzi_x_down = huzi_x_down + num * 5
pygame.draw.line(screen,(0,0,0),
(temp_huzi_x_up,huzi_y_up),(temp_huzi_x_down,huzi_y_down),2)
#画笑脸
pygame.draw.rect(screen,(160,50,130),(80,200,140,20))
pygame.draw.rect(screen,(160,50,130),(100,220,20,20))
pygame.draw.rect(screen,(160,50,130),(180,220,20,20))
pygame.draw.rect(screen,(160,50,130),(80,240,140,20))
#刷新游戏窗口
pygame.display.update()
# 控制帧率
clock.tick(10)
#关闭游戏窗口
pygame.quit()
sys.exit()
接下来我主要讲的是:
1、循环速度的帧率(FPS)控制
2、运用pygame时的一些关于变量位置的规范见解
1、循环速度的帧率(FPS)控制
首先我们要知道:在Pygame中,控制帧率(FPS)是优化游戏性能和确保游戏运行流畅的重要步骤。它通过控制帧率,可以确保游戏在不同硬件配置的设备上都能以一致的速度运行。
Pygame提供了一个Clock对象,用于管理和控制游戏的帧率,Clock对象的主要方法包括tick()和get_fps()。
接下来,我们开始运用它:
import pygame
#初始化pygame
pygame.init()
#创建clock
clock = pygame.time.Clock()
'''
记:一般习惯于在开头创建clock
'''
最后结束时:
pygame.display.flip()
# 控制帧率
clock.tick(10)
'''
clock.tick()里的10计算FPS帧数,
它可以控制1秒钟循环的帧数
'''
2、运用pygame时的一些关于变量位置的规范见解(个人见解)
在pygame中写变量时,我一般是在主循环上面写变量内容,并且加上注释,有助于提高代码的可读性
总而言之,自己多尝试,多写,多练。学习不是白驹过隙,一蹴而就,它是百川到海,不断前行。
与君共勉,下期再见。