pygame库的安装 pip install pygame

pygame最小开发框架

#Pygame Hello World Game
import pygame,sys #引入pygame和sys(python标准库) pygame.init() #初始化模块创建及变量及设置,默认调用
screen = pygame.display.set_mode((600,400)) #初始化显示窗口,元祖值为宽高
pygame.display.set_caption("Python游戏之旅") #窗体标题设置
#获取事件并逐类响应
while True: #无限循环,直到python运行时退出结束
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit() #游戏退出
pygame.display.update() #刷新屏幕

最小开发框架图示:

壁球小游戏(展示型)与图像的基本使用

1)壁球:游戏需要一个壁球,通过图片引入(小球图片位置:https://python123.io/PY15/PYG02-ball.gif)

2)壁球运动:壁球要能够上下左右移动

3)壁球反弹:壁球要能够在上下左右边缘反弹

笛卡尔坐标系图示:

反弹:

与边缘垂直的速度改为反方向运动即 S=-S

壁球小游戏(展示型)代码:

import pygame,sys

pygame.init()
size = width,hight = 600,400
speed = [1,1]
BLACK = 0,0,0
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame壁球")
ball = pygame.image.load("PYG02-ball.gif") #将()中路径下的图像载入游戏,支持jpg、png、gif等13种常见格式
ballrect = ball.get_rect()#pygame使用内部定义的Surface对象表示所有载入的图像,.get_rect()方法返回一个覆盖图像的矩形Rect对象 while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
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 > hight:
speed[1] = -speed[1] screen.fill(BLACK)
screen.blit(ball,ballrect)
pygame .display.update()

ball = pygame.image.load("PYG02-ball.gif")

#将()中路径下的图像载入游戏,支持jpg、png、gif等13种常见格式

ballrect = ball.get_rect()

#pygame使用内部定义的Surface对象表示所有载入的图像,.get_rect()方法返回一个覆盖图像的矩形Rect对象

Rect对象

Rect对象有一些重要属性,例如:

top,bottom,left,right表示上下左右

width,height表示宽度、高度

ballrect.move(x,y)

矩形移动一个偏移量(x,y),即在横轴方向移动x像素,纵轴方向移动y像素,xy为整数

if ballrect.left < 0 or ballrect.right > width:
        speed[0] = -speed[0]
    if ballrect.top < 0 or ballrect.bottom > hight:
        speed[1] = -speed[1]

遇到左右两侧,横向速度取反;

遇到上下两侧,纵向速度取反;

screen.fill(color)

显示窗口背景填充为color的颜色,采用RGB色彩体系。由于壁球在不断运动,

运动后原有位置将默认填充白色,因此要不断刷新背景色

screen.blit(src,dest)

将一个图像绘制在另一个图像上,即将src绘制到dest位置上。通过Rect对象一道对壁球的绘制。

(让图像跟着矩形移动而移动)

未完待续 ... ...

本文为博主学习笔记,转载需注明来源;

学习视频所属:中国大学MOOC 北京理工大学 嵩天 黄天羽老师https://www.icourse163.org/course/BIT-1001873001

 

Pygame游戏开发入门(1)-开发框架的更多相关文章

  1. pygame游戏开发入门例子

    # *_* coding:utf-8 *_* # 开发团队:中国软件开发团队# 开发人员:Administrator# 开发时间:2019/3/23 11:16# 文件名称:pygame_demo# ...

  2. 【python游戏编程之旅】第八篇---pygame游戏开发常用数据结构

    本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 上一个博客我们一起学习了pygame中冲突检测技术:http://www.cnblogs.com/msxh/ ...

  3. .Net Core ORM选择之路,哪个才适合你 通用查询类封装之Mongodb篇 Snowflake(雪花算法)的JavaScript实现 【开发记录】如何在B/S项目中使用中国天气的实时天气功能 【开发记录】微信小游戏开发入门——俄罗斯方块

    .Net Core ORM选择之路,哪个才适合你   因为老板的一句话公司项目需要迁移到.Net Core ,但是以前同事用的ORM不支持.Net Core 开发过程也遇到了各种坑,插入条数多了也特别 ...

  4. Python游戏开发:pygame游戏开发常用数据结构

    一.数组与列表 数组可以理解为简化的列表.像我们之前使用的pygame.sprite.Group这样的精灵组,也是一个列表.列表的元素是可变的,它具有添加.删除.搜索.排序等多种方法. 1.一维列表 ...

  5. Python和Pygame游戏开发 pdf

    Python和Pygame游戏开发 目录 第1章 安装Python和Pygame 11.1 预备知识 11.2 下载和安装Python 11.3 Windows下的安装说明 11.4 Mac OS X ...

  6. Pygame 游戏开发 All In One

    Pygame 游戏开发 All In One Pygame Pygame is a library for digital arts, games, music, making, and a comm ...

  7. 【1】【MOOC】Python游戏开发入门-北京理工大学【第二部分-游戏开发之框架】

    学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=and ...

  8. Egret白鹭H5小游戏开发入门(二)

    前言: 昨天的文章中简单的介绍了Egret白鹭引擎从安装到基本的使用配置等问题,今天着重介绍H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明,开始布局等等. 整体概况: 根据上一篇 ...

  9. Egret白鹭H5小游戏开发入门(三)

    前言: 在上一篇文章中着重介绍了H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明等等,那么今天主要是涉及到场景的创建,loading的修改等等的代码编写. 对于这一节,我在讲解的过 ...

随机推荐

  1. bzoj3884

    http://www.lydsy.com/JudgeOnline/problem.php?id=3884 拓展欧拉定理 http://blog.csdn.net/Pedro_Lee/article/d ...

  2. sqlserver2005连接失败,不存在或拒绝访问

    sqlserver2005连接失败,不存在或拒绝访问 启动tcp/ip连接的方法: 打开 /Microsoft SQL Server 2005/配置工具/目录下的SQL Server Configur ...

  3. Java 链式写法

    Java链式写法,子类继承父类的属性,也可以返回子类的对象,只是需要重写基类的Set方法 public class MyLS { public static void main(String[] ar ...

  4. bzoj 3401: [Usaco2009 Mar]Look Up 仰望【单调栈】

    用单调递减的栈从后往前扫一遍即可 #include<iostream> #include<cstdio> using namespace std; const int N=10 ...

  5. [转]C语言字符串操作总结大全(超详细)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  6. magento getUrl函数跳转admin模块问题

    在用以下代码时,跳转后的url里面会是空的,即没有admin这个值 $this->getUrl('admin/catalog_product/edit', array('id' => $c ...

  7. Android内存管理(15)SparseArray系列代替HashMap系列

    参考: https://liuzhichao.com/p/832.html http://www.2cto.com/kf/201311/255640.html 1,简介: SparseArray是an ...

  8. 一行python能做什么!

    主要收集了平常遇到的代码和网上的简单题目,然后尝试将代码压缩到一行,仅仅是娱乐一下~~~ −−−−−(1)−−−−−−−−−−−(1)−−−−−− 用一行python写出一个嵌套的字符串. def p ...

  9. [转]深入ASP.NET MVC之九:Ajax支持

    本文转自:http://www.cnblogs.com/yinzixin/archive/2012/12/22/2824384.html 目前前端页面和服务端进行Ajax交互大多采用的都是jQuery ...

  10. 项目需求会__前端er定位的思考~

    一.页面展示-----针对前端部分:后台的东西(功能.样式)不考虑! 二.动态效果------能不能实现! 三.接口数据------怎么传数据! 四.兼容性--------兼容到哪个版本浏览器! 五. ...