PYGAME 基础 01 -窗口内文字位置问题

前言

注册 博客园 已经快两年的时间了,但是什么也没写,当初想养成的习惯也没有养成,趁前一阵在瞎弄 hexo 的机会,再次打开了博客园,这次要记录点什么,生活总得有些改变。

PYGAME自学记录

 

python 3 的基础语法在此先略过,这个是必须要学习的,但是自学过后,发现非常容易忘记,需要多编程才能熟用,所以决定直接动手,在动手写代码的过程中发现的基础问题,再即时记录。

 

以下是我在b站自学时摘取的一段代码,添加上自己的注释,非常基础,功能也非常简单,就是绘制一个窗口,显示字符

 1  # 案例1
 2 import pygame,sys
 3 # 导入 pygame 中的所有常量
 4 from pygame.locals import *
 5 
 6 # 初始化 pygame
 7 pygame.init()
 8 # 创建一个窗口
 9 win = pygame.display.set_mode((600,300))
10 # 设置一个标题
11 pygame.display.set_caption('hhh')
12 # 创建一个字体
13 myfont = pygame.font.Font(None,60)
14 
15 white = (255,255,255)
16 blue = (0,0,255)
17 
18 # 在窗口上绘制 文字  第二个参数代表抗锯齿,提高图形质量。
19 textImage = myfont.render('xxxx',True,white)
20 
21 # 持续显示
22 
23 while True:
24     for event in pygame.event.get():
25         # 当有按键 或者 点 × 关闭窗口的时候退出
26         if event.type in (QUIT,KEYDOWN):
27             sys.exit()
28     win.fill(blue)
29     win.blit(textImage,(100,100))
30 
31     pygame.display.update()

在学习完上面这段代码后,想到的第一个问题就是,窗口显示的字符位置问题,于是稍稍调整一下代码,如下。

 1  # 案例1
 2 import pygame,sys
 3 # 导入 pygame 中的所有常量
 4 from pygame.locals import *
 5 
 6 # 初始化 pygame
 7 pygame.init()
 8 # 创建一个窗口
 9 win = pygame.display.set_mode((600,300))
10 # 设置一个标题
11 pygame.display.set_caption('hhh')
12 # 创建一个字体
13 myfont = pygame.font.Font(None,100)
14 
15 white = (255,255,255)
16 blue = (0,0,255)
17 
18 # 在窗口上绘制 文字  第二个参数代表抗锯齿,提高图形质量。
19 textImage = myfont.render('x',True,white)
20 
21 # 持续显示
22 
23 while True:
24     for event in pygame.event.get():
25         # 当有按键 或者 点 × 关闭窗口的时候退出
26         if event.type in (QUIT,KEYDOWN):
27             sys.exit()
28     win.fill(blue)
29     win.blit(textImage,(300,150))
30 
31     pygame.display.update()

只显示一个 “X” 字符,blit 方法的坐标选择的是窗口的正中心,程序运行情况是

从结果可以看出,坐标 (300,150) 的中心点为 X 的左上角,所以将来在窗口绘制图像的时候,要注意这一点,比如想要在一个正方形窗口的中心绘制一个正方形,要注意坐标位置。

扫描二维码关注公众号,回复: 5053271 查看本文章

 

 例如,400*400的窗口,边长为100的正方形,选择的位置是 (150,150).

 1 # 案例2
 2 import pygame
 3 import sys
 4 from pygame.locals import *
 5 
 6 pygame.init()
 7 screen = pygame.display.set_mode((400,400))
 8 
 9 pos_x = 150
10 pos_y = 150
11 
12 while True:
13     for event in pygame.event.get():
14         if event.type in (QUIT,KEYDOWN):
15             sys.exit()
16 
17     screen.fill((0,0,0))
18 
19     # 画正方形
20     color = 255,255,0
21     pos = pos_x,pos_y,100,100
22     width = 0
23     pygame.draw.rect(screen,color,pos,width)
24 
25     pygame.display.update()

 

纯小白的第一个PYTHON 3 记录随笔,希望可以坚持下去!

猜你喜欢

转载自www.cnblogs.com/DimInk/p/10315741.html
今日推荐