pygame学习点滴
pygame分为四块
引用/ 初始化/ 事件处理/ 窗口刷新
普通版壁球游戏
"""
引用部分
"""
import pygame, sys """
初始化部分
"""
pygame.init() # 初始化
size = width, height = 600, 400 # 设置窗体大小
screen = pygame.display.set_mode(size) # 调用窗体
pygame.display.set_caption("撞球") # 设置窗体名称
speed = [1, 1] # 设置移动速度
BGCOLOR = 23, 45, 23 # 利用RGB形式设置背景颜色
ball = pygame.image.load('2.png') # 增加一个图片对象
ballrect = ball.get_rect() # 为图像加一个外切矩形
fps = 60 # 设置刷新帧率
fclock = pygame.time.Clock() # 设置clock对象 while True: """
事件处理部分
"""
for event in pygame.event.get(): # 所有外部输入设备的操作都在这里
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
elif event.key == pygame.K_RIGHT:
speed[0] = speed[0] + 1 if speed[0] >= 0 else speed[0] - 1
if event.key == pygame.K_DOWN:
speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1) * int(speed[1] / abs(speed[1]))
elif event.key == pygame.K_UP:
speed[1] = speed[1] + 1 if speed[1] >= 0 else speed[1] - 1 ballrect = ballrect.move(speed[0], speed[1]) # 设置外切矩形的运动速度
if ballrect.left < 0 or ballrect.right > width: # 左右到边界
speed[0] = -speed[0]
if ballrect.top < 0 or ballrect.bottom > height: # 上下到边界
speed[1] = -speed[1] """
窗口刷新部分
"""
screen.fill(BGCOLOR) # 为窗口填充背景色
screen.blit(ball, ballrect) # 让球和外切矩形动起来
pygame.display.update() # 刷新窗口
fclock.tick(fps) # 设置刷行频率
发现问题:
如果把
32 ballrect = ballrect.move(speed[0], speed[1]) # 设置外切矩形的运动速度
33 if ballrect.left < 0 or ballrect.right > width: # 左右到边界
34 speed[0] = -speed[0]
35 if ballrect.top < 0 or ballrect.bottom > height: # 上下到边界
36 speed[1] = -speed[1]
这几行代码写到上面的for循环里面,整个游戏运行就会特别卡
屏幕需求设置
屏幕大小可改变pygame.RESIZABLE
游戏全屏pygame.FULLSCREEN
游戏无边框pygame.NOFRAME
pygame.display.set_mode((1440, 900), pygame.FULLSCREEN)
pygame.display.Info()
current_w
current_h
当前窗口的宽度,高度
更改标题栏内容和图标
pygame.display.set_caption("撞球") # 设置标题信息
pygame.display.get_caption() # 获得图标和标题信息
pygame.display.set_icon() # 设置图标信息
窗口感知和刷新
pygame.display.get_active() #判断窗口是否被最小化
pygame.display.flip() # 重新绘制所有窗口
pygame.display.update() # 重新绘制变化的元素
窗口颜色:
Color类
rgba a表示透明度
.normalize 归一到0-1之间
图形绘制:
draw类
pygame.draw.rect(screen, color, rect, width=0)
pygame学习点滴的更多相关文章
- iPhone应用开发 UITableView学习点滴详解
iPhone应用开发 UITableView学习点滴详解是本文要介绍的内容,内容不多,主要是以代码实现UITableView的学习点滴,我们来看内容. -.建立 UITableView DataTab ...
- Phonegap学习点滴(2) -- 网络状态检测
Phonegap学习点滴(2) -- 网络状态检测 http://blog.csdn.net/x251808026/article/details/16992943 方法一:在MainActivit ...
- pygame学习笔记(3)——时间、事件、文字
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 1.运动速率 上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200 ...
- android学习点滴一:android环境的搭建
东一点西一点,很多时间都浪费了.是该系统性的做好自己的东西了. <android学习点滴一:android环境的搭建> [环境变量]变量名:JAVA_HOME变量值:C:\Java\jdk ...
- MySQL学习点滴
MySQL学习点滴 --分区表 概述: 分区功能并不是在存储引擎层完成的,因此很多存储引擎包括InnoDB, MyISAM, NDB等都支持分区功能.但也并不是所有的存储引擎都支持分区.在使用分区前, ...
- PyGame学习笔记之壹
新建窗口 代码 '''PyGame学习笔记之壹''' import pygame # 引入 PyGame 库 pygame.init() # PyGame 库初始化 screen = pygame.d ...
- 用pygame学习初级python(一) 15.4.19
最近有计划要学一下python,主要是要用flask.django一些框架进行后端的学习工作,但是在web应用之前希望进行一些基础的项目进行一些语法的练习,熟悉一下写法, 这个时候我就想先做几个小游戏 ...
- pygame学习笔记(4)——声音
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi pygame.mixer是一个用来处理声音的模块,其含义为“混音器”.游戏中对声音的处理一般包括制造声音和播放声音 ...
- pygame学习笔记(5)——精灵
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 据说在任天堂FC时代,精灵的作用相当巨大,可是那时候只知道怎么玩超级玛丽.魂斗罗,却对精灵一点也不知.pygame ...
随机推荐
- isPrototypeOf、instanceof、hasOwnProperty函数介绍
isPrototypeOf 作用:检测一个对象是否是另一个对象的原型.或者说一个对象是否被包含在另一个对象的原型链中 var p = {x:1};//定义一个原型对象 var o = Object.c ...
- Putty中的pscp和psftp的简明用法
用习惯了putty,那是真心的方便啊,putty文件夹下其他的小兄弟也不能忽略啊. 以前的时候,从远程服务器下载个文件用winscp,后来,发现在putty文件夹里好像有一个 pscp和psftp,今 ...
- .NET平台下,初步认识AutoMapper
初步认识AutoMapper AutoMapper 初步认识AutoMapper 前言 手动映射 使用AutoMapper 创建映射 Conventions 映射到一个已存在的实例对象 前言 通常 ...
- day 9~11 函数
今日内容 '''函数四个组成部分函数名:保存的是函数的地址,是调用函数的依据函数体:就是执行特定功能的代码块函数返回值:代码块执行的结果反馈函数参数:完成功能需要的条件信息1.函数的概念2.函数的定 ...
- C# — Windows服务安装后自动停止问题
今天在使用VS创建一个Windows服务时,为了得到一些提示,引用了Windows.Forms程序集,然后使用MessageBox.Show()方法渴望得到一些弹窗提示: 但是最后在安装好服务后,在任 ...
- android9.0系统适配遇到的问题
一.apk在9.0以下的系统上安装运行,没有问题.但是在9.0系统上运行会弹出一个框 解决办法: private void closeAndroidPDialog() { try { Class aC ...
- PHP 练习(新闻发布)
1.新闻发布主页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- 计算机网络基础知识-OSI七层协议模型
一.物理层 物理层主要规定了物理设备的标准,如网线的类型.光纤的接口类型.各种传输介质的传输速率,物理层的数据以比特流(二进制)的形式存在,传输时将比特流转化为电流强弱,达到目的地之后再转化为比特流. ...
- Spring Boot的web开发
web开发的自动配置类:org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration 自动配置的ViewResolver 视图的 ...
- MySQL之 InnoDB记录结构(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
以下内容来自掘金小册 MySQL 是怎样运行的:从根儿上理解 MySQL 版权归原作者所有! 页是MySQL中磁盘和内存交互的基本单位,也是MySQL是管理存储空间的基本单位. 指定和修改行格式的语法 ...