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 ...
随机推荐
- Oracle Metric sequence load elapsed time
Oracle Metric sequence load elapsed time The sequence load elapsed time Oracle metric is the amount ...
- IDEA+循环语句 or 输出语句 快捷操作
IDEA+循环语句 or 输出语句 快捷操作:https://blog.csdn.net/shijiebei2009/article/details/44726433 for循环:仅输入fori然后回 ...
- go笔记-pprof使用
go tool pprof http://localhost:6060/debug/pprof/profile go tool pprof http://localhost:6060/debug/pp ...
- python json库序列化支持中文
import json d = {"name":"英雄无敌7"} res = json.dumps(d) # 打印res 会显示 {"name&quo ...
- 08-JavaScript中的函数
JavaScript中的函数 1.函数简介 函数:就是将一些语句进行封装,然后通过调用的形式,执行这些语句. 函数的作用: 将大量重复的语句写在函数里,以后需要这些语句的时候,可以直接调用函数,避免重 ...
- monkey自定义脚本实践
自定义脚本的稳定性测试 常规Monkey测试执行的是随机的事件流,但如果只是想让Monkey测试某个特定场景这时候就需要用到自定义脚本了,Monkey支持执行用户自定义脚本的测试,用户只需要按照Mon ...
- python 基础篇练习题
一.练习题 # 1.统计元组中所有数据属于字符串的个数,提示:isinstance() # 数据:t1 = (1, 2, '3', '4', 5, '6') # 结果:3 # 2.将以下数据存储为字典 ...
- ListView与RecyclerView对比浅析——缓存机制
https://www.jianshu.com/p/193fb966e954 一,背景 RecyclerView是谷歌官方出的一个用于大量数据展示的新控件,可以用来代替传统的ListView,更加强大 ...
- docker的安装,升级,与删除(最新版)
docker安装在ubuntu上 以前叫做 Docker engine安装现在叫做docker-ce的 第一种安装办法: root下执行,sudo su - root apt-get update - ...
- ☆ [洛谷P2633] Count on a tree 「树上主席树」
题目类型:主席树+\(LCA\) 传送门:>Here< 题意:给出一棵树.每个节点有点权.问某一条路径上排名第\(K\)小的点权是多少 解题思路 类似区间第\(K\)小,但放在了树上. 考 ...