pygame小游戏打飞机_2模块显示
加入游戏背景
通过 pygame.image.load 函数引入背景图片,赋值给变量 bgImg
调用 screen.bilt 函数绘制背景图
# 引用pygame
import pygame
# 使程序初始化
pygame.init()
# 设置图像参数
screen =pygame.display.set_mode((450,700))
# 设置标题
pygame.display.set_caption('打飞机')
# 引入图片
icon=pygame.image.load('ufo.png')
# 设置游戏图标
pygame.display.set_icon(icon)
# 新增 引入背景图片
bgImg=pygame.image.load('background.png')
running =True
# 进行循环 游戏主循环
while running :
# 绘制背景图
screen.blit(bgImg,(0,0))
# 获取游戏事件队列中的所有事件(涉及到玩家的各种交互,如鼠标点击、键盘操作、窗口事件等)
for event in pygame.event.get():
# 如果事件是QUIT事件,如点击窗口的关闭按钮,则退出循环
if event.type == pygame.QUIT:
# 退出循环
running =False
# 新增 界面更新
pygame.display.update()
加入背景后的界面
显示玩家
与加入背景同理,不同的是增加两个表示位置的变量用于定位玩家位置
# 引用pygame
import pygame
# 使程序初始化
pygame.init()
# 设置图像参数
screen =pygame.display.set_mode((450,700))
# 设置标题
pygame.display.set_caption('打飞机')
# 引入图片
icon=pygame.image.load('ufo.png')
# 设置游戏图标
pygame.display.set_icon(icon)
# 引入背景图片
bgImg=pygame.image.load('background.png')
# 新增 引入玩家图片
playerImg=pygame.image.load('player.png')
# 新增 定义玩家初始位置
playerX=225
playerY=350
running =True
# 进行循环 游戏主循环
while running :
# 绘制背景图
screen.blit(bgImg,(0,0))
# 新增 绘制玩家
screen.blit(playerImg, (playerX, playerY))
# 获取游戏事件队列中的所有事件(涉及到玩家的各种交互,如鼠标点击、键盘操作、窗口事件等)
for event in pygame.event.get():
# 如果事件是QUIT事件,如点击窗口的关闭按钮,则退出循环
if event.type == pygame.QUIT:
# 退出循环
running =False
# 界面更新
pygame.display.update()
运行结果如下
移动玩家飞机
通过判断语句控制边界
可以在游戏主循环中对 playerX 或 playerY 执行 += 或 -= 运算进行移动测试,确定控制边界的语句是否有效
# 引用pygame
import pygame
# 使程序初始化
pygame.init()
# 设置图像参数
screen =pygame.display.set_mode((450,700))
# 设置标题
pygame.display.set_caption('打飞机')
# 引入图片
icon=pygame.image.load('ufo.png')
# 设置游戏图标
pygame.display.set_icon(icon)
# 引入背景图片
bgImg=pygame.image.load('background.png')
# 引入玩家图片
playerImg=pygame.image.load('player.png')
# 定义玩家初始位置
playerX=225
playerY=350
running =True
# 进行循环 游戏主循环
while running :
# 绘制背景图
screen.blit(bgImg,(0,0))
# 绘制玩家
screen.blit(playerImg, (playerX, playerY))
# 获取游戏事件队列中的所有事件(涉及到玩家的各种交互,如鼠标点击、键盘操作、窗口事件等)
for event in pygame.event.get():
# 如果事件是QUIT事件,如点击窗口的关闭按钮,则退出循环
if event.type == pygame.QUIT:
# 退出循环
running =False
# 新增 位移调试
playerX += 1
# playerX -= 1
# 新增 控制边界
if playerX > 378:
playerX = 378
if playerX < 0:
playerX = 0
if playerY > 572:
playerY = 572
if playerY < 0:
playerY = 0
# 界面更新
pygame.display.update()
测试时玩家移动且有边界阻挡则成功
pygame小游戏打飞机_2模块显示的更多相关文章
- 微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js)
微信小游戏 demo 飞机大战 代码分析(四)(enemy.js, bullet.js, index.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞 ...
- 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)
微信小游戏 demo 飞机大战 代码分析(三)(spirit.js, animation.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码 ...
- 微信小游戏 demo 飞机大战 代码分析 (二)(databus.js)
微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- 微信小游戏 demo 飞机大战 代码分析 (一)(game.js, main.js)
微信小游戏 demo 飞机大战 代码分析(一)(main.js) 微信小游戏 demo 飞机大战 代码分析(二)(databus.js) 微信小游戏 demo 飞机大战 代码分析(三)(spirit. ...
- Python小游戏之 - 飞机大战美女 !
用Python写的"飞机大战美女"小游戏 源代码如下: # coding=utf-8 import os import random import pygame # 用一个常量来存 ...
- pygame小游戏之坦克大战
以前在学校的时候无聊的学了会pygame.看了大概一周的教学视频,做出来个坦克大战的小游戏 Python3.5 pycharm import pygame,sys,time from random ...
- 微信demo小游戏:飞机大战从无到有
微信demo游戏飞机大战从无到有 现在创建新项目会默认给飞机大战的demo,这里给大家从基础开始讲解游戏的从无到有是怎么实现的. 具体实现步骤: 创建背景图->背景图运动起来->创建飞机并 ...
- Python小游戏之 - 飞机大战 !
用Python写的"飞机大战"小游戏 源代码如下: # coding=utf-8 import random import os import pygame # 用一个常量来存储屏 ...
- Pygame小游戏练习五
@Python编程从入门到实践 Python项目练习 十一.显示游戏得分及最高分 创建新类Scoreboard,用以显示得分和最高分. # scoreboard.py import pygame.fo ...
- Pygame小游戏练习四
@Python编程从入门到实践 Python项目练习 九.添加Play按钮 一.创建Button类 先让游戏一开始为非活动状态 # game_stats.py # --snip-- self.game ...
随机推荐
- JavaScript入门笔记day2
文章目录 常用互动方法 1. document.write() 直接向页面输出内容 2. `alert();`弹出消息对话框 3. confirm消息对话框 4. prompt弹出消息对话框,用于需要 ...
- 【Spring Boot】ActiveMQ 设置访问密码
Apache ActiveMQ是Apache出品,是最流行的,能力很强的开源消息总线.默认情况下,程序连接ActiveMQ是不需要密码的,为了安装起见,需要设置密码,提高安全性.本文分享如何设置访问A ...
- 转-Linux mpstat命令入门-CPU实时监控详解
简介 mpstat 来自Multiprocessor Statistics的英文缩写,是实时系统监控工具,主要用来查看多CPU系统中每个CPU的负载是否均衡,相关统计信息存放在/proc/stat ...
- java实现一个接口多个实现类,并且调用指定实现方法@Service
接口 package cn.daenx.framework.notify.sms.service; import cn.daenx.framework.common.vo.system.utils.S ...
- GoLand2023设置GitBash为默认命令行终端
修改设置中的终端配置,将其修改为你的git bash启动脚本,注意需要带-login -i: 验证成功:
- SpringBoot发布webservice服务并调用(hutool yyds)
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 前言 开干 1.涉及技术点 2.整体项目结构 3.Provider 发布Ws服务端 首先,肯定要修改pom文件 依赖加上 3.0 因为用对象的 ...
- Nginx 本地代理转发请求 502 Bad Gateway
问题 在使用 yum 安装 nginx 后可能会出现配置完成后却无法访问的问题,查看 audit.log 会发现类似于以下的错误信息 原因 出现此问题的原因是 SELinux 基于最小权限原则默认拦截 ...
- 故障处理:ORA-04031真实案例分享
我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效 ...
- MySQL查询执行顺序:一张图看懂SQL是如何工作的
MySQL查询执行顺序:一张图看懂SQL是如何工作的 你写的SQL语句为什么这么慢?为什么有时候加了索引还是不走?为什么GROUP BY要放在WHERE后面?这些问题的答案都藏在SQL的执行顺序里! ...
- 保姆级vmware安装MacOS
为啥是v10.15 MacOS10.15对硬件的要求很低,一般是不会卡的 准备工作 开始之前,请先完成以下步骤: 你的计算机中装有VMware Workstation 15及以上版本, 并确定你的磁盘 ...