前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pygame-游戏开发学习笔记(二)–模块表与背景图样例。

pygame-游戏开发学习笔记(二)–模块表与背景图样例。

作者头像
十四君
发布2019-11-28 00:06:32
1.2K0
发布2019-11-28 00:06:32
举报
文章被收录于专栏:UrlteamUrlteamUrlteam

游戏,也可以3D先从简单的入手吧,先看一下pygame模块一览表

pygame.cdrom

访问光驱

pygame.cursors

加载光标

pygame.display

访问显示设备

pygame.draw

绘制形状、线和点

pygame.event

管理事件

pygame.font

使用字体

pygame.image

加载和存储图片

pygame.joystick

使用游戏手柄或者 类似的东西

pygame.key

读取键盘按键

pygame.mixer

声音

pygame.mouse

鼠标

pygame.movie

播放视频

pygame.music

播放音频

pygame.overlay

访问高级视频叠加

pygame

就是我们在学的这个东西了……

pygame.rect

管理矩形区域

pygame.sndarray

操作声音数据

pygame.sprite

操作移动图像

pygame.surface

管理图像和屏幕

pygame.surfarray

管理点阵图像数据

pygame.time

管理时间和帧信息

pygame.transform

缩放和移动图像

可以使用一个简单的小代码测试一下。

Python

if pygame.font is None: print "The font module is not available!" exit()

123

if pygame.font is None:    print "The font module is not available!"    exit()

全部测试的源代码,在github上

现在来试着写一个小程序。

因为截图的原因会跟随鼠标移动的路飞的头像跑到下面去了。大家参看下源代码就很快能明白了,非常直观。

Python

#coding:utf-8 ''' 本测试样例将创建一个窗口,然后显示一张图片, ''' #!/usr/bin/env python background_image_filename = '1.1.jpg' mouse_image_filename = '2.jpg' #制定图像文件名称 import pygame from pygame.locals import * from sys import exit #从sys中使用结束函数 pygame.init() #初始化pygame、 screen = pygame.display.set_mode((1280,800),RESIZABLE,32) #创建一个窗口,并且制定大小。 pygame.display.set_caption("hello, world! ly first game!") #设置窗口标题 background = pygame.image.load(background_image_filename).convert() mouse_cursor = pygame.image.load(mouse_image_filename).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 #获取鼠标图像的宽高计算新的xy的值,目的是为了能居中 y -= mouse_cursor.get_height()/2 screen.blit(mouse_cursor,(x,y)) #在新的值画上x,y。以及鼠标的图案。 pygame.display.update() #刷新一下画面

12345678910111213141516171819202122232425262728293031323334353637383940414243444546

#coding:utf-8'''本测试样例将创建一个窗口,然后显示一张图片,'''#!/usr/bin/env python background_image_filename = '1.1.jpg'mouse_image_filename = '2.jpg'#制定图像文件名称 import pygamefrom pygame.locals import *from sys import exit#从sys中使用结束函数 pygame.init()#初始化pygame、 screen = pygame.display.set_mode((1280,800),RESIZABLE,32)#创建一个窗口,并且制定大小。 pygame.display.set_caption("hello, world! ly first game!")#设置窗口标题 background = pygame.image.load(background_image_filename).convert() mouse_cursor = pygame.image.load(mouse_image_filename).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   #获取鼠标图像的宽高计算新的xy的值,目的是为了能居中    y -= mouse_cursor.get_height()/2        screen.blit(mouse_cursor,(x,y))    #在新的值画上x,y。以及鼠标的图案。    pygame.display.update()    #刷新一下画面

set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,具体意思见下表,如果不用什么特性,就指定0;第三个为色深。

标志位

功能

FULLSCREEN

创建一个全屏窗口

DOUBLEBUF

创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用

HWSURFACE

创建一个硬件加速的窗口,必须和FULLSCREEN同时使用

OPENGL

创建一个OPENGL渲染的窗口

RESIZABLE

创建一个可以改变大小的窗口

NOFRAME

创建一个没有边框的窗口

convert函数是将图像数据都转化为Surface对象,每次加载完图像以后就应该做这件事件(事实上因为 它太常用了,如果你不写pygame也会帮你做);convert_alpha相比convert,保留了Alpha 通道信息(可以简单理解为透明的部分),这样我们的光标才可以是不规则的形状。

游戏的主循环是一个无限循环,直到用户跳出。在这个主循环里做的事情就是不停地画背景和更新光标位置,虽然背景是不动的,我们还是需要每次都画它, 否则鼠标覆盖过的位置就不能恢复正常了。

blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。画完以后一定记得用update更新一下,否则画面一片漆黑。

原创文章,转载请注明: 转载自URl-team

本文链接地址: pygame-游戏开发学习笔记(二)–模块表与背景图样例。

Related posts:

  1. pygame-游戏开发学习笔记(三)–event事件捕捉
  2. pygame-游戏开发学习笔记(四)–pygame.display.set_mode()显示的问题
  3. pygame-游戏开发学习笔记(五)–pygame.Font,字体与中文以及错误检测的问题
  4. 学习-用Python和Pygame写游戏-从入门到精通(6)
  5. pygame-游戏开发学习笔记(七)–pygame.draw,画图。
  6. pygame-游戏开发学习笔记(八)–pygame.time&&fps 动画制作
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-12-072,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Related posts:
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档