Pygame游戏之 满天笑脸

Pygame游戏(3)满天笑脸
屏幕上都是闪闪会移动的笑脸是不是挺鼓励你继续学习呢
在这里插入图片描述

首先从简单开始:我们得先知道如何在屏幕上绘制文本内容
1、创建一个pygame.font.Font对象
2、创建一个Surface对象,通过调用上一步对象的render()方法
3、设置正确的宽度,高度,和文本内容

import pygame,sys
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((400,300))
pygame.display.set_caption("绘制简单的文本内容")
color = (0,0,0)
font_color = (255,255,255)

font = pygame.font.Font(None,28)	        #设置字体,None为系统默认的字体
text = font.render("^_^",True,font_color)	#设置要绘制的文本内容和字体的颜色

while True:
	for event in pygame.event.get():
		if event.type == QUIT:
			sys.exit()
	screen.fill(color)
	screen.blit(text,(100,100))	#将文本内容绘制在100*100的位置
	pygame.display.update()

好了,是不是蛮容易上手的呢

第二步:让我们生成很多的笑脸并让它们动起来(注释在代码行的后面)
1、这里我们使用列表来进行管理
2、使用for循环随机生成笑脸的坐标,颜色
3、让坐标不断变化,到达边界后重新回到0位置

import pygame,sys,random                     
from pygame.locals import *

screen = pygame.display.set_mode((800,600))	 #创建窗口
pygame.display.set_caption("满天笑脸")		 #设置标题
xx = []                                		 #定义两个空列表,分别记录x,y坐标的值
yy = []           
color = (0,0,0)								 #背景颜色

def init():
    for i in range(0,100):                   #循环100次        
        xx.append(random.randint(0,800))     #随机生成数字赋给两个列表
        yy.append(random.randint(0,800))
        #print(str(xx[i]) + ", " + str(yy[i])) 显示两个列表具体的元素

def action():
    for event in pygame.event.get():    	 #获取事件     
        if event.type == QUIT:				 #按下窗口的关闭按钮后
                sys.exit()					 #退出游戏
        elif event.type == KEYDOWN:			 #获取键盘事件
            if event.key == K_ESCAPE:		 #按下ESC按键后
                sys.exit()					 #退出游戏
        
    for i in range(len(xx)):       #循环当前列表长度的次数,让每个笑脸斜向下移动
        xx[i] += 1                 #x坐标右移
        yy[i] += 1                 #y坐标下移
        if xx[i] > 800:            #循环,到达边界后再回到坐标0点
            xx[i] = 0
        if yy[i] > 800:
            yy[i] = 0

def paint():
    pygame.font.init()
    font = pygame.font.Font(None,28)	   #设置字体
    for i in range(len(xx)):
        r = random.randint(0,255)          #设置字体颜色
        g = random.randint(0,255)
        b = random.randint(0,255)
        
        fontRead = font.render("^_^",True,(r,g,b)) 			   #设置文本的内容和颜色
        screen.blit(fontRead,(xx[i],yy[i]))  				   #绘制笑脸 
           
    pygame.draw.circle(screen,(255,255,255),(100,100),50,0)    
    pygame.draw.circle(screen,(0,0,0),(80,80),50,0)			   #两个圆叠加后形成月亮

def menu():
    while True:
        screen.fill(color)
        action()
        paint()
        pygame.time.delay(10)		#延迟时间,让笑脸移动的慢一些便于观察
        pygame.display.update()

if __name__ == '__main__':
    init()
    menu()

好了,这个游戏是不是小有意思呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值