Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Single]
- #ScriptVersion[3]
- #Title["Tutorial 8"]
- #include "script/default_system/Default_ShotConst.txt"
- let objBoss;
- let objScene= GetEnemyBossSceneObjectID();
- let bossX = 0;
- let bossY = 0;
- let imgExRumia = GetCurrentScriptDirectory ~ "ExRumia.png";
- @Event{
- alternative(GetEventType())
- case(EV_REQUEST_LIFE){
- SetScriptResult(500);
- }
- case(EV_REQUEST_TIMER){
- SetScriptResult(60);
- }
- case(EV_REQUEST_SPELL_SCORE){
- SetScriptResult(1000);
- }
- }
- @Initialize{
- objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- ObjEnemy_Regist(objBoss);
- ObjEnemyBossScene_StartSpell(objScene);
- ObjPrim_SetTexture(objBoss, imgExRumia);
- ObjSprite2D_SetSourceRect(objBoss, 64, 1, 127, 64);
- ObjSprite2D_SetDestCenter(objBoss);
- ObjMove_SetDestAtSpeed(objBoss, 82, 100, 100);
- }
- @MainLoop{
- bossX = ObjMove_GetX(objBoss);
- bossY = ObjMove_GetY(objBoss);
- yield;
- MainTask;
- task MainTask{
- let wait = 120;
- fireA;
- }
- task fireA{
- while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
- let angleT = 0;
- loop(30){
- CreateShotA1(bossX + 90*cos(angleT), bossY + 90*sin(angleT), 2, angleT, 1, 0);
- angleT += 360/30;
- }
- }
- @Finalize{
- while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){yield;}
- if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
- +ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
- AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
- }
- Obj_Delete(objBoss);
- DeleteShotAll(TYPE_ALL,TYPE_IMMEDIATE);
- SetAutoDeleteObject(true);
- CloseScript(GetOwnScriptID());
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement