文字壁球小游戏

这是学习嵩天老师的课程,习得并引以为笔记。

什么是文字壁球小游戏呢,就是以文字代替壁球,而运动跟壁球是一样的,要实现这个效果,主要解决文字的移动绘制及刷新,就是在绘制文字的基础上去移动文字使文字可以纵向和横向移动,下面用两段代码来展示一下效果,分别使用的是两种方法。

import pygame,sys
import pygame.freetype

pygame.init()
size = width,height =600,400
speed=[1,1]
GOLD = 255,251,0
BLACK = 0,0,0
pos = [230,160]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame文字绘制")
f1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc",36)#使用微软字体
f1rect = f1.render_to(screen,(200,160),"移动吧,文字",fgcolor=GOLD,size=50)
#f1surf,f1rect = f1.render("移动吧,文字",fgcolor=GOLD,size=50)
fps=300
fclock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    if pos[0] < 0 or pos[0] + f1rect.width >width:
        speed[0] = -speed[0]
    if pos[1] < 0 or pos[1] +f1rect.height >height:
        speed[1] = -speed[1]
    pos[0] = pos[0] + speed[0]
    pos[1] = pos[1] + speed[1]

    screen.fill(BLACK)
    f1rect = f1.render_to(screen,pos,"移动吧,文字",fgcolor=GOLD,size=50)
    #screen.blit(f1surf,(200,160))#返回出现在要绘制的屏幕上
    pygame.display.update()
    fclock.tick(fps)

这一段代码使用render库的方法,直接将文字绘制在主屏幕上,或者说是主图层上,注意,我们要将绘制的文字写在刷新屏幕的后面,这两个顺序不能搞错。

下面我们用另一种方法去实现同样的效果:

import pygame,sys
import pygame.freetype

pygame.init()
size = width,height =600,400
speed=[1,1]
GOLD = 255,251,0
BLACK = 0,0,0
pos = [230,160]
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame文字绘制")
f1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc",36)#使用微软字体
#f1rect = f1.render_to(screen,(230,160),"移动吧,文字",fgcolor=GOLD,size=50)
f1surf,f1rect = f1.render("移动文字",fgcolor=GOLD,size=50)
fps=300
fclock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    if pos[0] < 0 or pos[0] + f1rect.width >width:
        speed[0] = -speed[0]
    if pos[1] < 0 or pos[1] +f1rect.height >height:
        speed[1] = -speed[1]
    pos[0] = pos[0] + speed[0]
    pos[1] = pos[1] + speed[1]

    screen.fill(BLACK)
    f1surf,f1rect = f1.render("移动文字",fgcolor=GOLD,size=50)
    #f1rect = f1.render_to(screen,pos,"移动吧,文字",fgcolor=GOLD,size=50)
    #screen.blit(f1surf,(200,160))#返回出现在要绘制的屏幕上
    screen.blit(f1surf,(pos[0],pos[1]))
    pygame.display.update()
    fclock.tick(fps)

大家对比一下这两个代码有那些区别吧!(其实都用#标了嘿嘿)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值