0

我想制作一个类似于最终幻想战术的回合制系统。我已经创建了地图,它是 5x5 的瓷砖网格,每个字符的字符都放在瓷砖的末端。我有 2 个团队,分别名为RedYellow

------Red-------:

第一个字符在0,0. 第二个字符位于0,1. Third character is at0.2 , fourth character is at0.3 , and the last one is at0.4`。

-----Yellow------:

第一个字符在5.0. 第二个字符在5.1. 第三个字符是 at 5.2,第四个字符是 at 5.3,最后一个字符是 at 5.4

我希望Red团队先行动并做出决定(无论是攻击还是等待),并且在团队的5个角色Red已经做出决定之后,Yellow团队才是做出决定的人(Yellow团队是一个AI)

但是,我不知道如何通过单击左鼠标按钮将角色转移到下一个网格(例如:从0,0到0,1),以及如何显示网格(选择移动选择时)显示角色能够移动的瓷砖数量。

有人知道吗?或者我应该如何了解更多?有没有推荐的书或网站?

4

1 回答 1

1

您已经设置了基本数据结构,但现在您需要获取一些更高级别的代码来操作该数据。

首先,我认为您应该使用鼠标在网格上选择位置。一旦您可以单击并将该网格坐标保存到变量中,您需要设置一个函数来移动您的角色。在第一次点击后(在角色上),您需要检查有效动作,并且对于每个有效动作,您需要在网格方块上渲染图像(或突出显示方块的纹理)。

其次,你需要一个函数来遍历每个团队中的所有角色,根据接下来的动作。当您通过 Red.length(red 是由每个玩家组成的数组)后,您切换到通过 Yellow.length 计数,并为每个角色运行 AI。如果您正在尝试制作一个两人游戏,则您需要为黄队再次要求用户输入。

我建议您了解如何显示网格并设置一种简单的方法来突出显示网格上的正方形。之后,您需要将鼠标坐标转换为网格坐标。你的团队应该是一个字符数组。我不熟悉 actionscript,但在我知道的语言中,它们看起来像这样:

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);
    }
}

最难的部分是鼠标选择和绘制网格/字符。图形总是令人讨厌。数据本身只需要一点思考。你的问题似乎特别是关于游戏编程。我的建议是制作网格,然后弄清楚如何显示网格。然后获取鼠标输入。最后,担心移动字符和突出显示方块。

于 2013-09-18T04:33:05.763 回答