Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Player]
- #ScriptVersion[2]
- #Menu[Reimu A]
- #Text[Reimu Hakurei - Homing Type
- Shot:
- Both: Homing Amulets (Homing)
- Spell Cards:
- Homing Sign - Orbs of Hakerei
- Homing Sign - Border of Homing Orbs]
- #Image[.\Reimu_Select.png]
- #ReplayName[ReimuA]
- script_player_main{
- let Img_Reimu = GetCurrentScriptDirectory()~"Reimu-Dot.png";
- let optionxpos = 16;
- let optionypos = 0;
- let count=-1;
- let i=0;
- task Option(position){
- let objoption=Obj_Create(OBJ_EFFECT);
- Obj_SetAlpha(objoption,200);
- ObjEffect_SetTexture(objoption,Img_Reimu); //uses ying-yang from spritesheet
- ObjEffect_SetRenderState(objoption,ALPHA);
- ObjEffect_SetPrimitiveType(objoption,PRIMITIVE_TRIANGLEFAN);
- ObjEffect_CreateVertex(objoption,4); // square object with 4 vertexes
- ObjEffect_SetVertexUV(objoption,0,127,17); // four coordinates of orb on spritesheet
- ObjEffect_SetVertexUV(objoption,1,142,17); // object is 15x15
- ObjEffect_SetVertexUV(objoption,2,142,32);
- ObjEffect_SetVertexUV(objoption,3,127,32);
- if(position=="LEFT"){
- while(!Obj_BeDeleted(objoption)){
- ObjEffect_SetVertexXY(objoption,0,GetPlayerX-optionxpos-8,GetPlayerY+optionypos-7);
- ObjEffect_SetVertexXY(objoption,1,GetPlayerX-optionxpos+6,GetPlayerY+optionypos-7);
- ObjEffect_SetVertexXY(objoption,2,GetPlayerX-optionxpos+6,GetPlayerY+optionypos+7);
- ObjEffect_SetVertexXY(objoption,3,GetPlayerX-optionxpos-8,GetPlayerY+optionypos+7);
- yield; // note that the left orb is shifted one pixel to the left to make the total width even
- }
- }else{
- while(!Obj_BeDeleted(objoption)){
- ObjEffect_SetVertexXY(objoption,0,GetPlayerX+optionxpos-7,GetPlayerY+optionypos-7);
- ObjEffect_SetVertexXY(objoption,1,GetPlayerX+optionxpos+7,GetPlayerY+optionypos-7);
- ObjEffect_SetVertexXY(objoption,2,GetPlayerX+optionxpos+7,GetPlayerY+optionypos+7);
- ObjEffect_SetVertexXY(objoption,3,GetPlayerX+optionxpos-7,GetPlayerY+optionypos+7);
- yield;
- }
- }
- }
- @Initialize{
- LoadGraphic(Img_Reimu);
- LoadPlayerShotData(GetCurrentScriptDirectory()~"Shot.txt");
- SetPlayerLifeImage(Img_Reimu, 40, 0, 79, 49);
- SetSpeed(4,2);
- Option("LEFT");
- Option("RIGHT");
- }
- @MainLoop{
- if((GetKeyState(VK_SHOT)==KEY_PUSH || GetKeyState(VK_SHOT)==KEY_HOLD) && count==-1){
- count = 0;
- }
- if(GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD){
- if(count%6 == 0){
- }
- }else{
- if(count%8 == 0){
- i = -3;
- while(i<=3){
- CreatePlayerShot01(GetPlayerX()+3, GetPlayerY(), 10, 180, 2, 2, 1);
- CreatePlayerShot01(GetPlayerX()-3, GetPlayerY(), 10, 180, 2, 2, 1);
- }
- }
- if(count >= 0){
- count++;
- }
- if(count >= 6 && (GetKeyState(VK_SLOWMOVE)==KEY_PUSH || GetKeyState(VK_SLOWMOVE)==KEY_HOLD)){
- count=-1;
- }
- if(count >= 8){
- count=-1;
- }
- yield;
- }
- @Missed{
- }
- @SpellCard{
- }
- @DrawLoop{
- SetTexture(Img_Reimu);
- if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD){
- SetGraphicRect(80, 0, 119, 49); // left movement frame
- }else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD){
- SetGraphicRect(0, 0, 39, 49); // right movement frame
- }else{
- SetGraphicRect(40, 0, 79, 49); // neutral frame
- }
- DrawGraphic(GetPlayerX(), GetPlayerY());
- }
- @Finalize
- DeleteGraphic(Img_Reimu);
- }
- }
- script_spell OrbsofHakurei{
- @Initialize{
- }
- @MainLoop{
- }
- @Finalize{
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement