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学习点滴的更多相关文章

  1. iPhone应用开发 UITableView学习点滴详解

    iPhone应用开发 UITableView学习点滴详解是本文要介绍的内容,内容不多,主要是以代码实现UITableView的学习点滴,我们来看内容. -.建立 UITableView DataTab ...

  2. Phonegap学习点滴(2) -- 网络状态检测

    Phonegap学习点滴(2) -- 网络状态检测  http://blog.csdn.net/x251808026/article/details/16992943 方法一:在MainActivit ...

  3. pygame学习笔记(3)——时间、事件、文字

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 1.运动速率    上节中,实现了一辆汽车在马路上由下到上行驶,并使用了pygame.time.delay(200 ...

  4. android学习点滴一:android环境的搭建

    东一点西一点,很多时间都浪费了.是该系统性的做好自己的东西了. <android学习点滴一:android环境的搭建> [环境变量]变量名:JAVA_HOME变量值:C:\Java\jdk ...

  5. MySQL学习点滴

    MySQL学习点滴 --分区表 概述: 分区功能并不是在存储引擎层完成的,因此很多存储引擎包括InnoDB, MyISAM, NDB等都支持分区功能.但也并不是所有的存储引擎都支持分区.在使用分区前, ...

  6. PyGame学习笔记之壹

    新建窗口 代码 '''PyGame学习笔记之壹''' import pygame # 引入 PyGame 库 pygame.init() # PyGame 库初始化 screen = pygame.d ...

  7. 用pygame学习初级python(一) 15.4.19

    最近有计划要学一下python,主要是要用flask.django一些框架进行后端的学习工作,但是在web应用之前希望进行一些基础的项目进行一些语法的练习,熟悉一下写法, 这个时候我就想先做几个小游戏 ...

  8. pygame学习笔记(4)——声音

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi pygame.mixer是一个用来处理声音的模块,其含义为“混音器”.游戏中对声音的处理一般包括制造声音和播放声音 ...

  9. pygame学习笔记(5)——精灵

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 据说在任天堂FC时代,精灵的作用相当巨大,可是那时候只知道怎么玩超级玛丽.魂斗罗,却对精灵一点也不知.pygame ...

随机推荐

  1. log4cplus 简单记录

    请注意区别对待: 1.2.1  :  不支持 C++11,比如 std::move 就会 fail. 2.0.1  :  支持 C++11,比如 std::move 就 ok. 完.

  2. c++ cout、cin、endl

    cout是标准输出流对象,<<是输出操作符:cin是标准输入流对象,>>是输入操作符:endl是换行符操作符.他们都属于C++标准库,所以都在std的名字空间里.所以要在开头写 ...

  3. 使用html2canvas.js实现页面截图并显示或上传

    最近写项目有用到html2canvas.js,可以实现页面的截图功能,但遭遇了许多的坑,特此写一篇随笔记录一下. 在使用html2canvas时可能会遇到诸如只能截取可视化界面.截图没有背景色.svg ...

  4. 容器中的JVM资源该如何被安全的限制?

    前言 Java与Docker的结合,虽然更好的解决了application的封装问题.但也存在着不兼容,比如Java并不能自动的发现Docker设置的内存限制,CPU限制. 这将导致JVM不能稳定服务 ...

  5. 《React Native 精解与实战》书籍连载「React Native 源码学习方法及其他资源」

    此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React Native 源码学习方法及其他资源. 最后的章节给大家介绍 React Native ...

  6. 292. Nim Game(easy)

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  7. 跳出语句break 和continue

    关键字break 常见的两种用法 在switch语句当中,一旦执行,整个switch语句立刻结束 在循环语句当中,一旦执行,整个循环语句立刻结束.跳出循环 代码举例: public class Dem ...

  8. Messenger更改系统语言以后无法登陆,提示“初始设置被修改”

    在安装messenger机器上使用SQL management studio打开数据库,链接YCD的数据库,找到dbo.Dic_Defaults的表,编辑打开以后找到“CultureInfo”两项,删 ...

  9. js中“==”与“===”区别

    直接上代码 if(2==='2'){ console.log(true) }else{ console.log(false) } //打印结果 false if(2=='2'){ console.lo ...

  10. Sumdiv POJ 1845

    http://poj.org/problem?id=1845 题目 Time Limit: 1000MS   Memory Limit: 30000K Description Consider two ...