[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

[大阪/横滨/德岛] 寻找基础设施/服务器端工程师!

【超过500家企业部署】AWS搭建、运维、监控服务

【超过500家企业部署】AWS搭建、运维、监控服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

【CentOS的后继者】AlmaLinux OS服务器搭建/迁移服务

[仅适用于 WordPress] 云服务器“Web Speed”

[仅适用于 WordPress] 云服务器“Web Speed”

[便宜]网站安全自动诊断“快速扫描仪”

[便宜]网站安全自动诊断“快速扫描仪”

[预约系统开发] EDISONE定制开发服务

[预约系统开发] EDISONE定制开发服务

[注册100个URL 0日元] 网站监控服务“Appmill”

[注册100个URL 0日元] 网站监控服务“Appmill”

【兼容200多个国家】全球eSIM“超越SIM”

【兼容200多个国家】全球eSIM“超越SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

[如果您在中国旅行、出差或驻扎]中国SIM服务“Choco SIM”

【全球专属服务】Beyond北美及中国MSP

【全球专属服务】Beyond北美及中国MSP

[YouTube]超越官方频道“美由丸频道”

[YouTube]超越官方频道“美由丸频道”

制作Da○Saba○酒吧(No.2)

我希望这次我不用等那么久。
我是系统开发部的松山先生。

为您带来从上期开始突然开始的《制作大○萨巴○酒吧》第二期。

第一期请点击这里↓

制作Da○Saba○bar(第一期)

在第一期中,我们甚至显示了玩家的敌人区域并实现了移动玩家的功能。

我认为《Da○Saba○Bar》的魅力在于用各种各样的武器消灭大量僵尸的爽快感,所以我计划在第二期中加入武器。

武器类型

然而,要实现所有大量的武器类型需要太多的工时,所以我想我现在将其范围缩小到大约三种。

① 霰弹枪(默认武器)
② 砖块
③ 守护者

在这附近。

像往常一样,我会从Undead Survivor中寻找可以用作资源的图像并使用它们。

① 霰弹枪本身是准确的。
② 没有砖块。农具我都有了,所以我要扔犁了。 ③
圆盘上也没有守护者。让我们旋转“卡玛”

霰弹枪

确定需求。

① 向玩家方向(行进方向)射击
② 发射的子弹数量根据等级而增加
③ 射击间隔
根据等级而变短 ④ 射击范围根据等级而增加
⑤ 附近有僵尸
⑥ 子弹会飞朝①方向持续一定时间并消失。
击中僵尸,则不会穿透。

事情出乎意料地发生了。

①~⑤为射击前的过程(Weapon_1)
⑥~⑦为子弹过程(Bullet)

因此,我们将它们分成不同的类。
使用Weapon_1生成子弹的图像,发射的子弹自行移动并消失。

基本上,从 Player 类获取玩家的方向并确定参考火线。
你所要做的就是根据子弹的数量,以起点(​​玩家坐标)为基础,将火线旋转±n°,就可以将子弹分散成扇形。

我准备了这些参数用于控制。

// 子弹发射间隔 (3 级) private readonly float[] Interval = { 1.5f, 1.25f, 1.0f }; // 子弹发射范围 (3 级) private readonly float[] range = { 4.0f, 6.0f , 8.0f }; // 同时发射的数量(3 个级别) private readonly int[]并发 = { 1, 3, 5 }; // 发射角度(5 个方向:取决于同时发射的数量) private readonly float[] angle = { 0, 10, -10, 20, -20 };

关于⑤,
让EnemyController类搜索附近的僵尸。
如果是这样,则玩家坐标和僵尸坐标之间的向量就成为射线。
子弹的散射与上面相同。

发射子弹后,Bullet 类会自主移动。
如果您移动并击中僵尸,您将获得碰撞检查,因此您可以通过删除自己的对象来创建僵尸不会穿透的状态。
即使不起作用,在一段时间后仍然会被删除。

这样,霰弹枪就完成了。
成品如下↓
・1级

・2级

・3级

砖(类似)

① 向上投掷
② 在一定高度以弧线落下
③ 落下结束后将其删除(屏幕外)
④ 即使击中僵尸也能穿透(最多 3 个僵尸)
⑤ 投掷次数根据等级而增加。 (不同时间投掷)

职业构成将类似于霰弹枪。
使用 Wea​​pon_2 生成犁。之后,犁本身将沿抛物线飞行。
敌人的位置并不特别重要。

最大的问题是画抛物线的公式。
经过一段时间的搜索,我发现了这个很棒的网站。
如果您想以抛物线形状飞行箭头(忽略二维重力),
那么它是完美的。感谢哈特纳博客。
这是计算由起点 (p0)、顶点 (p1) 和终点 (p2) 指定的贝塞尔曲线上的坐标的公式。
通过添加在顶点附近将犁方向旋转 180° 的过程来创建协程。

///<summary> /// 画抛物线 ///</summary> ///<param name="p0">起点</param>///<param name="p1">顶点(相对坐标)</param> ///<param name="p2">终点(相对坐标)</param> ///<returns>协程</returns>IEnumerator Throw (Vector3 p0, Vector3 p1, Vector3 p2) { float distance = Vector3.Distance(Vector3.zero, p2); float t = 0f; while (t <= 1 && isAlive) { float Vx; = 2 * (1f - t) * t * p1.x + Mathf.Pow (t, 2) * p2.x + p0.x; 浮点 Vy = 2 * (1f - t) * t * p1.y + Mathf .Pow(t,2)*p2.y+p0.y;transform.position = new Vector3(Vx,Vy,0);//t从0.4变为0.6;期间,逐渐旋转 180° if (t > 0.4f && t < 0.6f) { float angle = Mathf.Lerp(0, courseGoal[course], (t - 0.4f) / 0.2f); 变换。 Euler(0, 0, 角度); } 产量返回 null; } 销毁 (this.gameObject);

* 修复因为p1和p2需要是相对坐标值(2024.3.22)

然后在生成Plow时指定p0到p2。
您可以通过将随机数添加到顶点的高度以及从起点到终点的宽度来创建一些变化,使其看起来像这样。
成品如下↓
・1级

・2级

・3级

守护者(镰刀)

围绕玩家旋转的那个。

① 围绕玩家旋转
② 数量随等级增加而增加
③ 即使被僵尸击中也不会消失(穿透)

是的。它的要求最少。

用同样的方法制作。使用 Wea​​pon_3 生成 Sickle 类。
只需根据要放置的件数以相等的间隔放置它们,并以相同的速度旋转它们即可。
可以使用三角函数计算圆周运动的坐标(偏移值)。
由于它会跟随玩家,因此您所要做的就是添加玩家的坐标。

有了这些定义,

// 半径 public const float Radius = 4.0f; // 旋转速度(秒) private const float RotateSpeed = 270f; // 旋转速度(秒) private const float SpinSpeed = 1080f; // 角度(角度来确定)位置 ) private floatrotateAngle = 0.0f; // 角度(旋转) private float spinAngle = 0.0f;

剩下的就是用框架来处理它了。

void Update() { // 增加角度(旋转)rotateAngle -= RotateSpeed * Time.deltaTime; // 增加角度(旋转) spinAngle -= SpinSpeed * Time.deltaTime; ) 转换为弧度 float rad =rotateAngle * Mathf.Deg2Rad; // 将角度(旋转)转换为弧度 float spinRad = spinAngle * Mathf.Deg2Rad; // 更新位置 Vector2 pos =player.Position = new Vector3( pos. x + Radius * Mathf.Cos(rad), pos.y + Radius * Mathf.Sin(rad), 0.0f ); // 更新旋转变换.rotation = Quaternion.Euler(0.0f, 0.0f, spinAngle);

随着圆周运动,镰刀本身也旋转。
成品如下↓
・1级

・2级

・3级

调试用户界面

创建调试UI来检查操作。

- 所有武器均可设置1至3级
- 武器1默认为1级
- 武器2和3不是一开始就获得的

添加旧版按钮等以加快速度。

这就是本月的全部内容

现在就这些了。
我认为我能够快速实现它,部分归功于我引用的网站。
使用 Unity 创建事物很有趣,即使是在迷你游戏级别也是如此。

顺便说一下,完整的攻击状态是这样的。

下次

・收集僵尸生态
/经验值并提升武器等级

我希望我能实现这一点。

与往常一样,整个项目都可以在 GitHub 上找到。
我希望这会对您有所帮助。
贝贝幸存者

好了,现在就这些了。

如果您觉得这篇文章有帮助,请点赞!
7
加载中...
7 票,平均:1.00 / 17
353
X Facebook 哈特纳书签 口袋
[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

[2025.6.30 Amazon Linux 2 支持结束] Amazon Linux 服务器迁移解决方案

写这篇文章的人

关于作者

松山贤章

他长期在一家游戏开发公司工作,从事程序和项目管理工作。
2019年加入超越株式会社。
在横滨办事处工作。 主要负责服务器端开发工作的项目管理。
(有时编程)我的爱好是骑自行车(公路赛车)和观看赛马。