这篇博客文章是该系列文章的第3部分。 要查看最后一部分,请看这里。
上次,我说我想修复酒吧的控件。 好吧,我有。 事实证明,C#带有arctan2()函数。 给定笛卡尔坐标平面的xy坐标,该函数可以为您提供0 – 259度的角度。 默认情况下,单位为1的箭头键插入水平轴和垂直轴。 (向上为垂直轴的正方向,右箭头键为水平的正方向,相反的方向为负。)轴的值从-1到1变化,具体取决于按下按钮的力度,这意味着它非常适合我的运动功能。 如果同时按下两个按钮(例如,向上和向左),arctan2()函数将完成所有操作,以计算玩家对象应该面向我的方向。

此外,在酒吧场景中还需要做更多的工作。 已经放置了一些墙,包括播放器后面的不可见墙。 玩家还可以选择对某个特定的派对说“是”,以便与他们一起旅行。 执行此操作后,将显示以下屏幕:

这个场景还不是很完整,但是在功能上是可行的。 玩家可以在其中查看聚会中的班级类型以及统计数据。 此类视觉效果的资产尚未完成,但已装入了不同的类别和武器。
玩家可以使用的职业包括:弓箭手,宇航员,医生,骑士,法师,死灵法师,忍者,Out徒,海盗,超级英雄和素食主义者。
玩家将能够遇到的敌人包括:宇航员,西格罗布,飞行柱塞(是,飞行厕所柱塞),冰块,火箭先生,不友好的战车,吸魂者,幽灵鬼和少女西格罗布。
党的成员将能够持有不同的物品,从而提高他们的属性。 到目前为止,游戏中存在以下武器类型的代码:斧头,黄铜指节,阔剑,火杖,巨斧,斧头,冰棍,铁拳节,早晨咖啡,晨星,普通剑,圆形盾牌,小剑,尖刺盾牌,泰夫的刀,素食圣经和Ze Cannon。
所有的党员和敌人都是抽象的PartyMember超类的子类,因此从理论上讲,任何人都可以是敌人或党员。 同样,所有武器都是单个抽象武器子类的子类。 这样,这些类将被标准化。
在后台,在游戏开始时,所有参与者都是随机的,并且每个参与者中的每个成员都有一个班级和武器,因此每次在同一游戏实例中看到该参与者时,他们的成员都是一致的。
目前,我正在研究战斗系统,在该系统中,党员和敌人实际上都将其淘汰。 这将被证明是整个项目中最困难,最困难的部分,因为我不喜欢如何统一地自动缩放UI,因此我必须对UI进行编程。 UI也必须动态创建,因为我不知道一次有多少实体参与战斗。
当前,场景是这样的:

战斗中代表不同敌人和玩家党成员的实体是动态创建的,因为我事先不知道需要多少实体。 当前,UI模式设置为允许玩家选择要攻击的目标。 目前,它什么也没做,但是可以循环并攻击谁在做什么。 背景中的地形是临时的。
目前,我需要对战斗系统的其余部分进行编程,以便一侧可以实际受到伤害,而一侧可以获胜。 希望在我输入第4部分时完成。感谢您的阅读,下周见!