当前位置: 首页 > news >正文

python-项目实战

项目实战

1.外星人入侵小游戏

2.数据可视化

3.web应用开发

一、外星人入侵小游戏

需求:

  • 开发大型项目时,做好规划后再动手编写项目很重要。规划可确保你不偏离轨道,从而提高项目成功的可能性。

在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。

阶段一

在第一个开发阶段,我们将创建一艘可左右移动的飞船,这艘飞船在用户按空格键时能够开火。设置好这种行为后,我们就能够将注意力转向外星人,并提高这款游戏的可玩性。

准备工作

建议先更改下载的地址为国内镜像

使用pip --version 命令时可查看其安装地址打开该文件夹下面的pip.ini(如果没有请创建)在其中添加如下内容,保存并退出

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
1.安装pygame
方法一:
  • pip是一个负责为你下载并安装Python包的程序,使用pip命令安装pygame
pip --version
#在命令行窗口可查看pip的版本,出现版本号则已安装pip
python get-pip.py
#未安装pip可使用上述指令安装
python -m pip install --upgrade pip
#在使用pip之前,建议先升级pip,更新到最新版本。

在安装好pip后 用以下指令安装pygame

pip install pygame
#使用这种方法是从国外服务器中下载,需要极好的网络环境,建议修改镜像之后下载,会非常快。方法在上面。
方法二:

同时可以在在pychram中安装或更新pip

File - setting -project - python Interpreter

如果提示 python packaging tools not found,需要安装,点击蓝色字体安装,若失败则手动在命令行窗口输入以下指令安装后,返回pychram刷新出现各包的名称和版本即可进行管理。

pip3 install setuptools

在左上角点击“+”号,输入pygame - 等待描述语言出来后进行安装,可以勾选左下角的选项。也可以指定版本安装,如何安装较慢,请更改镜像源,方法在准备工作处。

安装pygame成功后在python程序中输入下列语句不报错即安装成功

import pygame

编写程序

创建游戏窗口

alien_invasion.py

def run_game():# 初始化游戏并创建一个屏幕对象pygame.init() ❶screen = pygame.display.set_mode((1200, 800)) ❷pygame.display.set_caption("Alien Invasion")# 开始游戏的主循环while True:# 监视键盘和鼠标事件for event in pygame.event.get():if event.type == pygame.QUIT: ❺sys.exit()#每次循环都重绘屏幕screen.fill(bg_color)# 让最近绘制的屏幕可见pygame.display.flip()#它在每次执行while循环时都绘制一个空屏幕,并擦去旧屏幕,使得只有新屏幕可见。在我们移动游戏元素时,pygame.display.flip()将不断更新屏幕,以显示元素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。run_game()

完整版-参考

Python编程:从入门到实践(第2版)第十二章

http://www.lryc.cn/news/353943.html

相关文章:

  • 单片机原理及技术(一)—— 认识单片机(C51编程)
  • 白嫖的在线工具类宝藏网站清单,快点击进来收藏一波
  • 【机器学习300问】97、机器学习中哪些是凸优化问题,哪些是非凸优化问题?
  • 两种盒模型
  • 【C++】类型转换
  • Redis RDB 持久化问题
  • windows 下nginx常用命令
  • xjoi题库一级1-10段题解(c语言版)
  • 1.int 与 Integer 的简单区别
  • 单片机原理及技术(二)—— AT89S51单片机(一)(C51编程)
  • 某方protobuf闲谈
  • 专为汽车内容打造的智能剪辑解决方案
  • 【C语言】二叉树的实现
  • 在ubuntu22.04里网站源码连不上mysql数据库
  • 博客说明 5/12~5/24【个人】
  • 豆瓣电影后端设计
  • 【深度学习】第1章
  • Vue3实战笔记(37)—粒子特效登录页面
  • 解锁无限可能:JavaScript与【机器学习】的浪漫邂逅
  • 【Linux】$()中的内容与不加$()时有什么区别
  • 2024最新前端面试八股文【基础篇293题】
  • 【NumPy】关于numpy.median()函数,看这一篇文章就够了
  • 起保停电路工作原理
  • 【Vue】Vue2使用ElementUI
  • 设计模式在芯片验证中的应用——模板方法
  • Webpack Bundle Analyzer:深入分析与优化你的包
  • Java后端开发学习历程
  • CentOS 7 socat命令端口转发
  • vue全局修改设置滚动条样式
  • ​✨聚梦AI绘图插件-for photoshop(基于ComfyUI) 内测版V0.1发布