Godot学习日志Day3

快速学会godot 4.0beta1的tilemap(autotile) godot的tilemap应用autotile,快速布置2d游戏场景。 阅读详情

一、引言

        TileMap在2D创作中是不可或缺的一部分,今天我们就将来详细学习TileMap。Godot的TileMap功能强大,满足了我们绝大部分需求,而与Unity横向对比,我们会发现,Godot将便捷做到了极致。

        (原作者教程视频链接:Godot 4 教程《勇者传说》)

二、创建TileMapLayer

        1、创建

        在新版本中,Godot将TileMap节点移除,取而代之的是TileMapLayer,实际上没有过多的变化,只是TileMap将图层都放在一个节点中,而TileMapLayer则是一个图层,意思是说,我们对于图层的改动,是在TileMapLayer在世界节点下的顺序进行确认,而越往上放,图层就越靠后。

        在这里给出官方的定义:TileMapLayer用于基于2D切片的地图的节点。TileMapLayer使用TileSet,其中包含用于创建基于网格的地图的瓦片列表。与已弃用的TileMap节点不同,TileMapLayer只有一个切片层。可以使用多个TileMapLayer来实现与TileMap节点相同的结果。(官方文档:TileMapLayer)

         在TileSet中,我们新建一个TileSet,并在下面的工作窗口中选择TileSet,将我们准备的图片拖入。在这时,我们可以选择是否自动切割。

        2、物理层

        如果我们的瓦片不是装饰品,是需要和角色进行碰撞的碰撞体,像是地面之类的,我们可以选择绘制,再选择物理层0,并将想要的瓦片进行涂抹。

        

        3、特殊瓦片的处理

        我们可能会遇到存在1.5格的瓦片,那么,我们现将占据1.5格的瓦片取消选中后,直接将占据1格的瓦片拖动到2格的位置,这时我们发现,原来的纹理原点变了,这时,我们需要在该瓦片的选择栏中,选择纹理原点,进行调试。

三、地形与背景

        1、自动补全

        什么是自动补全呢?就是我们规定一些瓦片,让它们遵从一定的生成规则,比如说角块就要生成在角上,中心块就要生成在中间。然后我们可以随意的绘画一片区域,这片区域将跟着我们之前的定义,来进行生成。

        2、地形创建

        在TileSet中,我们选择TerrainSets,并选择添加元素,我们看到一个Mode,这是我们对定义规则的使用,在这里我们选择MatchCorners,这是根据角块来定义,之后我们在新创建的地形设置里添加元素,可以自己命名。

        3、补全规则

        我们在工作栏中选择TileSet中的绘制,并选择地形,找到我们相对应的地形,我们先选中我们想要创建地形的瓦片,然后我们可以进行规则定义。

        我们发现一个方块会有一个中心块,这是我们必须涂抹的,之后我们会发现一个方块的四角都有可以进行选择的区域,在这里我们不过多赘述,只需要理解最关键的一个地方:裸露在外面的地方不进行涂抹,而在内部的地方全部涂抹。

        4、绘制与概率

        我们可以在TileMap中的地形选项中开始我们的绘制。

        这时就会出现一个问题,我们对于一些方块的使用,是不希望它频繁的出现的,我们希望它偶尔出现,起到点睛的作用。这时,我们点击绘制,并选择概率。调整概率,并将它运用到相应的方块,这里提供一个概率的计算:设有10个方块,如果全都是1.0的概率,则它的出现概率为1/10,如果有一个是0.3的概率,那它的出现概率为0.3/10。

        5、适用于普通瓦片的概率分布

        我们选几个装饰性瓦片,可以看见窗口上有一个散布的东西,我们可以随便给一个值,这个意思是,我们这几个瓦片出现概率一致,如果我们绘制一片区域,那么这片区域瓦片与空格的值的比就为1/6。

        

四、结语

        这些只是Godot对于瓦片工具的一小部分,我们还需继续努力。

        

Godot C#工程化开发:Nuget包管理与项目模板搭建实战 在游戏开发中,依赖管理和项目结构规范化是提升工程效率和代码质量的基础。通过引入成熟的包管理机制,开发者可以便捷地集成日志、数据库、数学计算等通用功能库,避免重复造轮子,并确保依赖版本的一致性。其技术价值在于构建可维护、可协作的代码基座,为长期项目迭代奠定基础。这一实践在需要结构化日志记录、本地数据存储或复杂随机数生成的游戏项目中尤为关键。本文以Godot引擎的C#开发为例,详细阐述了如何利用Nuget生态集成Serilog、Dapper等热词库,并创建可复用的项目模板,从而将Godot C#项目升级为具备工 阅读详情

相关推荐

Godot引擎调试利器:GDShell交互式控制台原理与应用详解

在游戏开发中,调试工具是提升开发效率的关键。REPL(Read-Eval-Print Loop)作为一种交互式编程环境,允许开发者在运行时动态执行代码、检查状态,其核心原理是通过动态编译与即时执行技术,将代码字符串转换为可执行的指令。这种技术为快速原型验证、实时问题排查和动态内容调整提供了强大支持,尤其适用于需要频繁迭代的游戏开发场景。在Godot引擎中,GDShell正是基于这一理念构建的运行时交互式控制台,它通过集成代码补全、上下文感知和自定义命令等功能,让开发者能够直接操作游戏对象、执行GDScrip

weixin_34161083的博客 532

godot 的TileMap是什么? 如何学习?

在Godot引擎中,TileMap是一个强大且常用的节点,用于创建基于网格的游戏地图,特别适合2D游戏开发。TileMap允许开发者使用预先设计好的瓷砖(Tile)来快速构建复杂的地图场景,如地牢、城市、平台等。

多才多多 2284

Godot游戏引擎集成MCP协议:实现AI NPC智能对话与可控交互

在游戏开发中,AI对话系统与游戏引擎的整合是一个关键挑战。其核心原理在于通过协议桥接,将概率生成的AI对话与状态驱动的游戏逻辑安全、结构化地连接起来。这项技术的价值在于,它能在保持游戏世界确定性的同时,引入AI的开放性与灵活性,从而创造更具沉浸感和响应性的NPC交互体验。典型的应用场景包括角色扮演游戏中的动态对话、基于环境的智能反应以及任务系统的自适应生成。本文聚焦于利用Model Context Protocol(MCP)这一标准化接口协议,解决游戏上下文(如玩家状态、环境数据)与AI大模型(如Claud

weixin_30654419的博客 304

Godot4.3类星露谷游戏开发之【地图创建】(上)

在Godot中用 TileMapLayer 节点分层制作场景:地面层和水面层独立绘制,通过节点顺序控制层级叠加,复用图块资源实现水面覆盖地面的视觉效果,为后续动态地形与水流效果作准备。

ForBigData的博客 3138

Godot 4 开发《星露谷物语》类游戏:架构设计与核心系统实现

在游戏开发中,数据驱动架构和状态管理是构建复杂交互系统的核心原理。通过将游戏实体抽象为可配置的资源(Resource),并与表现层(Scene)分离,开发者可以创建高度模块化、易于维护的代码结构。这种设计模式的技术价值在于提升了项目的可扩展性和团队协作效率,尤其适用于模拟经营、角色扮演等包含大量物品、合成配方和NPC交互的游戏类型。在Godot引擎中,TileMap的Data Layers功能为网格化地图状态管理提供了高效解决方案,而信号(Signal)机制和Autoload单例则能有效实现系统间的解耦与全

weixin_33985507的博客 469

tiled-to-godot-export:用于以Godot格式导出Tilemap和Tileset的Tiled插件

平铺到Godot出口 用于以Godot 3.2格式导出Tilemap和Tileset的Tiled插件 export_to_godot_tilemap.js export_to_godot_tileset.js utils.js 该插件需要Tiled版本1.3.4或更高版本。 有关Godot的Tilemap结构的更多信息,可以在这里找到: 我还做了一个简单的图例,解释了tilemap中的tile编码。 平铺扩展 可以使用JavaScript扩展Tiled。 脚本可用于实现自定义地图格式,自定义动作和新工具。 脚本还可以根据信号自动执行操作。 更多信息: 安装 当您要将这些插件添加到Tiled安装中时: 打开Tiled,然后转到“编辑”>“首选项”>“插件” ,然后单击“打开”按钮以打开扩展目录。 将文件到该存储库中,然后将其解压缩到该位置。 可以将脚本直接放置在扩展目录或子目

【2D横版游戏开发】godot实现tileMap地图

godot实现无限横轴滚动背景和tileMap地图绘制

xc9711的博客 2609

godot-tiled-importer:Godot 引擎插件,用于导入 Tiled Map Editor tilemaps 和tilesets

平铺地图导入器 这是一个插件,用于从导入TileMap和TileSet 。 注意:这仅与 Godot 3.0 或更高版本兼容。 对于 Godot 2.x,使用。 如果您喜欢我的工作,请考虑在上给我买杯咖啡。 安装 只需从 Godot Asset Library 下载: : 。 或者,下载或克隆此存储库并将addons文件夹的内容复制到您自己项目的addons文件夹中。 然后在项目设置上启用插件。 特征 将平铺文件导入为 Godot 场景。 Tiled 中的每一层都是 Godot 中的一个 TileMap。 从 Tiled 独立图块集文件中导入图块集。 无论.tmx (XML),并.json格式的地图。 无论.tsx (XML),并.json格式tilesets。 支持 Base64 编码的地图。 支持层压缩, zlib和gzip都支持。 对象模板。 正交、等距、交

Godot学习日志Day1

本文分享了作者在学习Godot引擎过程中的笔记,重点介绍了Godot在小型创意项目中的优势以及基础设置、场景搭建和角色创建的步骤。作者通过B站教程学习,详细记录了窗口大小、拉伸模式、渲染设置等基础配置,并深入探讨了场景节点、TileMap的使用方法。在角色创建部分,作者详细描述了精灵创建、动画制作和角色脚本编写的流程,展示了如何通过CharacterBody2D节点和AnimationPlayer实现角色动画。最后,作者提到添加碰撞体的步骤,并表达了对继续学习的期待。整体内容为初学者提供了Godot引擎的入

Kotomi的博客 1854

Sony微单相机alpha6000 wifi远程控制(1)

引言 Sony’s Camera Remote API beta SDK allows you to control a number of Sony cameras, including Sony Action cams, Sony Alpha cameras and Lens Style cameras, wirelessly from another device. 索尼于2017年三月Re...

markfuk996的博客 4965

systermverilog中for循环中的fork join执行情况分析

仅为本人学习记录,如有错误感谢指正!

qq_63807221的博客 1461

Godot学习日志Day2

本文介绍了在Godot4引擎中创建和优化2D相机的方法。首先,相机可以直接在角色节点下创建Camera2D。其次,讲解了相机的三个关键属性:Limit(限制相机移动的矩形范围)、Drag(规定相机跟随的矩形范围)和PositionSmoothing(提供平滑移动的速度控制)。最后,为了适应动态变化的地图,提供了一个自动定义相机Limit的脚本,通过获取地图的组件和方块大小来设置相机的边界,并在启动时忽略平滑位移以防止相机出界。总体来说,相机的设置相对简单,但在实际应用中需要根据具体场景进行优化。

Kotomi的博客 993

LabVIEW多设备采集实战:1个程序同时控制3个RS485 Modbus仪表

本文详细介绍了如何使用LabVIEW实现多设备RS485 Modbus同步采集,涵盖硬件架构设计、多线程通信框架搭建、数据帧解析技巧及性能优化策略。通过实际项目案例,展示如何解决端口冲突、数据解析错误等工业自动化常见问题,提升采集系统实时性与可靠性。

qsc901234的博客 302

Godot-3-2D-Day-Night-Cycle 项目教程

Godot-3-2D-Day-Night-Cycle 项目教程 1. 项目的目录结构及介绍 Godot-3-2D-Day-Night-Cycle/ ├── day_night_cycle/ │ ├── project.godot │ ├── src/ │ │ ├── day_night_cycle/ │ │ ├── moon_light/ │ │ └── debug...

gitblog_01001的博客 824

【华为OD机试】贪吃蛇(python, java, c++, js)

贪吃蛇是一个经典游戏,蛇的身体由若干方格连接而成,身体随蛇头移动。蛇头触碰到食物时,蛇的长度会增加一格。蛇头和身体的任一方格或者游戏版图边界碰撞时,游戏结束。 下面让我们来完成贪吃蛇游戏的模拟。 给定一个NM的数组arr,代表NM个方格组成的版图,贪吃蛇每次移动一个方格。 若arr[i][j] == H,表示该方格为贪吃蛇的起始位置; 若arr[i][j] == F,表示该方格为食物, 若arr[i][j] == E,表示该方格为空格。 贪吃蛇初始长度为1,初始移动方向为向左。

A_D_I_D_A_S的博客 541

Hyperledger Fabric 网络搭建详解

写在前面:博主也是因为一些原因刚刚入坑区块链,我认为在我们入门新技术的时候,入门总是最困难的部分,只要入门了,后面学习起来就会越来越轻松,在网上找了很多文章,我觉得大多条理不是很清楚。本文章会详细介绍fabric(v1.0)环境部署,以及在搭建过程我遇到一些问题及解决方案,希望可以帮助到你们。 博主环境机器:VMware15 Ubuntu16.04 fabric(v1.0)环境部署一、必备软件安装1.ubuntu环境安装2.Go语言3.Docker安装4. Docker-Compose 安装二、Fa.

林中有神君 1万+

[游戏开发日志] day 3 - godot 跑起来

我连godot的界面都不熟,几乎属于他不认识我,我不认识他的陌生人状态,顶多算网友。看吧,AI什么都招了,我就照着这些个步骤一步一步执行(对,我就是那个RPA机器人), 折腾了一天,godot熟练度 + 20%。感觉继续聊下去,各种资源都可以让AI来,不那么严谨的话,我目前这个水平,能用。补充一点,都是 gemini的功劳.作为一个完全没有美术细胞,听音乐只听流行乐的粗鄙理工科生,我实在是没法搞美术资源,没办法,接着AI吧。纯viber coding。不过我马上发现了问题, 这些个贴图什么的,我没有啊。

buttonupAI的博客 448

14、网络切片技术:原理、应用与挑战

本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。

palm99的专栏 254

[游戏开发日志] day 3 - 把 Godot 的 AI 助手 endpoint 改到 TaoToken 跑起来

Godot 像素风游戏开发中,把编辑器 AI 助手 endpoint 改到 TaoToken 只需填 Base URL、API Key、Model ID 三个值。本文给出可复制的 GDScript 配置片段与 curl 验证请求,并整理 401、local proxy failed、reading choices 等常见报错排查顺序,让独立开发者五分钟接通 AI 辅助编码通道。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_34064233的博客 8

RN8209C单相电量计量芯片调试记录

芯片数据手册-简化版 调试功能是读取直流电池电压,出于这个需求,也就是要读取芯片的3路AD值,因为有效值是针对交流的,这点可以查看手册。 前提知道: 通信: 本次调试采用uart通信,rn8209c只有uart接口,采用9位数据(8位数据+偶校验),读寄存器只需要发送对应寄存器值就行,,波特率是4800,写的话需要保证最高为是1。没仔细读手册,这里吃了很大的亏。 复位: RN8209C支持两只复位方式,一种是发送复位命令复位,另一种是拉低复位引脚25ms以上,复位引脚复用它的串口接收(RX)口,所以拉低ST

wang 恒 的博客 6579

【Pix4d精品教程】pix4d mapper相机未校准后手动添加连接点完美案例图文教程

如图所示,红色的照片为未校准的图片,软件无法自动获取连接点,有关相机未校准的原因及解决办法,可以参考《pix4d未校准相机:287 out of 402 images calibrated (71%), all images enabled, 6 block,问题分析及解决方案汇总》,本文以案例的形式,详细讲解pix4d中手动添加连接点的方法及操作步骤。 文章目录1. 手动添加连接点2. 重新优化3. 生成质量报告,检查精度 1. 手动添加连接点 在【空三射线】模式下查看校准失败的图片,记下照片的名称。.

智慧空间实验室 2万+

[游戏开发日志] day 3 - Godot 跑起来:用 TaoToken 统一 Key 接入像素风等距赛博朋克原型

Godot 4 等距像素项目跑起来后,用 TaoToken 统一 Key 接入 AI 出图补美术短板。本文按新建项目、渲染参数、TileMap 等距设置、生成赛博朋克瓦片与角色占位、运行验证像素对齐的顺序,给出可复制配置与 GDScript 骨架,并附常见错排查。官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_29885875的博客 190

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Godot 3.x 2D游戏动态日夜循环系统实现与集成指南

在2D游戏开发中,动态环境氛围是提升沉浸感的关键技术之一。其核心原理是通过时间驱动,对场景的全局色调、光照与背景进行分层插值控制,而非依赖复杂的3D渲染管线。这一技术方案的价值在于,它能以极低的性能开销,为像素风、手绘风等2D游戏世界注入时间流逝的真实感与生命力。典型的应用场景包括农场模拟、冒险RPG、生存建造等需要表现昼夜更替的游戏类型。本文以开源项目“Godot-3-2D-Day-Night-Cycle”为例,深入剖析了其基于CanvasModulate与数据驱动配置的实现方案,并详细介绍了如何将其集成

weixin_30897079的博客 559

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深入解析 Godot-MCP:用 Claude 通过 MCP 协议驱动 Godot 编辑器开发游戏

Godot-MCP 是一套将 Godot 引擎与 AI 助手(如 Claude)通过 Model Context Protocol(MCP)打通的双向集成方案:AI 既能读取你项目中的脚本、场景与节点资源,也能直接在编辑器中创建节点、修改脚本、管理场景。读完本文,你将掌握从零安装 MCP Server、配置 Claude Desktop、理解 Godot 端 WebSocket 插件工作机制,到用

gitblog_00645的博客 223

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

gdsdecomp 完整指南:Godot 项目资源恢复与 GDScript 反编译快速教程

gdsdecomp 是一款免费的 Godot 项目资源恢复工具,能从 PCK、APK、EXE 文件中提取资源,把 .gdc 字节码反编译回可读的 GDScript 源码,让整个项目恢复成可打开的状态。适合逆向工程爱好者,以及需要抢救旧项目资源的开发者。 ## 一分钟看懂这个工具 先对照你的使用场景: - **源码丢失,只剩打包好的 APK** → 把 APK 拖进工具执行 Full Reco

gitblog_00516的博客 338

Godot PankuConsole高级配置:自定义快捷键与主题优化实战

在游戏开发中,运行时调试工具是提升开发效率的关键组件。其核心原理在于通过内嵌的控制台系统,允许开发者在游戏运行期间动态执行命令、修改变量,实现快速迭代与问题排查。这类工具的技术价值在于显著缩短了“修改-测试”的循环周期,尤其在Godot引擎的敏捷开发流程中,能够无缝衔接编辑与调试阶段。典型的应用场景包括实时调整游戏参数、验证游戏逻辑、以及快速测试特定功能模块。本文聚焦于Godot生态中广受欢迎的PankuConsole插件,针对其默认配置在**快捷键**与**主题**方面的不足,提供了从基础概念到工程实践的

weixin_33796205的博客 548
上一篇: Godot学习日志Day2
Kotomi07
博客等级 码龄5年 29粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值