Python壁球小游戏(操控型)与键盘的基本使用
一,壁球小游戏(操控型)
被用户操控着且四处碰壁的小球
二,壁球小游戏(操控型)的关键要素
需求:通过键盘的上下左右控制壁球运动速度,规则如下∶
三,壁球小游戏(操控型)的关键要素
壁球小游戏(操控型)的关键要素
键盘使用︰如何获取键盘的操作事件
速度调节︰根据对应按键调节壁球运动速度
四,壁球小游戏(操控型) 源代码来了!!!!!
import pygame,syspygame.init()
size = width,height = 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")
ballrect = ball.get_rect()
fps = 300
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]))elif event.key == pygame.K_RIGHT:speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1elif event.key == pygame.K_UP:speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1elif 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]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# 初始化
pygame.init()
size = width,height = 600,400
speed = [1,1]
BLACK = 0,0,0
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame壁球")
# pygame. image. load(filename)
# 将filename路径下的图像载入游戏,支持JPG、PNG.GlF(非动画)等13种常用图片格式
ball = pygame.image.load("PYG02-ball.gif")
# Surface对象 ball.get_rect()
# Pygame使用内部定义的Surface对象表示所有载入的图像,其中.get_rect()方法返回一个覆盖图像的矩形Rect对象
# Rect对象
# Rect对象有一些重要属性,例如:top,bottom,left,right表示上下左右width,height表示宽度、高度
ballrect = ball.get_rect()
fps = 300 #Frames per Second每秒帧率参数
# pygame.time.Clock() 创建一个Clock对象,用于操作时间
fclock = pygame.time.Clock()# 事件处理
while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()# pygame.KEYDOWN# Pygame对键盘敲击的事件定义,键盘每个键对应一个具体定义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# 上elif event.key == pygame.K_UP:speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1# 下elif 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.move(x,y)#矩形移动一个偏移量(x,y),即在横轴方向移动x像素,纵轴方向移动y像素,xy为整数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(color)# 显示窗口背景填充为color颜色,采用RGB色彩体系。由于壁球不断运动,运动后原有位置将默认填充白色,因此需要不断刷新背景色screen.fill(BLACK)# screen.blit(src, dest)# 将一个图像绘制在另一个图像上,即将src绘制到dest位置上。通过Rect对象引导对壁球的绘制。screen.blit(ball,ballrect)pygame.display.update()# clock.tick(framerate)# 控制帧速度, 即窗口刷新速度, 例如: clock.tick(100)# 表示每秒钟100次帧刷新视频中每次展示的静态图像称为帧fclock.tick(fps)
Python壁球小游戏(操控型)与键盘的基本使用相关推荐
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) 代码实现 窗口类 小车类 玩家类 电脑类 赛道类 小树类 打字类 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) ...
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(完结篇) 资源下载 完整代码 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) Python 打字小游戏开发,来体验不一样的 ...
- Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇)
Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第一篇) 前言 游戏素材准备 游戏项目结构 项目里面的类说明 Python 打字小游戏开发,来体验不一样的打字游戏乐趣(第二篇) Python ...
- 10个python入门小游戏,零基础打通关,就能掌握编程基础
前言 不会python就不能用python开发入门级的小游戏? 当然不是,我收集了十个python入门小游戏的源码和教程,并且即使你没有python基础,只要跟着这十个小游戏的开发详细教程去做,以及有 ...
- python经典小游戏五子棋,适合python编程的小游戏
python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...
- python简单小游戏代码教程,Python简单小游戏代码
球球各位大神怎么用python写一个猜词小游戏的代码? key = input('请输入一个单词:')description = input('输入单词描述:')chance = 5mark = 5p ...
- python入门小游戏代码20行,python入门小游戏代码
python入门可以做的小游戏 1.Python入门拼图小游戏简单介绍:将图像分为m×n个矩形块,并将图像右下角的矩形块替换为空白块后,将这些矩形块随机摆放成原图像的形状. 2.Python入门推箱子 ...
- Python跳跳兔小游戏源代码,兔年必玩小游戏,兔年大吉
Python跳跳兔小游戏源代码,兔年必玩小游戏,兔年大吉,小兔子跳跳,按空格键向上跳跃,按键盘方向键进行左右移动,以避开飞弹,以防被炸,还可以捡到火箭道具哦. 完整程序下载地址:Python跳跳兔小游 ...
- python手机版做小游戏代码大全-python简单小游戏代码 怎么用Python制作简单小游戏...
1.Python猜拳小游戏代码: 2.import random #导入随机模块 3. 4.num = 1 5.yin_num = 0 6.shu_num = 0 7.while num <= ...
最新文章
- mongodb 设置远程可以访问
- GAN生成对抗网络-text to image原理与基本实现-文字转图像-11
- php扩展管理配置信息,PHP扩展管理 - 城市之雾的个人空间 - OSCHINA - 中文开源技术交流社区...
- Tableau研学小课堂(part1)--商业智能概述
- 打印更无缝:微软改善Win11中通用打印体验
- 今天拜读了X先生的作品,深受其益
- 12、设计模式-结构型模式-外观模式
- 判断这5个数值是否连续相邻
- ios Xcode 版本兼容及真机调试
- 怎么在知网上下载pdf格式的论文
- 第二空间计算机最新破解,雨过天晴海外版 电脑时光机 - RollBack Rx v10.2.2699597837 多国语言特别版...
- ZZULIOJ.1092:素数表(函数专题)
- 界面画好了如何开发软件_如何做儿童类APP?来看英语流利说的实战经验总结!...
- flash中如何制作播放和暂停按钮(as3.0)
- 通州区机器人比赛活动总结_机器人大赛总结报告
- Python游戏开发,pygame模块,Python实现记忆翻牌小游戏
- 普罗米修斯监控mysql与邮件告警
- 父窗口操控iframe
- 推荐中的ctr校准方式
- 大根堆和小根堆的区别
热门文章
- 软件项目管理与《拯救大兵瑞恩》
- 三百元左右的蓝牙耳机推荐,300元蓝牙耳机性价比之王
- 聚数·智赢未来丨云和恩墨2020夏季产品发布会要点回顾
- [Study]操作系统
- android js 双指事件,双指缩放的实现方式对比
- k8s部署Prometheus+Grafana
- 10 个最好用的 NodeJS 框架
- 华为OD机试真题- 不含101的数【2023Q2】【JAVA、Python、C++】
- LeNet5网络结构分类CIFAR10数据集
- E.03.31 Shadowed by Pandemic, Olympic Torch Relay Begins in Japan