python之pygame的基础认识(一)

        在最初学习pygame的时候按照书上几十页的代码以及注释,循序渐进的做成了一个高仿的消灭外星人游戏,但做完之后效果很不理想,完全不知道仿照书上敲完之后有什么用,一些的基础知识也有很多很迷,后来看到了大佬一篇博客,决定从头开始好好学习应该怎么做,如何做,而不是像从前那样单纯的敲代码,彷佛都会了,实则浪费大量时间做着无用功


在前面一篇文章就提到过如何进行pygame如何安装,那我们就先利用其中的部分模块创建一个简单的游戏窗口,并实现鼠标的图片化显示

先将代码放上:

最开始两行,我们将图片用变量名来赋值
在正式创建窗口之前,我们需要使用imort来调用pygame
同时导入其中的函数和常量,并初始化pygame

background_image_filename = 'background.png'
mouse_image_filename = 'carrot.png'

import pygame
#导入pygame库

from pygame.locals import *
#导入一些常用的函数和常量

from sys import exit
#向sys模块借一个exit函数用来退出程序

pygame.init()
#初始化pygame,为使用硬件做准备

在确保pygame可以正常使用之后,我们开始创建窗口

screen = pygame.display.set_mode((580,400),0,32)
#创建一个窗口

pygame.display.set_caption("Hello, World!")
#设置窗口标题

background = pygame.image.load(background_image_filename).convert()
mouse_cursor = pygame.image.load(mouse_image_filename).convert_alpha()
#加载并转换图像

这里面有几个函数我们需要好好了解一下

  • set_mode
    返回一个surface对象,即运行程序之后显示的那个游戏窗口
    其有三个元组,第一个表示分辨率(必须存在),第二个为标志位,第三个为色深

即set_mode(分辨率,标志位,色深)
标志位可设置为这些:

标志位功能
FULLSCREEN创建一个全屏窗口
OPENGL创建一个OPENGL渲染窗口
RESIZEABLE创建一个可改变大小的窗口
NOFRAME创建一个没有边框的窗口

注意:
设置全屏之后很难退出来
故可以用如下代码获得您的机器支持的显示模式:

import pygame
pygame.init()
pygame.display.list_modes()

而同时我们也要涉及到窗口的大小,即可使用
VIDEORESIZE (包含size,w,h)
size: 二维元组,值为更改后的窗口尺寸,size[0]为宽,size[1]为高
w:
h:

- set_caption
设置窗口标题

- convert
将图像数据都转化为surface对象,即每次加载完图像以后就会进行转化

- convert_alpha
保留透明通道信息,即使光标显示不规则的形状

正式进入游戏的主循环部分:
如果事件终止则退出循环和程序,
否则显示背景和鼠标,同时一定要刷新,否则显示的是全黑的

while True:
#开始游戏主循环
	for event in pygame.event.get():
		if event.type == QUIT:
			exit()

		screen.blit(background, (0,0))
		#将背景画上去

		x, y = pygame.mouse.get_pos()	
		#获得鼠标的位置

		x -= mouse_cursor.get_width()/2
		y -= mouse_cursor.get_width()/2
		#计算光标左上角位置

		screen.blit(mouse_cursor, (x, y))
		#把光标先画上

		pygame.display.update()
		#刷新一下页面

其中的一些函数:

- blit
两个参数,一个为需要的对象,一个为对象的位置(为期望的位置的左上角)

- update
刷新页面

在进行了上述代码的描述,我们可得到一个最简单的游戏界面,且鼠标的样式可自己决定,并且对于游戏有了基础性的了解


该系列博客是学习一位大佬之后做的笔记
博客链接为:pygame的实践过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值