<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cytern的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/cytern</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; cytern]]></copyright><item><title><![CDATA[FXGL JAVA游戏引擎 教程 08_小小问号 （碰撞事件扩充）]]></title><link>https://blog.csdn.net/cytern/article/details/119914143</link><guid>https://blog.csdn.net/cytern/article/details/119914143</guid><author>cytern</author><pubDate>Wed, 25 Aug 2021 16:34:11 +0800</pubDate><description><![CDATA[业务逻辑
我们在玩游戏时，经常会遇到需要与npc互动之类的的场景。我们需要走进一个角色到一定范围内，进入这个范围内，就可以通过右键点击，或者其他输入事件触发和该角色对话。

实现逻辑
拆解成代码逻辑就是：当触发碰撞模型（可能是不可见的碰撞盒子，实体周围的一个范围）。就展示ui提示并且增加操作按钮。
实现效果
贴近人物时

离开人物时
## 实现代码
1.增加一个问号的实体，但是需要由组件空值（WhyComponent）
package com.dam.wonder.component;

import co]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 07 碰撞事件(大爷常来玩啊)]]></title><link>https://blog.csdn.net/cytern/article/details/119892749</link><guid>https://blog.csdn.net/cytern/article/details/119892749</guid><author>cytern</author><pubDate>Tue, 24 Aug 2021 17:35:46 +0800</pubDate><description><![CDATA[上文中，我们已经完成了一个地图，游戏角色，角色的移动，ui，场景切换等等功能。看似已经完成了一个游戏的大部分内容。似乎具备了对一个游戏开发的能力。但是实际上，我们的游戏角色和游戏地图间并不具备交互能力。换言之，我们没发知道我们的组件是否触碰在了一起，是否发生了交互。
当我们能够真正使用碰撞事件的时候，就能完成很多神奇的功能。比如刀砍到敌人，如何判定砍到人。比如进入商店区（可以购买商品，交接任务）。比如和一个npc对话。都需要碰撞事件监听。接下来我将为你展示如何为你的游戏添加碰撞事件。
1.源码解析：
核心类]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 06_自定义地图加载器（给萌妹一个家）]]></title><link>https://blog.csdn.net/cytern/article/details/119733599</link><guid>https://blog.csdn.net/cytern/article/details/119733599</guid><author>cytern</author><pubDate>Mon, 16 Aug 2021 15:53:15 +0800</pubDate><description><![CDATA[上文中，我们已经获得了一个完整的游戏角色，他能正常的移动，还有一些自身的特色，但是还有一个比较显著的问题，我们当前的游戏却少一个世界。
1. 逻辑分析
抛开其他轮子不谈，我们要自己生成世界可以使用实体或者ui生成的方式按照自己自定的某种数据结构（可能是二维数组）来渲染我们设计出的地图。但是明显会发现这个二维数组的可读可维护性会比较糟糕。这里就需要引入FXGL的一个比较方便的点：可以支持tmx文件格式的地图导入。
首先我们需要下载一个地图编辑器

这里可以下载mapedit

下载完成后我们需要一些地图资源文]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 05.场景 （萌妹在线哭泣）]]></title><link>https://blog.csdn.net/cytern/article/details/119680033</link><guid>https://blog.csdn.net/cytern/article/details/119680033</guid><author>cytern</author><pubDate>Fri, 13 Aug 2021 17:40:19 +0800</pubDate><description><![CDATA[上文中，我们已经有了一个漂亮的人物角色，但是对于一个游戏而言，除了可操控的游戏角色，各种弹出框也是必须设计考虑的一部分。
比如你希望播放一个过场动画，弹出一个对话框，打开背包栏目等等。
为了实现以上功能，我们需要另一个相关组件（scene 场景）
本文中为了方便，将着重介绍FXGL引擎提供的"subscene（子场景）"
1.方法源码解析
如果需要在fxgl中创建一个子场景十分容易，只需要创建一个类继承自Subscene类即可。
在subscene中有几个方法和属性十分关键。

属性
contentRoot]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 .04 动画 （可爱乌贼娘）]]></title><link>https://blog.csdn.net/cytern/article/details/119633569</link><guid>https://blog.csdn.net/cytern/article/details/119633569</guid><author>cytern</author><pubDate>Thu, 12 Aug 2021 11:12:56 +0800</pubDate><description><![CDATA[FXGL 04.动画  （可爱的乌贼娘）
我们在之前的文章中简单创建了一个png格式的图片展示的实体，这里我们要更换换这个实体的展示模式，让一个活灵活现的乌贼娘出现在我们的游戏世界中！
1.实体的展示过程
这样的一个实体创建过程我们并不陌生，如果需要将某个素材作为展示内容，我们只需要在创建中的view方法中加入其中。
   Entity entity = FXGL.entityBuilder().with(new MoveComponent()).build();

那我们来探究下view方法的本质。（我并]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 03.游戏UI]]></title><link>https://blog.csdn.net/cytern/article/details/119606123</link><guid>https://blog.csdn.net/cytern/article/details/119606123</guid><author>cytern</author><pubDate>Wed, 11 Aug 2021 17:18:20 +0800</pubDate><description><![CDATA[当我们拥有一个实体并且对其绑定了可移动的组件之后，我们拥有了一个可以自由操控控制的角色。但是距离成为一个真正的游戏还有几个必不可少的组件需要实现。其中游戏ui就是不可或缺的一个组件。


	坐标系
	
对于所有游戏引擎而言，坐标系的概念都至关重要。FXGL采取的默认坐标是右下。即屏幕的最左上角为坐标（0,0,0）向右下依次递增。


 例如1080*720的屏幕大小最右下角坐标就是（1080,720,0）


坐标系不会随着窗口的高度和宽度变化而变化，所以在窗口改变的时候，ui的位置也必须做出改变。当...]]></description><category></category></item><item><title><![CDATA[JAVA游戏引擎！FXGL 教程 总目录]]></title><link>https://blog.csdn.net/cytern/article/details/119210642</link><guid>https://blog.csdn.net/cytern/article/details/119210642</guid><author>cytern</author><pubDate>Thu, 29 Jul 2021 14:38:41 +0800</pubDate><description><![CDATA[喜欢打游戏也喜欢编程，总想开发一款自己的游戏，圆自己儿时的一个梦。

我并非要编写一个游戏引擎，故而也用不到LWJGL这种层级的引擎，如果你也是一个和我一样单纯想做一款游戏的javaer，那你也可以和我一样使用FXGL 引擎，一款基于javaFX的java游戏引擎。


git地址



wiki地址


同时，为了巩固自己的学习同时加深自身的理解，我会逐步推出基于官方wiki教程的全套学习笔记与教程。欢迎大家参与讨论与改进。

目录


	FXGL 攻略 00.快速上手
	
	
	FXGL 攻略 01..]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 02.番外 组件优化]]></title><link>https://blog.csdn.net/cytern/article/details/119204344</link><guid>https://blog.csdn.net/cytern/article/details/119204344</guid><author>cytern</author><pubDate>Thu, 29 Jul 2021 11:57:17 +0800</pubDate><description><![CDATA[上文（02.组件）中我们一已经实现了移动组件，本文中将优化该组件。

刚才实现的速度组件大致有以下几个问题

速度并非具有由快到慢的变化，转变十分生硬。
	速度大小并不能自定义
	在同时触发多个键时可能出现不同的移动情况。
实现思路: 在触发按键时，加速速度，并且将状态标记为主动变化。在按键结束时，触发被动减速。

修改后的moveComponment为：


package com.dam.wonder.component;

import com.almasb.fxgl.core.math.Vec2;
]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 02.组件]]></title><link>https://blog.csdn.net/cytern/article/details/119184871</link><guid>https://blog.csdn.net/cytern/article/details/119184871</guid><author>cytern</author><pubDate>Wed, 28 Jul 2021 17:49:41 +0800</pubDate><description><![CDATA[FXGL  攻略 02.组件
在FXGL中，实体的各种功能和表现都通过组件来进行实现。这很好理解，一个汽车实体，通过添加移动组件来使之具有移动能力，添加物理组件来监听碰撞效果等。

创建一个组件
新建一个moveComponent 作为飞机的移动功能组件。编写这个组件前，我们需要理解一个新的概念坐标。
移动的本质是在每次游戏刷新时将实体坐标更新，我们可以通过改变在X轴与Y轴的速度来作为每次游戏刷新时移动的坐标。对此可以写出

public class MoveComponent extends Compon]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 01.实体]]></title><link>https://blog.csdn.net/cytern/article/details/119183422</link><guid>https://blog.csdn.net/cytern/article/details/119183422</guid><author>cytern</author><pubDate>Wed, 28 Jul 2021 16:55:41 +0800</pubDate><description><![CDATA[FXGL 攻略 01.组件与实体
本教程将主要介绍FXGL中实体的创建以及组件的绑定和解绑。

创建实体
实体（Entity）在FXGL引擎中可以理解为最小的组成成分，在游戏世界(GameWorld)中添加后就会展示在游戏中。


使用静态工厂添加组件
FXGL官方wiki提供了关于使用注解完成组件创建的工厂模式，这里改写为更简单理解的静态工厂模式。
为了方便的创建各种类型的实体，我们还需要一个枚举类EntityType

public enum EntityType {
    /**
     * 飞机]]></description><category></category></item><item><title><![CDATA[FXGL JAVA游戏引擎 教程 00.快速上手]]></title><link>https://blog.csdn.net/cytern/article/details/119182411</link><guid>https://blog.csdn.net/cytern/article/details/119182411</guid><author>cytern</author><pubDate>Wed, 28 Jul 2021 16:11:38 +0800</pubDate><description><![CDATA[FXGL 攻略 快速上手
本教程中将会创建一个非常基本的游戏窗口，将使用idea编程，同时使用maven作为版本管理工具。
首先在maven配置文件中添加最新版(21年七月)的fxgl依赖。(注意，需要使用jdk11+以上，本项目采用jdk16
    &lt;dependency&gt;
            &lt;groupId&gt;com.github.almasb&lt;/groupId&gt;
            &lt;artifactId&gt;fxgl&lt;/artifactId]]></description><category></category></item><item><title><![CDATA[FXGL11 教程中文翻译 01：简介]]></title><link>https://blog.csdn.net/cytern/article/details/118696802</link><guid>https://blog.csdn.net/cytern/article/details/118696802</guid><author>cytern</author><pubDate>Tue, 13 Jul 2021 11:57:55 +0800</pubDate><description><![CDATA[FXGL

FXGL（FX Game Library）是一个基于JavaFX的2D游戏开发框架。

用例

FXGL 的目标是将游戏开发工具和技术引入 JavaFX，而无需额外的设置工作。只需将 FXGL 作为库添加到您的项目中，您就可以开始使用了。您可以使用 IDE 和操作系统的任意组合。因此，FXGL 非常适合学术环境和业余爱好项目。它也足够强大以支持商业项目。它是 MIT 许可的，所以你可以自由地用代码和框架做任何你想做的事情。

原理

FXGL 力求简单易用，同时提供对一系列真实世界游戏开发技术的]]></description><category></category></item></channel></rss>