Python游戏开发入门2 壁球小游戏与图像的基本使用
目录
小球碰壁运动
控制小球的运行的节奏
壁球小游戏(操控型)与键盘的基本使用
小球碰壁运动
import pygame, syspygame.init()size = width, height = 600, 400
speed = [1, 1]
BLACK = 0, 0, 0
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pygame for Game")
ball = pygame.image.load("PYG02-ball.gif")
ballRect = ball.get_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 > height:speed[1] = -speed[1]screen.fill(BLACK)screen.blit(ball, ballRect)pygame.display.update()pygame.display.update()
pygame.image.load(filename)
将filename路径下的图像载入游戏,支持JPG、
PNG、GIF(非动画)等13种常用图片格式
ballrect.move(x,y)
矩形移动一个偏移量(x,y),即在横轴方向移
动x像素,纵轴方向移动y像素,xy为整数
screen.fill(color)
显示窗口背景填充为color颜色,采用RGB色
彩体系。由于壁球不断运动,运动后原有位置
将默认填充白色,因此需要不断刷新背景色
控制小球的运行的节奏
import pygame, sys
import mathpygame.init()size = width, height = 600, 400
speed = [2, 2]
BLACK = 0, 0, 0
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pygame for Game")
ball = pygame.image.load("PYG02-ball.gif")
ballRect = ball.get_rect()fps = 100
fclock = pygame.time.Clock()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]*abs(math.cos(ballRect.left))if ballRect.top < 0 or ballRect.bottom > height:speed[1] = -speed[1]screen.fill(BLACK)screen.blit(ball, ballRect)pygame.display.update()fclock.tick(fps)
壁球小游戏(操控型)与键盘的基本使用
import pygame, sys
import mathpygame.init()size = width, height = 600, 400
speed = [2, 2]
BLACK = 0, 0, 0
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pygame for Game")
ball = pygame.image.load("PYG02-ball.gif")
ballRect = ball.get_rect()fps = 100
fclock = pygame.time.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]))if event.key == pygame.K_RIGHT:speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] -1if event.key == pygame.K_UP:speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] -1if event.key == pygame.K_DOWN:# 如果减为零就不用减了speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1)*int(speed[1]/abs(speed[1]))ballRect = ballRect.move(speed[0], speed[1])if ballRect.left < 0 or ballRect.right > width:speed[0] = -speed[0]*abs(math.cos(ballRect.left))if ballRect.top < 0 or ballRect.bottom > height:speed[1] = -speed[1]screen.fill(BLACK)screen.blit(ball, ballRect)pygame.display.update()fclock.tick(fps)
Python游戏开发入门2 壁球小游戏与图像的基本使用相关推荐
- 视频教程-Layabox3D游戏开发入门-微信3D小游戏案例 -微信开发
Layabox3D游戏开发入门-微信3D小游戏案例 有多年Unity程序开发经验,有策划和美术设计的经验.愿意在csdn这个平台和大家一起分享! 金龙 ¥29.00 立即订阅 扫码下载「CSDN程序员 ...
- 游戏开发入门(二)游戏开发概述
这篇文章主要以问题的形式给大家解答下面几个问题: 1.游戏是如何开发出来的,开发流程大概是什么样子的? 2.游戏相关的职位都有哪些? 3.开发游戏需要哪些技术或能力? 4.程序员一般负责的内容有哪些? ...
- 游戏开发入门(八)游戏中的场景管理
视频链接:游戏开发入门(八)游戏中的场景管理(5节课 时常:约2小时07分钟) 授课者通过2D围棋的例子,逐步拓展成3D的虚拟游戏世界.这个3D游戏世界基本上就可以涵盖市面上所有类型的游戏了,我们通过 ...
- 游戏开发入门(九)游戏同步技术
视频链接:游戏开发入门(九)游戏同步技术(3节课 时常:约1小时07分钟) 第三个视频后9分钟没有声音,不过核心内容都已涉及到 笔记与总结(请先学习视频内容): 1.网络同步的概念与意义 概念:任何一 ...
- 游戏开发入门(二)游戏中的设计模式
视频链接:游戏开发入门(二)游戏中的设计模式(3节课 时常:约2小时40分钟) 该视频主要围绕游戏中常见的设计模式展开讲解并实践,需要大家多多实践与理解 笔记与总结(请先学习视频内容): 1.有必要深 ...
- 游戏开发入门(五)游戏动画系统
视频链接:游戏开发入门(五)游戏动画系统(8节课 时常:约2小时30分钟) PPT比视频要块一些 第二节与PPT对不上 视频中杂音太大,如果带耳机还听不清的话,建议直接看内容即可 笔记与总结(请先学习 ...
- 游戏开发入门(一)游戏开发概述
视频链接:游戏开发入门(一)游戏开发概述(3节课 时常:约1小时03分钟) 该视频围绕电子游戏的发展与开发简单介绍了一些基本常识,同时提出并解决了几个问题 笔记与总结(请先学习视频内容): 1.游戏机 ...
- 【小游戏合集】之用Python自己开发一个闯关小游戏——开心消消乐
导语: 今天这期小游戏是最适合小伙伴们一同挑战的精美手游,其因画面精美.上手简单.休闲有趣.有惊喜有挑战而获得广大玩家的喜爱...这款小游戏没错就是开心消消乐,相信大家都不陌生,其曾在 2015 年获 ...
- 网页游戏开发入门教程二(游戏模式+系统)
2019独角兽企业重金招聘Python工程师标准>>> 一.游戏模式 目前webgame游戏模式大体上可以分为以下四类: 1.玩家拥有一个城市,不断的升级城市内建筑,建筑可以自动获得 ...
- 游戏开发15课 微信小游戏自审报告
微信小游戏个人提交的时候需要写下自审报告 然后打印签名 后拍照上传以下是模板有兴趣的可以看看 自审报告 本⼈根据<网络游戏管理暂行办法>对我开发的小游戏产品<xxxx>进行自行 ...
最新文章
- 使用Caffe基于cifar10进行物体识别
- spring scope=prototype 学习笔记
- python读取文件夹-Python按顺序读取文件夹中文件
- ASP.NET 如何取得 Request URL 的各個部分
- casio dt-930 条码采集器 盘点软件源程序
- java date.getyear_为什么Java的Date.getYear()返回111而不是2011?
- Bootstrap的学习分享
- Redis之数据结构和底层编码
- 一摞烙饼最上面一个的另一面为焦的概率
- iOS 人民币符号与日圆符号的混淆
- C#仿win10计算器
- FDD与TDD的区别
- 3.3计算机网络(ALOHA协议 CSMA协议 令牌传递协议 频分时分波分码分)
- 跟着团子学SAP PS—项目结算规则的自动生成 CJB2/CJB1 (ETO模式下正确结算规则设定案例)
- unbuntu网卡配置
- Java实现水仙花数简单代码
- 机电信息杂志机电信息杂志社机电信息编辑部2022年第24期目录
- 手游测试之新功能的通用测试点
- html 磨砂 原理,使用HTML和CSS设计磨砂玻璃效果
- 二手物品交易管理系统
热门文章
- oracle和mysql用户名_oracle的SID和用户名和角色
- python快速排序算法没看懂_python中的快速排序算法的理解
- php 发送图片,php+curl 发送图片处理代码分享
- hdfs 中chunk_HDFS读写流程
- eclipse adt如何切换到设计界面_如何将你的UI界面设计的更精致?不仅仅是运用对比,还要注意细节 | 分享...
- python 线程同步_python线程同步
- zk临时节点失效时间_dubbo学习(六)服务发布dubbo服务在zk的创建、订阅
- CentOS6.5使用rsync远程同步
- js错误处理权威指北
- python学习之老男孩python全栈第九期_day012知识点总结