教你用 Python 自制简单版《我的世界》

article/2025/7/26 10:42:01

《我的世界 Minecraft》大家应该都听说过,但你有没有想过自己写一个这样的游戏呢?太难、太复杂了?也许吧,但是不试一试你怎么知道能不能成呢?

国外有位叫fogleman的开发者就用Python做了这样的一件事——自制《我的世界 Minecraft》,谁能想到,仅仅900行的代码,玩起来竟然还像模像样的:

图片

接下来,我们就带你运行这个项目,并对这个开源的小游戏做一下简单的更改,让它变成“你的”世界。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果你用Python的目的是数据分析,可以直接安装Anaconda

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊

在终端输入以下命令安装我们所需要的依赖模块:

pip install pyglet

看到 Successfully installed xxx 则说明安装成功

git clone https://github.com/fogleman/Minecraft.git

也可以在Python实用宝典公众号后台回复:MC 下载。

2.运行及操作

运行这个项目非常简单,你只需要进入源代码文件夹输入以下命令:

python main.py

即可成功运行该游戏项目,然后体验一下这个游戏:

移动

  • W: 前进

  • S: 后退

  • A: 往左

  • D: 往右

  • 鼠标移动: 视角

  • 空格: 跳跃

  • Tab: 切换到飞行模式

建筑

  • 选择建造类型:

    • 1: 砖块

    • 2: 草丛

    • 3: 沙丘

  • 鼠标左键:去除建筑

  • 鼠标右键:增加建筑

退出

  • ESC: 关闭窗口

来看看我的实画:

图片

这个“实”字着实难画,宝典两个字被我略去了,因为我选的地儿右边空位不够。

3.代码解读与自定义

接下来让我们看看这份游戏的代码,整个游戏代码只有902行,真优秀:

图片

在上图红框的位置可以设定默认的窗口大小。不仅如此,作者还给了一些参数以供自定义速度、重力、跳跃高度等:

# 每秒帧数
TICKS_PER_SEC = 60
# 砖块大小
SECTOR_SIZE = 16
# 行走速度与飞行速度
WALKING_SPEED = 5
FLYING_SPEED = 15
# 重力与跳跃高度
GRAVITY = 20.0
MAX_JUMP_HEIGHT = 1.0

我们能不能自定义砖块类型呢?源代码文件夹下有一个texture图片:

图片

在源代码中,涉及到用户增加区块的代码只有3行,如SAND:

SAND = tex_coords((1, 1), (1, 1), (1, 1))
# ... ...
t = random.choice([GRASS, SAND, BRICK])
# ... ...
self.inventory = [BRICK, GRASS, SAND]
# 1.brick, 2.grass, 3.sand

也就是说,我们增加自己的区块是完全可能的,那么这个tex_coords((1, 1), (1, 1), (1, 1))是什么意思呢?看看下面这2个函数:

图片

看完tex_coords函数的参数你大概就知道了,这里第一个参数,代表砖块的顶部图像,第二个参数代表底部图像,第三个参数代表四个边的图像。而传入的参数中,(1, 0) 则表示为texture.png 的第(1,0)个图:

图片

比如沙子,顶边、底边、四边都为一样的(1,1)这个图像,因此是:

SAND = tex_coords((1, 1), (1, 1), (1, 1))


相信明白了这个原理后,你自己加一个自定义图形的砖块也不难了吧?大家可以动手试一试。给这个项目添砖加瓦,如果好看的话,说不定还能给作者提个PR,成为4k stars项目的贡献者之一!


http://chatgpt.dhexx.cn/article/hsy3WSDd.shtml

相关文章

《我的世界》Python编程入门(8)建造房屋

一、字典 首先,复习下前面学习的一些Python内置数据类型: 字符串在表示上有什么特点?数字呢? Python内置的数据类型主要有:数字、字符串、列表、元组、字典。 1.1 字典的基本概念 字典(dict或者dictiona…

DEM数字高程数据之高程网格格式转换

上一篇文章介绍了DEM数字高程数据的下载及matlab处理,这篇介绍制作固定大小的高程网格格式数据。 高程网格格式数据即为点云数据,后缀名为.xyz。在有些场合需要固定大小的高程网格格式数据,100100或者200200的,在地理空间数据云上下载的DEM数据往往数据量很大,不符合诗句需…

ASTER GDEM v3.0高程数据批量下载

目录 1.写在前面 2.数据集简介 3.数据下载 少量数据下载 大量数据下载 1.写在前面 ASTER GDEM v3.0数据下载网址需要魔法,另外推荐使用谷歌浏览器,方便后续使用插件。 下载是免费的,但是要有urs.earthdata.nasa.gov的账号,…

ENVI将高程数据拼接并转换为.dem或.dat_bil格式——以GDEM数据为例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、导入tif文件二、拼接生成.dat三、.dat转换为.dat_bil与DEM四、与DEM相关的其他格式转换 前言 提示:这里可以添加本文要记录的大概内容&#xf…

数据禾|全国10米DEM数字高程数据

区 域: 中国 尺 度: 10米 格 式: 栅格 时 间: 2018年 时 相: 年 数字高程模型(Digital Elevation Model),简称DEM,是通过有限的地形高程数据实现对地面地形的数字化模拟&#xff0…

DLR、ASTER GDEM、SRTM、GMTED2010等高程数据简介

数据简介摘自博文[http://blog.sina.com.cn/s/blog_720f853f01014hub.html] 但由于原文时间较久,所提供的网址几乎也都需要翻墙,就本人所了解,部分可在地理空间数据云[http://www.gscloud.cn/]下载 常见DEM数据: 1.DLR之SRTM X…

DEM高程数据的获取、合并与坐标转换

DEM高程数据的获取、合并与坐标转换 一、DEM数据的获取二、数据合并三、投影转换方法一四、投影转换方法二 今天用DEM数据做了一个坡度分析,数据使用过程中涉及到投影坐标转换,由于不是很熟悉所以费了一番功夫。经过一番折腾总结出两个方法,方…

OSG加载DEM高程数据

本文采用编辑earth文件的方式加载DEM高程数据 test.earth文件描述 <map version"2"><image driver"xyz" enabled"true" name"gaode_sat-1" profile"global-mercator" url"http://webst0[1234].is.autonavi…

ArcGIS DEM数字高程模型数据的生成

1、基本分析方法 GIS做地形分析的基本步骤其实是非常简单的&#xff0c;网上也有非常多的教程进行阐述&#xff0c;其实大家按这个步骤也基本能做出来&#xff0c;但问题就出现在每个人所使用的基础数据都多多少少有不同的问题&#xff0c;因此在操作过程中就不同程度的受阻&a…

30米分辨率的DEM地形数据——STRM高程数据

DEM地形数据是我们在各种研究和设计中经常使用的数据&#xff01;之前我们分享过源于GEBCO组织的全球范围的500米分辨率的DEM地形数据&#xff08;可查看之前的文章&#xff09;&#xff0c;这个数据的优点是数据很小&#xff0c;在大区域分析的时候也不会卡顿&#xff0c;缺点…

osgearth加载mapbox在线高程数据

先看一下效果&#xff1a; osgearth加载在线地图这里就不介绍了&#xff0c;比如osm、mapbox、天地图等&#xff0c;如果有哪位同学需要&#xff0c;我可以下次介绍一下~~~ 众所周知&#xff0c;高程数据一直是比较珍贵的&#xff0c;之前是加载谷歌地球的高程&#xff0c;但是…

GEE:快速下载数字高程DEM数据

DEM数据下载&#xff0c;使用SRTM Digital Elevation Data Version 4&#xff0c;一个2000年 的全球高程数据 。下载以后的DEM不用再做裁剪&#xff0c;可以直接使用。 也可以导入下面这个分辨率30米的DEM数据&#xff0c;搜索一下就可以了。 NASADEM: NASA NASADEM Digital El…

按方位提取高程数据的方法

1. 问题的描述 根据经过Lambert变换后显示的地图设置方位&#xff0c;以正北方向为零度&#xff0c;顺时针旋转的角度为相应的方位角。以站址为中心&#xff0c;沿相应的方位提取高程数据&#xff0c;形成某指定方位的随距离变化的高程数据。所获得的高程数据尚未考虑地球曲率…

DEM高程数据的获取和应用(全国DEM数据可直接下载)

DEM是数字高程模型的英文简称(Digital Elevation Model)&#xff0c;是研究分析地形、流域、地物识别的重要原始资料。由于DEM 数据能够反映一定分辨率的局部地形特征&#xff0c;因此通过DEM 可提取大量的地表形态信息&#xff0c;可用于绘制等高线、高程图、坡度图、坡向图、…

获取高程数据并生成等高线

从地理空间数据云下载高程数据非常方便&#xff0c;码一波下载方法。 高级检索 选择数据集 选择数据集为DEM高程数据&#xff0c;你想下载的数据产品。 搜索&#xff0c;下载 选择地区&#xff0c;地区选择主要有行政区域击搜索&#xff0c;点击如箭头所示图标即可下载。可…

裁剪DEM高程数据

裁剪DEM高程数据方法 对DEM高程数据&#xff08;tif文件&#xff09;方法较多&#xff0c;现将使用的方法进行总结&#xff0c;内容主要包括三个方面&#xff1a; 使用ARCGIS裁剪使用globalmapper裁剪使用MATLAB裁剪 1、使用ARCGIS裁剪 Arcgis将一幅影像裁剪成一幅或多幅&a…

12.5m高程数据DEM,导入大疆精灵4RTK,M300仿地飞行

点赞及加关注&#xff0c;即可获得——12.5m高程数据DEM&#xff0c;记得私信我——回复 “12.5m高程数据DEM” 领取哦。 文末有视频教程连接。 下面进入教程正文。 全国12.5米高程数据&#xff0c;是ALOS卫星的测绘成果&#xff0c;ALOS卫星于2006年1月24日发射&#xff0c;同…

GlobalMapper20使用控制点对地形数据(高程数据)进行高程纠正(高程拟合/纠偏/配准)

序&#xff1a;为什么要对高程数据进行控制点纠正 1.经常因为拿到的地形数据非当前坐标系&#xff0c;高程基准也不一样&#xff0c;需要进行投影转换调整高程基准 此情况一般一个控制点就够了&#xff0c;对地形进行整体的抬升或者下降。 2.实测数据和基于卫星、航测等生成…

高精度数字高程数据1m的dem

最近一直在做一个三维场景的项目&#xff0c;老板一直让我下载高精度的数据&#xff0c;从而构建三维场景&#xff0c;一开始在各种网站上下载如中国科学院镜像站点下载&#xff0c;德国航天局的DLR数字高程数据&#xff0c;美国航天局NASA网站上等一些地方下载&#xff0c;基本…

地理高程数据SRTM3简介

1. SRTM简介 SRTM&#xff08;Shuttle Radar Topography Mission&#xff0c;航天飞机雷达地形测绘使命)是美国太空总署&#xff08;NASA&#xff09;和国防部国家测绘局&#xff08;NIMA&#xff09;以及德国与意大利航天机构共同合作完成联合测量&#xff0c;由美国发射的“…