社区讨论

[淼]幻影虚空/亿些优化

灌水区参与者 15已保存回复 18

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
18 条
当前快照
1 份
快照标识符
@m4xuqvg9
此快照首次捕获于
2024/12/21 15:22
去年
此快照最后确认于
2024/12/21 17:35
去年
查看原帖
前言:
我本来想用AI生成类似空洞骑士的战斗游戏,然后我把我的 纪元战争 发给它,它直接懵逼看不懂我的代码(
我让它自己写一个,也是调了半天屁都没有 xd
所以我决定退而求其次,发给它我的 shoot 函数 (自定义弹幕编辑器有代码) 调了十几分钟,这回能懂了,效果出奇的不错!
我还生成了一个更难更高级的,但是还没调完,估计得下周再调了。
虽然AI菜的没边还经常CE,但是有时候还是有不错的想法和实现方案的,大家可以尝试着玩玩
正文:
CPP

void spawnFinalVoid(int centerX, int centerY, double speed, int numRings, int numBulletsPerRing, double startAngle) {
	changewhat++;
    for (int ring = 0; ring < numRings; ++ring) {
        double radius = static_cast<double>(ring) * 200.0 / numRings; // 将屏幕分成numRings个环
        double increment = 2 * M_PI / numBulletsPerRing; // 每个子弹的角度增量
        for (int bullet = 0; bullet < numBulletsPerRing; ++bullet) {
            double angle = startAngle + increment * bullet + ring * 2 * M_PI / numRings; // 每个环内子弹的角度
            int x = static_cast<int>(centerX + radius * cos(angle));
            int y = static_cast<int>(centerY + radius * sin(angle));
            int x1 = centerX;
            int y1 = centerY;
            // 向中心汇聚的弹幕
            if(changewhat==1)shoot(x, y, x1, y1, 1, 0, 1, changewhat, 0, 100, speed*1.5, 50);
            if(changewhat==2)shoot(x, y, x1, y1, 1, 0, 1, changewhat, 0, 100, speed, 50);

            // 从中心扩散的弹幕
            angle += M_PI; // 反转方向
            x = static_cast<int>(centerX + (radius + 50) * cos(angle)); // 增加半径以模拟扩散
            y = static_cast<int>(centerY + (radius + 50) * sin(angle));
            if(changewhat==1)shoot(x1, y1, x, y, 1, 0, 1, changewhat, 0, 100, speed*1.5, 50);
            if(changewhat==2)shoot(x1, y1, x, y, 1, 0, 1, changewhat, 0, 100, speed, 50);
        }
    }
    if(changewhat==2)changewhat=0;
}
这是幻影虚空的部分代码,AI的弧度角度制转化等确实是个很好的思路,能够用for循环形成良好的环形弹幕机制。
也有很多意料之外的东西,比如第一阶段中绿圈的闪现,这个其实我也不知到为啥会发生,但是确实是个良性BUG,增加了视觉效果。还有第三阶段,我算是给AI全改了,原本AI是打算到一定距离再改变方向,但我直接决定每一帧增加一个向心力,我当时没预料到这么震撼(
更震撼的效果,敬请期待,游戏亲测可过 我还给你们加上了存档

[淼]开源弹幕游戏——自定义弹幕编辑器 这个BOSS代码最重要的部分就是 shoot,而自定义编辑器给予了不会编程但有想法的同学创作的机会,欢迎大家继续修改这个东西 (我没时间写这个编辑器

回复

18 条回复,欢迎继续交流。

正在加载回复...