自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

游戏开发

游戏开发

  • 博客(191)
  • 资源 (35)
  • 收藏
  • 关注

原创 Unity 3D 小小冒险者视频教程下载

unity 3D Little Adventurer 视频教程下载, 查看视频简介。

2023-04-18 23:06:00 379 1

原创 独立游戏 Godot游戏开发日志2游戏本地化对话和任务系统

独立游戏 Godot游戏开发日志2游戏本地化对话和任务系统

2022-03-08 13:31:19 4412

原创 独立游戏Godot游戏开发日志

独立游戏 Godot游戏 开发日志1游戏已开发半年多了,目前以实现的功能:种植系统,种树,砍树,种菜,摘菜,可以用不同工具收获,得到不同的物品。物品分稀有度,罕见的物品更能得到。收集到物品可以制作物品,计划实现副职业:武器大师,制甲工匠,农民。。。。等等,可以 制作武器,盔甲,饰品,项链,鞋子,披风,食物,药水。。。。。。,制作系统基本完成,数据还未设计填充。技能系统基本完成,重写了两次,但还没得到验证,以后大概还需完善,目前还没有设计技能,所以视频尚未展示。实现了技能效果,例如:

2022-02-21 10:01:47 3011

翻译 网络炸弹人克隆

What You’ll Learn in This Hour:在真实的游戏中处理网络使用TileMap和TileSet工具创建一个地图结合Sprite和AnimationPlayer来制作动画。使用AutoLoad使脚本成为全局的在这个小时内,我们将创建我们的最终游戏。 它是Nintendo Entertainment System时代传奇游戏Bomberman的克隆版本,但具有一个原作在当时没有的杀手锏:网络多人游戏。游戏由多名玩家在一个自上而下的迷宫中进化,可以通过安放炸弹来打破墙壁并杀死

2021-04-22 19:32:01 261

翻译 多目标相机(我提供了C#的实现)

多目标相机问题你需要一个可以移动和缩放的动态相机来保持多个对象同时出现在屏幕上。例如,在两名玩家的游戏中,当两名玩家走得越来越远或越来越近时,他们仍保持出现在屏幕上,就像这样:解决方案在单人游戏中,你可能习惯于将相机连接到玩家身上,这样它就会自动跟随玩家。我们在这里不能真正做到这一点,因为我们有2个(或更多)玩家或其他游戏对象,我们希望一直保持在屏幕上。我们需要我们的相机做3件事:添加/删除任意数量的目标。使相机的位置居中于所有目标的中心。调整相机的变焦,使所有目标都在屏幕上。用C

2021-04-17 13:42:22 460

原创 在godot中使用haxe语言(五)

编写haxe脚本在项目新建scripts文件夹,进入scripts文件夹,右键“通过Code打开”。新建.hx脚本。会出现下载提示,vs vode默认不支持.hx,点击在市场搜索,安装第一个haxe / c# API可以参考这个API写。https://haxegodot.github.io/godot/示例可以参考下面的示例,注意这个需要自建使用命令构建,具体请回忆之前章节。https://github.com/HaxeGodot/squash-the-creeps-3d/

2021-04-16 13:13:18 497

原创 在godot中使用haxe语言(四)

新建C#项目用mono版新建一个项目,新建一个Main.cs脚本。此时会出现.csproj的文件打开并修改<PropertyGroups>,<AllowUnsafeBlocks>true</AllowUnsafeBlocks><TargetFramework>netstandard2.1</TargetFramework>您的haxe代码必须编译为C#而不是本地编译,这由Godot处理,因为该项目没有主类,因此您必须在hxml中列

2021-04-16 13:08:27 361

原创 在godot中使用haxe语言(三)

下载SDK.NET Core SDK:https://dotnet.microsoft.com/download/dotnet我下载的是 .net 5.0下载godot monohttps://godotengine.org/download我的系统是64位,所以我下载64-bit.

2021-04-16 13:06:40 180

原创 在godot中使用haxe语言(二)

下载编译需要的库当我编译haxe脚本为C#有以下提示,所以通过安装必须的库才能编译。打开CMD,分别运行,haxelib install hxcs,haxelib install godot。之后再通过haxe build.hxml编译成C#脚本,成功后便会生成build文件夹,里面是hsxe脚本转换成的c#脚本。之后会讲解haxe build.hxml命令,现在专注于安装好库。...

2021-04-16 13:04:44 250

原创 在godot中使用haxe语言(一)

这里写自定义目录标题在godot中使用haxe语言配置编程环境在godot中使用haxe语言haxe是什么我就不多说了,在这里我只是分享一下怎么在godot中使用haxe。如果你对haxe有兴趣请继续阅读。配置编程环境首先,到Haxe官网,下载Haxe根据你的系统下载:安装:我选择默认路径。安装好后打开CMD,验证一下:...

2021-04-16 13:00:51 262

翻译 向量

Godot Vector(向量)Vector向量Godot Vector(向量)向量向量的加法标量乘法实际应用移动指向目标单位向量Normalization反射直角三角形三角函数定义余弦定理公式含义点积定义几何定义意义推导朝向向量在二维空间中,坐标是用水平轴(x)和垂直轴(y)来定义的。二维空间中的一个特定位置被写成一对值,如(4,3)。用这种方法,二维平面上的任何位置都可以用一对数字来识别。但是,我们也可以把位置(4,3)看作是与(0,0)点或原点的偏移。画一个从原点指向点的箭头:这是一个向

2021-03-28 09:37:25 897

翻译 Godot网络

网络TCP, UDP, and Why It MattersTCP、UDP管理连接远程过程调用TCP, UDP, and Why It MattersTCP、UDP首先,当谈到网络协议时,首先映入脑海的是TCP/IP协议栈,它为整个互联网提供了基本的支持。这背后的原因是很清楚的:TCP在复杂的互联网上工作得很好(记住,它不是无缘无故地被称为“网络”的!),并让你觉得一切都很简单:它是基于连接的,所以你的服务器不会混合多个客户端发送的请求。它保证了可靠性,所以如果请求不能到达目的地,你一定会

2021-03-15 08:38:45 1076

翻译 第五章-丛林跳跃(平台)

在本章中,你将以《超级马里奥兄弟》的传统构建一个经典的平台、风格游戏。 平台游戏是一种非常流行的类型,了解它们的工作原理可以帮助你做出各种不同的游戏风格。平台游戏的物理学可能会非常复杂,你会看到Godot的KinematicBody2D物理节点的功能如何帮助你实现你所需要的角色控制器功能,在这个项目中,你将了解:使用KinematicBody2D物理节点。将动画和用户输入结合起来,产生复杂的角色行为。使用ParallaxLayers创建无限滚动的背

2021-03-02 14:52:43 734

翻译 第四章-太空陨石

太空陨石 现在,你应该对在Godot中工作越来越得心应手了;添加节点、创建脚本、在Inspector中修改属性等等。随着你在本书中的进步,你将不会被迫一次又一次地重温基础知识。如果你发现自己被卡住了,或者觉得自己不太记得某件事情是怎么做的,可以随时跳回之前的项目,在那里有更详细的解释。当你重复使用Godot中比较常见的操作时,它们会开始感觉越来越熟悉。同时,每一章都会向你介绍更多的节点和技术,以扩展你对Godot功能的理解。

2021-01-19 15:04:18 376

翻译 12.保存设置

目录保存设置保存设置关于屏幕保存设置保存设置我们已经在游戏中添加了三个切换属性-这工作得很好-但当我们退出时,设置不保留。我们需要保存这些设置,以便下次运行游戏时,它们会持续存在。首先,我们将在res://settings.gd中定义我们的设置文件。var settings_file = "user://settings.save"接下来,我们将为我们要保存的三个游戏设置添加保存/加载功能。func save_settings(): var f = F

2021-01-06 15:02:32 448

翻译 11.移动广告

目录移动广告关于广告设置Admob使用Godot模块配置导出代码禁用广告移动广告关于广告当你创造一款免费手机游戏时,在盈利方面你有两个选择:应用内部购买和广告。在这一部分,我们将着眼于如何将手机广告平台(Admob)整合到你的游戏中。广告可能是不受欢迎的,是否使用广告是由各个游戏开发者自己决定的。我们在本教程中并不是要对利弊做出决定–我们是来告诉你,如果你想在游戏中放广告,如何在游戏中放广告。设置Admob前往Admob并创建一个账号。在AdMob管理

2021-01-06 14:54:37 399

翻译 7.移动圆圈

目录移动圆圈修复bug分数和等级移动圆圈移动圆圈修复bug我们的第一个任务是修复我们菜单系统的一个bug。按下 "开始 "按钮可以启动一个新的游戏,但当屏幕移开时,可以再次按下。尝试 "滥用 "开始按钮–灾难随之而来!我们可以通过在屏幕过渡时禁用按钮来解决这个问题。由于我们把所有的按钮都放在一个 "buttons "组中,我们可以很容易地用call_group()来实现。这是更新后的BaseScreen.gd:extends CanvasLayeronready

2021-01-06 11:11:09 161

翻译 6.声音和颜色

目录声音和颜色设置单例添加声音声音设置颜色主题声音和颜色设置单例首先,我们在脚本选项卡中选择文件->新建脚本来添加一个新的脚本。将脚本命名为settings.gd。在这个脚本中,我们将放置游戏的配置设置。var enable_sound = truevar enable_music = truevar circles_per_level = 5打开 "项目设置 "并选择 "自动加载 "选项卡,将脚本添加为自动加载。点击要加载脚本的文件夹,然后点击

2021-01-06 11:02:00 100

翻译 5.分数和 HUD

目录分数和HUDHUD场景消息动画HUD脚本分数和HUD在上一部分中,我们以菜单的形式添加了UI来启动和配置游戏。我们还需要一个UI来显示游戏中的信息,比如分数。HUD场景添加一个新的场景,以CanvasLayer为根,作为我们的HUD。给它两个子节点:一个名为 "ScoreBox "的MarginContainer和一个名为 "Message "的`Label。你的场景树应该是这样的:将 ScoreBox 的布局设置为 “Bottom Wide”,Cust..

2021-01-06 10:42:51 93

翻译 4.菜单

目录菜单菜单屏幕菜单现在我们已经有了基本的游戏玩法,是时候开始研究用户界面了。我们将需要菜单屏幕来显示标题、设置和游戏结束。菜单屏幕这三个屏幕将共享一个共同的布局和一些功能,所以我们将从一个基本场景开始,它们都可以继承。在新的场景中,从一个CanvasLayer开始,并将其命名为BaseScreen。将这个场景保存在 "UI "文件夹中。CanvasLayer (“BaseScreen”) MarginContainer VBoxContainer Label

2020-12-28 17:30:37 132

翻译 3.有限圆圈

有限圆圈在前两部分中,我们得到了基本的游戏玩法。现在我们要开始给圆圈添加一些不同的模式。圆圈模式最终,我们会有许多不同的模式,但我们将从 "有限 "模式开始:圆圈在消失之前只允许给定数量的轨道。首先,让我们添加一个Label节点来显示剩余轨道的数量。在文本字段中输入一个数字(1),这样我们就可以看到它的样子。在 "自定义字体 "部分,添加一个新的DynamicFont,从assets文件夹中加载字体数据,并将大小设置为64。要对齐标签,在 "布局 "菜单中,选择 “居中”。在Circl

2020-12-28 10:28:26 90

翻译 2.产生圆圈

目录产生圆圈扩展主场景为主要场景编写脚本调整尾迹圆圈动画“向内收缩”动画捕捉动画在Github上关注这个项目:https://github.com/kidscancode/circle_jump产生圆圈在上一部分中,我们创建了构成游戏大部分的Jumper和Circle对象。 现在我们需要添加进度:只要player没有错过,就会连续产生一系列的圆圈。扩展主场景让我们再给Main添加一些节点。 Position2D (“StartPosition”)

2020-12-24 09:14:59 183

翻译 1.项目设置

PROJECT SETUP从哪里开始?根据游戏的不同,以及你的想法有多丰满,答案可能很不一样。在我们的情况下,我已经做了一个游戏的原型,并提前想出了一些想法,这有点作弊。不过,它和我最初的想法还是有些分歧,这个系列也可能会如此–时间会证明一切。在一个更大的项目中,你可能会从设计文档开始,它可以是简单的一页笔记,也可以是复杂的500页论文,阐述你的游戏世界、剧情和机制的每一个细节。我们在这里不需要这么多涉及的东西,所以我们只需要介绍一下游戏计划。游戏计划在这款游戏中,玩家控制着一个 “角色”,

2020-12-24 08:45:15 116

翻译 圈圈跳跃

圈圈跳跃端到端游戏开发系列。在本系列中,我们构建了一个称为“ Circle Jump”的单触式移动游戏。 游戏外观如下:在本系列的每个部分中,我们将添加特性并修复bug,并解释整个过程。游戏将在以下平台推出。Android:Google Play Store iOS: coming soon Web:Game of the Month你也可以从Itch.io下载它的桌面平台。 Circle Jump bykidscancode...

2020-12-23 08:49:59 134

翻译 ▶游戏

游戏演示游戏和教程。在这些章节:移动游戏: 圈圈跳跃

2020-12-23 08:46:19 161 1

翻译 音频管理器

音频管理器目录音频管理器问题解决方案示例项目问题您已经尝试将AudioStreamPlayer添加到暴徒/硬币/等。 在对象死亡或被收集时播放。 但是问题在于,当您删除对象时,音频播放器会随之播放,从而切断声音。 您需要一种更简单的方法来管理播放音频。解决方案我们将用一个在SceneTree中任何地方都可以使用的节点来解决这个问题。这个节点管理一组AudioStreamPlayer节点和一个要播放的声音流队列。在脚本编辑器中创建一个新的脚本。extends No

2020-12-23 08:42:52 149

翻译 ▶音频

音频帮助你在游戏中添加音效和音乐的食谱。在这些章节:音频管理器

2020-12-23 08:42:03 80

翻译 模糊着色器

目录模糊着色器问题解决方案相关食谱模糊着色器问题你想让一个着色器模糊一个物体或屏幕。解决方案shader_type canvas_item;uniform float blur_amount : hint_range(0, 5);void fragment() { COLOR = textureLod(SCREEN_TEXTURE, SCREEN_UV, blur_amount);}例如,为了逐渐模糊整个画面,比如为了实现场景过渡效果。..

2020-12-23 08:40:48 163

翻译 灰度(单色)着色器

目录灰度(单色)着色器问题解决方案相关食谱灰度(单色)着色器问题你想要一个着色器将图像转换为灰度。解决方案让我们从canvas_item(2D)着色器开始。为了转换为灰度,同时也保留像素的对比度,我们需要对像素的颜色值进行平均。将颜色通道相加,然后除以3。shader_type canvas_item;void fragment() { COLOR = texture(TEXTURE, UV); float avg = (COLOR.r + CO

2020-12-23 08:40:28 157

翻译 与着色器交互

目录与着色器交互问题解决方案相关食谱与着色器交互问题你想与GDScript中的Godot着色器进行交互。解决方案要从GDScript中访问uniform的值,可以在对象的材质属性上使用set_shader_param()。如果附加的材质是ShaderMaterial,那么你可以这样访问它。node.material.set_shader_param("param_name", value)你也可以用set_shader_param()来改变这个值。关于这个

2020-12-23 08:40:10 74

翻译 着色器:介绍

目录着色器:介绍问题解决方案片段着色器UV坐标纹理随时间变化顶点着色器Uniforms提示结束着色器:介绍问题你想开始编写着色器。解决方案着色器是在计算机的GPU(图形卡)上运行的特殊程序。GPU经过优化,可以非常高效地执行某些类型的数学运算。Shader代码可以附加到对象上,以影响它们在屏幕上的渲染方式。着色器程序的输出是对象的像素集的颜色。着色器可以在2D(canvas_item着色器)和3D(spatial 着色器)中使用。新手对

2020-12-23 08:39:48 586

翻译 ▶着色器

着色器深的巫术。酷的效果.在这些章节:着色器:介绍 与着色器交互 灰度(单色)着色器 模糊着色器

2020-12-23 08:38:54 114

原创 Godot视口

Godot viewpoint(视口)viewportGodot viewpoint(视口)2D分屏布局viewport添加摄像机添加代码添加小地图2D分屏布局viewportviewport是显示游戏画面的地方。将viewport视为投屏的屏幕,将摄像机摄影的画面投上屏幕显示。一个viewport可以有多个摄像机,但只能设置一个为“当前”相机。viewport没有位置信息(它不从spatial或canvasItem继承)。viewportContainer,一个Control节点,类似于H

2020-12-22 08:50:41 1400

翻译 MainLoop 类

MainLoopInherits: ObjectInherited By: SceneTreeAbstract base class for the game’s main loop.游戏主循环的抽象基类。DescriptionMainLoop is the abstract base class for a Godot project’s game loop. It is inherited by SceneTree, which is the default game loop implem

2020-12-22 08:50:26 581

翻译 矩阵和变换

Godot Matrices and transforms(矩阵和变换)介绍在阅读本教程之前,我们建议您彻底阅读并理解矢量数学教程,因为本教程要求您具备矢量知识。本教程是关于变换以及我们如何在Godot中使用矩阵来表示它们。它不是一个完整深入的矩阵指南。变换大多数时候是以平移、旋转和缩放的方式应用的,所以我们将重点介绍如何用矩阵来表示这些变换。本指南的大部分内容集中在2D,使用Transform2D和Vector2,但在3D中的工作方式非常相似。强调文本 强调文本正如在前面的教程中所提到的,重

2020-12-22 08:49:53 803

翻译 追踪导弹

目录追踪导弹问题解决方案相关食谱追踪导弹问题你需要一枚 “追踪导弹”–一种会寻找移动目标的炮弹。解决方案在这个例子中,我们将使用一个Area2D节点作为炮弹。对于子弹来说,Area是最好的好选择,因为我们需要检测它们何时接触到什么东西。如果你也需要一个会弹跳的子弹,PhysicsBody类型的节点可能是一个更好的选择。导弹的节点设置和行为与你对 "哑弹 "的设置是一样的。如果你正在创建许多子弹类型,你可以使用继承来将所有的弹丸基于相同的核心设置。我们将使用的节点。

2020-12-22 08:48:58 208

翻译 改变行为

目录改变行为问题解决方案扩展中相关食谱改变行为问题您希望您的AI控制实体在不同行为之间切换。解决方案在这个例子中,我们将假设一个具有以下行为的敌人。关于如何使每个行为发挥作用,请参见各个配方。 巡逻 "巡逻 "状态沿着预先定义的路径移动(如果没有指定路径则静止不动)。详见食谱:路径跟随。 追踪 "追逐 "状态下,敌人会向玩家移动。如何做出这个行为,请参考食谱:追击玩家。 攻击 在此状态下,玩家处于近战攻击的范围内,所以敌人会停止移动并

2020-12-22 08:48:37 101

翻译 跟随路径

目录跟随路径问题解决方案绘制路径沿着路径移动跟随路径问题你想让一个角色按照预先设定的路径走,例如警卫巡逻或跟随道路的汽车。解决方案有很多方法可以解决此问题。 在此解决方案中,我们将使用Godot的Path2D节点(或3D的Path)作为在编辑器中绘制路径的便捷方法。你可以将Path2D添加为你的主场景、地图或其他有意义的位置的子节点。但不要让它成为遵循路径的物体的子节点–否则路径会随着玩家的移动而移动!绘制路径添加Path2D节点后,你会看到视口上方出现一

2020-12-22 08:48:16 299

翻译 追逐玩家

目录追逐玩家问题局限性相关食谱追逐玩家问题您希望敌人追逐玩家。解决方案让敌人追踪玩家的第一步是确定敌人需要移动的方向。为了得到从A指向B的向量,你要减去:B-A。将结果归一化,你就有了一个方向向量。这样一来,解决方法就很简单了。每一帧,将敌人的速度设置为指向玩家的方向。velocity = (player.position - position).normalized() * speedGodot的Vector2对象有一个内置的助手。veloci..

2020-12-22 08:47:42 150

翻译 ▶AI /行为

AI /行为自动化的行为和(有时)更智能的实体。在这些章节:追逐玩家 跟随路径 改变行为 追踪导弹

2020-12-22 08:46:49 96

Inventory.rar

Inventory Inventory vInventory InventoryInventoryInventory

2020-09-25

3d_click_move.zip

3d_click_move

2020-09-20

3d_labels.zip

3d_labels.zip

2020-09-20

autoload.zip

autoload,autoload,autoload,autoload,autoload,autoload,

2020-09-05

ui_main_menu_design.zip

ui_main_menu_design ui_main_menu_design ui_main_menu_design

2020-09-02

Godot-3-2D-Day-Night-Cycle-master.zip

Godot-3-2D-Day-Night-Cycle-master Godot-3-2D-Day-Night-Cycle-master Godot-3-2D-Day-Night-Cycle-master

2020-09-02

circle_jump-master.zip

circle_jump-master circle_jump-master circle_jump-master circle_jump-master

2020-08-24

audio_manager.zip

audio_manager.zip

2020-08-23

homing_missiles.zip

homing_missiles.zip

2020-08-23

physics_joints.zip

physics_joints.zip

2020-08-23

kinematic_vs_rigid.zip

kinematic_vs_rigid.zip

2020-08-23

rigidbody_drag_and_drop.zip

rigidbody_drag_and_drop.zip

2020-08-23

KYN3.0_KinematicBody2D.zip

KYN3.0_KinematicBody2D.zip

2020-08-23

inheritance_art.zip

inheritance_art.zip

2020-08-23

ui_radial_menu.zip

ui_radial_menu.zip

2020-08-23

minimap.zip

minimap.zipminimap.zip minimap.zip minimap.zipminimap.zipminimap.zip

2020-08-23

kenney_topdown_shooter.zip

kenney_topdown_shooter.zip

2020-08-23

kenney_interface_pack.zip

kenney_interface_pack.zip

2020-08-23

floating_text.zip

floating_text.zip

2020-08-23

tower_defense_demo.zip

tower_defense_demo.zip

2020-08-23

heart_bars.zip

heart_bars.zip

2020-08-23

cooldown_button.zip

cooldown_button.zip

2020-08-23

Roboto_font.zip

Roboto_font.zip,Roboto_font.zip,Roboto_font.zip,Roboto_font.zip,Roboto_font.zip,

2020-08-23

rts_movement.zip

rts_movement.zip rts_movement.zip rts_movement.zip

2020-08-23

2d_touch_camera.zip

2d_touch_camera.zip

2020-08-21

screen_shake.zip

screen_shake.zip

2020-08-21

water_tiles.zip

water_tiles.zip

2020-08-21

animated_tiles.zip

animated_tiles.zip

2020-08-21

2d_shooting.zip

2d_shooting.zip

2020-08-21

moving_platforms.zip

moving_platforms.zip

2020-08-20

autotile_intro.zip

autotile_intro.zip

2020-08-19

car_steering.zip

car_steering.zip

2020-08-18

grid_based_movement.zip

grid_based_movement.zip

2020-08-16

platform_character.zip

platform_character.zip

2020-08-16

splitscreen_start.zip

splitscreen_start.zip

2020-08-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除