Author Topic: Danmaku Pattern Ideas  (Read 36220 times)

Henry

  • The observer
  • Exploring to the new world of Danmaku
Re: Danmaku Pattern Ideas
« Reply #60 on: September 17, 2009, 12:17:20 PM »
Code: [Select]
#TouhouDanmakufu
#Title[Illusion "Vision error"]
#Text[...]
#Player[FREE]
#ScriptVersion[2]
script_enemy_main{
   let ImgBoss = "script\img\ExRumia.png";
   let frame = -120;
   let MAX=18;
   let i;
   let j;
   @Initialize{
      SetLife(4000);
      SetTimer(60);
      SetScore(1000000);
      SetMovePosition02(GetCenterX, GetClipMinY+120, 120);
      CutIn(YOUMU, "Illusion "\""Vision error"\", "", 0, 0, 0, 0);
      LoadGraphic(ImgBoss);
      SetTexture(ImgBoss);
      SetGraphicRect(0, 0, 64, 64);
      LoadUserShotData(GetCurrentScriptDirectory~"shot_All.txt");
   }
   @MainLoop{
      SetCollisionA(GetX, GetY, 32);
      SetCollisionB(GetX, GetY, 16);
      if(frame%80==20&&frame>0){
         ascent(i in 0..MAX){
            ascent(j in 0..8){
               Bullet(GetAngleToPlayer+i*360/MAX, j*8);
            }
         }
      }
      frame++;
      yield;
   }
   @DrawLoop{
      DrawGraphic(GetX,GetY);
   }
   @Finalize{
      DeleteGraphic(ImgBoss);
   }
   task Bullet(angle, delay){
      let alpha=255;
      let frame2=0;
      let count=1;
      loop(delay){yield;}
      let obj=Obj_Create(OBJ_SHOT);
      Obj_SetPosition(obj, GetX, GetY);
      Obj_SetSpeed(obj,2);
      Obj_SetAngle(obj,angle);
      ObjShot_SetGraphic(obj, 57);
      ObjShot_SetDelay(obj, 10);
      while(Obj_BeDeleted(obj)==false){
frame2++;
Obj_SetAlpha(obj, alpha);
alpha=(cos(frame2*6)/2+0.5)*255;
if((Obj_GetX(obj)>GetClipMaxX||Obj_GetX(obj)<GetClipMinX)&&count>0){
    Obj_SetAngle(obj, 180-Obj_GetAngle(obj));
    Obj_SetX(obj, Obj_GetX(obj)+0.1*(-1)^(Obj_GetX(obj)>GetClipMaxX));
    count--;
}
yield;
      }
   }
}
After using this script you'll understand (put the CtC shot_All.txt in same folder)
Old/Forgotten member.

Old Patchouli Project was outdated but new one is in progress.

Re: Danmaku Pattern Ideas
« Reply #61 on: September 22, 2009, 01:30:24 PM »
Pulling back ideas from when the time I thought it'd be fun to combine Syobon Action and Touhou. I may code this, eventually. Extra boss, 3 midboss and 10 boss cards. The boss cards are as follows:

Resurrection Butterfly -80% Reflowering-. At timed intervals, Yuyuko's fan starts spinning, homing at the player like Elly's scythe does.
Apollo 13 -Lunatic-, the pattern comes back from bottom of the screen right after the forward wave, so that the player is dodging endlessly. Again at timed intervals, Apollo 13 itself comes crashing down the screen, homing at the player and covering 1/3 of the screen.
Scarlet Meister -Lunatic-, untouched except it is now a 60-second timeout card now.
Scarlet Gensokyo -Lunatic-, untouched except all rotating waves are replaced with the dense screen-filling wave.
Subterranean Sun -Lunatic-, untouched except for three gravity wells instead of one. The gravity wells also spin around the screen.
VoWG with the sent amulets curving back and returning like Legendary Flying Saucer.
Suwa War with the suns coming from the bottom and sides as well. Total length is also increased by 20 seconds.
StB 9-6 "Flawless Ceiling of Kinkaku Temple" at its final form as a 60-second timeout card.
Salamander Shield that uses Phoenix Tail's fireball rain.
Tenth card will be an exact replica of Hourai Elixir, except during for the last seconds where time slows down, the game will stop to a halt and player will be denied a clear even if he managed to get this far.

Not sure about midboss cards, but Kogasa's Flash card without the rotating lasers (that is, the lasers spawn out of nowhere) comes to mind.

KomeijiKoishi

Re: Danmaku Pattern Ideas
« Reply #62 on: September 22, 2009, 02:21:26 PM »
Code: [Select]
#TouhouDanmakufu
#Title[Summer "Waterfall"]
#Text[Test script]
#BackGround[User(.\black.png, 1, 1)]
#Player[FREE]
#ScriptVersion[2]

script_enemy_main {

    let ImgBoss = "script\img\ExRumia.png";

    let count = -70;
   
    let fire = 0;

    @Initialize {
        SetLife(500);
        SetDamageRate(8, 0);
        SetTimer(256);
        SetScore(1000000);
        SetInvincibility( 200 );
        LoadGraphic("script\stage05e01.png");

        SetMovePosition02(GetCenterX, GetCenterY-120, 120);
        LoadUserShotData("\CustomShots1.txt");
CutIn(KOUMA, "Summer "\""Waterfall"\", "", 0, 0, 285, 416);
        SetGraphicRect(0, 0, 64, 112);
    }

    @MainLoop {
    SetCollisionA(GetX, GetY, 32);
    SetCollisionB(GetX, GetY, 32);

    if ((count == 50)){
    Cross;
    Drop;
    }
    count++;
    yield;
    }

    @DrawLoop {
      SetTexture(ImgBoss);
      DrawGraphic(GetX, GetY);
    }

    @Finalize {
      DeleteGraphic(ImgBoss);
    }

   task Cross{
   let b = 90;
   let bup = 0;
   let reverse = 0;
   let lrar = 0;
   let kput = 20;
   let krar = 0;
   
   
   let Length = 0;
   
   let n = 0;
   
   let q = 0;
   
   let RollerX;
   let RollerY;
   let RollerTwoX;
   let RollerTwoY;
   
   loop{
   
   PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
    ascent(a in 1..kput+1){
    RollerX = rand(GetClipMinX - 300, GetClipMinX - 265) + a * 35;
    RollerY = GetClipMinY;
   TheshotUp(RollerX, RollerY, 2, (a*krar+b), 79, 0);
    }
   if (reverse == 0){
   if (b > 110){
   b -= 1;
   }
   else{
   reverse++;
   }
   }
   else{
   if (b < 70){
   b += 1;
   }
   else{
   reverse--;
   }
   }
   b += bup;
   if (Length > -200){
   Length -= 0;
   }
   
   loop(24){
   yield;
   }
   }
   }

   task Drop{
   let b = 90;
   let bup = 0;
   let reverse = 0;
   let lrar = 0;
   let kput = 1;
   let krar = 0;
   
   
   let Length = 0;
   
   let n = 0;
   
   let q = 0;
   
   let RollerX;
   let RollerY;
   let RollerTwoX;
   let RollerTwoY;
   
   loop{
   
   PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav");
    ascent(a in 1..kput+1){
    RollerX = GetX;
    RollerY = GetY;
   CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer, 80, 30);
   CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer+20, 80, 30);
   CreateShot01(RollerX, RollerY, 0.8, GetAngleToPlayer-20, 80, 30);
   CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer, 80, 30);
   CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer+20, 80, 30);
   CreateShot01(RollerX, RollerY, 1.8, GetAngleToPlayer-20, 80, 30);
   CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer, 80, 30);
   CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer+20, 80, 30);
   CreateShot01(RollerX, RollerY, 2.8, GetAngleToPlayer-20, 80, 30);
    }
   if (reverse == 0){
   if (b > 110){
   b -= 1;
   }
   else{
   reverse++;
   }
   }
   else{
   if (b < 70){
   b += 1;
   }
   else{
   reverse--;
   }
   }
   b += bup;
   if (Length > -200){
   Length -= 0;
   }
   
   loop(120){
   yield;
   }
   }
   }

   

    task TheshotUp(x, y, v, angle, graphic, delay){
        let obj = Obj_Create(OBJ_SHOT);
      let a = 0;
      let b = 0;
      let dir = angle;
        Obj_SetX(obj, x);
        Obj_SetY(obj, y);
        Obj_SetSpeed(obj, v);
        Obj_SetAngle(obj, angle);
        ObjShot_SetGraphic(obj, graphic);
        ObjShot_SetDelay(obj, delay);
      Obj_SetAutoDelete(obj, false);
      ObjShot_SetBombResist(obj, true);
        while (!Obj_BeDeleted(obj)){
      if (a <= 100){
      Obj_SetAngle(obj, angle-(a-delay)/2);
      } 
      if (a >= 100 && a <= 500){
      Obj_SetAngle(obj, angle-100+(a-delay)/2);
      } 
      if (a >= 500 && a <= 800){
      Obj_SetAngle(obj, angle+400+(a-delay)/2);
      } 
      if (a == 400){
      Obj_SetAutoDelete(obj, true);
      } 
      a++;
      yield;
      }
   }

   }
   
}


Re: Danmaku Pattern Ideas
« Reply #63 on: September 22, 2009, 06:21:05 PM »
What would be something good to code DIRECTLY after finishing the tutorial for danmakufu? I need ideas  :V

Henry

  • The observer
  • Exploring to the new world of Danmaku
Re: Danmaku Pattern Ideas
« Reply #64 on: September 23, 2009, 12:24:50 AM »
Which tutorial did you finish?
Old/Forgotten member.

Old Patchouli Project was outdated but new one is in progress.

KomeijiKoishi

Re: Danmaku Pattern Ideas
« Reply #65 on: September 29, 2009, 06:49:16 PM »
Maxwell "D-A-N-M-A-K-U"

A buildup spell. As time progresses, Maxwell writes a letter of the word "Danmaku". Every letters shoots a different type of bullets (lasers, homing circle, aimed shots, stuff like that).
Is somebody interested in making this?

Henry

  • The observer
  • Exploring to the new world of Danmaku
Re: Danmaku Pattern Ideas
« Reply #66 on: October 10, 2009, 01:33:30 PM »
How about a spellcard for Shou, where she steals your Bombs and Lifes  :V
And you have to get them back before she can draw them. And if she gets your lifes and bombs.. I dont know, maybe if she gets your bombs, she starts shooting more danmaku or her pattern gets harder. And when she gets your lifes.. she just regains her health..

But is this impossible to make?

It can be called "Shou time"... and I have a few SC ideas to share:

1. Horrible green lasers x 3 (2 are indeed deadly, why not try 3?)
2. Sanae's first SC in SA Extra + Shou's laser SC in UFO.
Old/Forgotten member.

Old Patchouli Project was outdated but new one is in progress.


Knuckx117

  • I go :V at silly pictures
Re: Danmaku Pattern Ideas
« Reply #68 on: November 11, 2009, 03:46:32 PM »
I get inspiration in many ways, some of which are the following...

I usually think of "what would I like to dodge?" Then I try to create something similar, but not exactly replicate, that. Works most of the time.
As I'm scripting, I'll often try to loosely calculate math on absurd patterns. I'll just input whatever pops into my head, which can sometimes yield interesting results.
Occasionally I make a massive string of SetShotDataA's and mess with angular velocity. I don't even bother calculating when to properly change angles with respect to a frame count, just input anything.
Other times I see somebody else's pattern and think "this would look cool if..." and then try and make that from scratch. I never succeed, but something good usually comes out of it.
Failing all that, I just wait until random inspiration hits. Rare is the occasion I actually replicate what I first thought of with 100% accuracy, anyway.


Personally, I like what Nuclear Cheese did in his Celia Stage script: messing with SetAlpha to create transparent and sometimes invisible danmaku. I think that has quite a bit of untapped power.

Drake's idea sounds neat, but man I wouldn't want to try and code it...

I dunno... What else. It's hard to think of things like this on the spot...

Usually what I do is just think of a name for the card first, like, say, [King Sign "Royal Rainbow"], then think of what type of bullets would be in it, and what color. Then I mess around with various functions and variables using some of the bullet functions until I end up with something I like... In other words, I don't really have a plan. I just use trial and error until I find something that I think looks cool.

ChaoStar

  • Dark History Boy
Re: Danmaku Pattern Ideas
« Reply #69 on: November 11, 2009, 10:40:28 PM »
http://tomtheisen.com/spread/

gave me some really cool ideas. You play around with it a lot, too.