自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 FXGL JAVA游戏引擎 教程 08_小小问号 (碰撞事件扩充)

业务逻辑我们在玩游戏时,经常会遇到需要与npc互动之类的的场景。我们需要走进一个角色到一定范围内,进入这个范围内,就可以通过右键点击,或者其他输入事件触发和该角色对话。实现逻辑拆解成代码逻辑就是:当触发碰撞模型(可能是不可见的碰撞盒子,实体周围的一个范围)。就展示ui提示并且增加操作按钮。实现效果贴近人物时离开人物时## 实现代码1.增加一个问号的实体,但是需要由组件空值(WhyComponent)package com.dam.wonder.component;import co

2021-08-25 16:34:11 1234 2

原创 FXGL JAVA游戏引擎 教程 07 碰撞事件(大爷常来玩啊)

上文中,我们已经完成了一个地图,游戏角色,角色的移动,ui,场景切换等等功能。看似已经完成了一个游戏的大部分内容。似乎具备了对一个游戏开发的能力。但是实际上,我们的游戏角色和游戏地图间并不具备交互能力。换言之,我们没发知道我们的组件是否触碰在了一起,是否发生了交互。当我们能够真正使用碰撞事件的时候,就能完成很多神奇的功能。比如刀砍到敌人,如何判定砍到人。比如进入商店区(可以购买商品,交接任务)。比如和一个npc对话。都需要碰撞事件监听。接下来我将为你展示如何为你的游戏添加碰撞事件。1.源码解析:核心类

2021-08-24 17:35:46 1430 3

原创 FXGL JAVA游戏引擎 教程 06_自定义地图加载器(给萌妹一个家)

上文中,我们已经获得了一个完整的游戏角色,他能正常的移动,还有一些自身的特色,但是还有一个比较显著的问题,我们当前的游戏却少一个世界。1. 逻辑分析抛开其他轮子不谈,我们要自己生成世界可以使用实体或者ui生成的方式按照自己自定的某种数据结构(可能是二维数组)来渲染我们设计出的地图。但是明显会发现这个二维数组的可读可维护性会比较糟糕。这里就需要引入FXGL的一个比较方便的点:可以支持tmx文件格式的地图导入。首先我们需要下载一个地图编辑器这里可以下载mapedit下载完成后我们需要一些地图资源文

2021-08-16 15:53:15 1975 3

原创 FXGL JAVA游戏引擎 教程 05.场景 (萌妹在线哭泣)

上文中,我们已经有了一个漂亮的人物角色,但是对于一个游戏而言,除了可操控的游戏角色,各种弹出框也是必须设计考虑的一部分。比如你希望播放一个过场动画,弹出一个对话框,打开背包栏目等等。为了实现以上功能,我们需要另一个相关组件(scene 场景)本文中为了方便,将着重介绍FXGL引擎提供的"subscene(子场景)"1.方法源码解析如果需要在fxgl中创建一个子场景十分容易,只需要创建一个类继承自Subscene类即可。在subscene中有几个方法和属性十分关键。属性contentRoot

2021-08-13 17:40:19 2046 3

原创 FXGL JAVA游戏引擎 教程 .04 动画 (可爱乌贼娘)

FXGL 04.动画 (可爱的乌贼娘)我们在之前的文章中简单创建了一个png格式的图片展示的实体,这里我们要更换换这个实体的展示模式,让一个活灵活现的乌贼娘出现在我们的游戏世界中!1.实体的展示过程这样的一个实体创建过程我们并不陌生,如果需要将某个素材作为展示内容,我们只需要在创建中的view方法中加入其中。 Entity entity = FXGL.entityBuilder().with(new MoveComponent()).build();那我们来探究下view方法的本质。(我并

2021-08-12 11:12:56 1912 1

原创 FXGL JAVA游戏引擎 教程 03.游戏UI

当我们拥有一个实体并且对其绑定了可移动的组件之后,我们拥有了一个可以自由操控控制的角色。但是距离成为一个真正的游戏还有几个必不可少的组件需要实现。其中游戏ui就是不可或缺的一个组件。 坐标系 对于所有游戏引擎而言,坐标系的概念都至关重要。FXGL采取的默认坐标是右下。即屏幕的最左上角为坐标(0,0,0)向右下依次递增。 例如1080*720的屏幕大小最右下角坐标就是(1080,720,0)坐标系不会随着窗口的高度和宽度变化而变化,所以在窗口改变的时候,ui的位置也必须做出改变。当...

2021-08-11 17:18:20 1995

原创 JAVA游戏引擎!FXGL 教程 总目录

喜欢打游戏也喜欢编程,总想开发一款自己的游戏,圆自己儿时的一个梦。我并非要编写一个游戏引擎,故而也用不到LWJGL这种层级的引擎,如果你也是一个和我一样单纯想做一款游戏的javaer,那你也可以和我一样使用FXGL 引擎,一款基于javaFX的java游戏引擎。git地址wiki地址同时,为了巩固自己的学习同时加深自身的理解,我会逐步推出基于官方wiki教程的全套学习笔记与教程。欢迎大家参与讨论与改进。目录 FXGL 攻略 00.快速上手 FXGL 攻略 01..

2021-07-29 14:38:41 7504 1

原创 FXGL JAVA游戏引擎 教程 02.番外 组件优化

上文(02.组件)中我们一已经实现了移动组件,本文中将优化该组件。刚才实现的速度组件大致有以下几个问题速度并非具有由快到慢的变化,转变十分生硬。 速度大小并不能自定义 在同时触发多个键时可能出现不同的移动情况。实现思路: 在触发按键时,加速速度,并且将状态标记为主动变化。在按键结束时,触发被动减速。修改后的moveComponment为:package com.dam.wonder.component;import com.almasb.fxgl.core.math.Vec2;

2021-07-29 11:57:17 1211

原创 FXGL JAVA游戏引擎 教程 02.组件

FXGL 攻略 02.组件在FXGL中,实体的各种功能和表现都通过组件来进行实现。这很好理解,一个汽车实体,通过添加移动组件来使之具有移动能力,添加物理组件来监听碰撞效果等。创建一个组件新建一个moveComponent 作为飞机的移动功能组件。编写这个组件前,我们需要理解一个新的概念坐标。移动的本质是在每次游戏刷新时将实体坐标更新,我们可以通过改变在X轴与Y轴的速度来作为每次游戏刷新时移动的坐标。对此可以写出public class MoveComponent extends Compon

2021-07-28 17:49:41 2489

原创 FXGL JAVA游戏引擎 教程 01.实体

FXGL 攻略 01.组件与实体本教程将主要介绍FXGL中实体的创建以及组件的绑定和解绑。创建实体实体(Entity)在FXGL引擎中可以理解为最小的组成成分,在游戏世界(GameWorld)中添加后就会展示在游戏中。使用静态工厂添加组件FXGL官方wiki提供了关于使用注解完成组件创建的工厂模式,这里改写为更简单理解的静态工厂模式。为了方便的创建各种类型的实体,我们还需要一个枚举类EntityTypepublic enum EntityType { /** * 飞机

2021-07-28 16:55:41 3191 6

原创 FXGL JAVA游戏引擎 教程 00.快速上手

FXGL 攻略 快速上手本教程中将会创建一个非常基本的游戏窗口,将使用idea编程,同时使用maven作为版本管理工具。首先在maven配置文件中添加最新版(21年七月)的fxgl依赖。(注意,需要使用jdk11+以上,本项目采用jdk16 <dependency> <groupId>com.github.almasb</groupId> <artifactId>fxgl</artifactId

2021-07-28 16:11:38 4690 4

翻译 FXGL11 教程中文翻译 01:简介

FXGLFXGL(FX Game Library)是一个基于JavaFX的2D游戏开发框架。用例FXGL 的目标是将游戏开发工具和技术引入 JavaFX,而无需额外的设置工作。只需将 FXGL 作为库添加到您的项目中,您就可以开始使用了。您可以使用 IDE 和操作系统的任意组合。因此,FXGL 非常适合学术环境和业余爱好项目。它也足够强大以支持商业项目。它是 MIT 许可的,所以你可以自由地用代码和框架做任何你想做的事情。原理FXGL 力求简单易用,同时提供对一系列真实世界游戏开发技术的

2021-07-13 11:57:55 1789

空空如也

空空如也

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

TA关注的人

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