我想制作一个像最终幻想战术一样的转弯系统。我已经创建了地图,它是5x5 tile网格,每个字符都放在tile的末尾。我有2个团队,名为Red
和Yellow
。
------Red-------:
第一个字符位于0,0
。第二个字符位于0,1. Third character is at
0.2 , fourth character is at
0.3 , and the last one is at
0.4`。
-----Yellow------:
第一个字符位于5.0
。第二个字符位于5.1
。第三个字符位于5.2
,第四个字符位于5.3
,最后一个字符位于5.4
。
我希望Red
团队先行动并做出决定(无论是攻击还是等待),并且Red
团队的5个字符已经做出决定后,{{1}团队是做决定的人(Yellow
团队是AI)
但是,我不知道如何通过单击鼠标左键将我的角色移动到下一个网格(例如:从0,0到0,1),以及如何显示网格(选择移动时)选择)显示角色能够移动多少个瓦片。
有人知道吗?或者我该如何了解更多?有没有推荐书籍或网络?
答案 0 :(得分:1)
您已经设置了基本数据结构,但现在需要获取一些更高级别的代码来操作该数据。
首先,我认为您应该使用鼠标在网格上选择位置。一旦您可以单击并将该网格坐标保存到变量,您需要设置一个函数来移动您的角色。在第一次单击(在角色上)之后,您需要检查有效的移动,并且对于每个有效移动,您需要在网格方块上渲染图像(或突出显示正方形的纹理)。
其次,你需要一个函数来迭代每个团队中的所有角色,然后根据谁移动。当你经历了Red.length(红色是由每个玩家组成的数组)时,你切换到通过Yellow.length计数,并为每个角色运行AI。如果您正在尝试制作双人游戏,则会再次向黄色团队请求用户输入。
我建议您了解如何显示网格并设置一种简单的方法来突出显示网格上的方块。之后,您需要将鼠标坐标转换为网格坐标。你的团队应该都是一组角色。我不熟悉动作脚本,但在我所知的语言中,它们看起来像这样:
team[6] = {Character1, Character2, Character3... }
Character1.position = {x, y}
转弯将是这样的:
while battle == not finished {
for (i = 0; i < red.length; i++) {
getInput();
move(red[i], newX, newY); //red[i].position = {newX, newY}
}
for (i = 0; i < yellow.length; i++) {
runAI();
move(yellow[i], newX, newY);
}
}
最难的部分是鼠标选择和绘制网格/字符。图形总是令人讨厌的。数据本身只是需要一些思考。特别是你的问题似乎与游戏编程有关。我的建议是制作网格,然后弄清楚如何显示网格。然后获取鼠标输入。最后,担心移动角色和突出显示正方形。