东方弹幕风吧 关注:263贴子:936
  • 5回复贴,共1

「波与粒子的境界」公式

只看楼主收藏回复



1楼2013-03-31 23:50回复
    通过简单观察可以了解到,这个弹幕的特点是 只有一种弹型,并且所有子弹一经发射保持弹速和方向不变。
    那么变化的只有子弹的初始发射方向。继续观察下去,弹幕的变化很微妙,发射方向的转速不断变化,似乎是一个不断加快又减慢,而后又反向的一个过程,子弹时聚时散,链条数也随之不断改变。
    这样一个变化复杂的弹幕看上去无从下手,实际上了解了公式之后非常简单,这个弹幕的刚一开始是一个转速匀速加快的过程,只要实现出这个转速匀速加快的过程,后面的弹幕就会自动转出这些复杂的图形,所以这个弹幕的变化是很微妙的。
    环形弹幕和旋转弹幕是会经常用到的两种弹幕,波与粒子的境界几乎成了必了解弹幕之一。


    2楼2013-03-31 23:52
    回复
      #TouhouDanmakufu
      #Title[wave]
      #Text[wave]
      #Player[FREE]
      #ScriptVersion[2]
      script_enemy_main
      {
      let imgExRumia = "script\ExRumia\img\ExRumia.png";
      let frame = 0;
      let angle = -315;
      let angleAcc = -3.5;
      let WAYS = 2;
      @Initialize
      {
      SetX(GetCenterX);
      SetY(GetClipMinY + 120);
      SetLife(4000);
      SetTimer(60);
      LoadGraphic(imgExRumia);
      SetMovePosition02(GetCenterX, GetCenterY - 30, 30);
      }
      @MainLoop
      {
      SetCollisionA(GetX, GetY, 32);
      SetCollisionB(GetX, GetY, 20);
      frame++;
      if(120 == frame)
      {
      loop(WAYS)
      {
      CreateShot01(GetX, GetY, 2.5, angle, PURPLE12, 0);
      angle += 360 / WAYS;
      }
      angle += angleAcc;
      angleAcc += 0.12;
      frame = 119;
      }
      }
      @DrawLoop
      {
      SetTexture(imgExRumia);
      SetGraphicRect(64, 1, 127, 64);
      DrawGraphic(GetX, GetY);
      }
      @Finalize
      {
      DeleteGraphic(imgExRumia);
      }
      }


      3楼2013-03-31 23:55
      回复
        这部分是公式
        // 以发弹链条数作为循环次数
        loop(WAYS)
        {
        CreateShot01(GetX, GetY, 2.5, angle, PURPLE12, 0); // 发射一颗米粒
        angle += 360 / WAYS; // 发射方向转到下一个链条
        }
        angle += angleAcc; // 发射角度旋转
        angleAcc += 0.12; // 发射角度转速变化


        4楼2013-04-01 00:02
        回复
          pan.baidu.c防om/share/link?shareid=395632&uk=4094677229
          稍微改造了一下,令其可以卡安定位;子弹裂成红蓝两色,方便观察旋转;
          弹幕风的子弹发射光效会盖住判定点,,


          5楼2013-04-01 00:13
          回复
            不错


            IP属地:吉林6楼2017-11-14 10:53
            回复