Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.89 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using DanmakuEngine;
  6.  
  7. namespace ExampleDanmaku
  8. {
  9.     class ParticleSpawner : MovingEntity, IScripted, ICollidable
  10.     {
  11.         Timer enter;
  12.         Timer spawn;
  13.  
  14.         public ParticleSpawner(int X, int Y, int direction) : base(X, Y, 0)
  15.         {
  16.             this.AddForce(new SimpleVector(100 * direction, 0)); // 100 nach links/rechts, 0 nach unten
  17.  
  18.             enter = new Timer();
  19.             spawn = new Timer();
  20.  
  21.             enter.AddEvent(2000, delegate // nach 2 sekunden
  22.             {
  23.                 this.ClearForces();
  24.                 this.AddForce(new SimpleVector(0, 50)); // stoppen und nach unten bewegen
  25.                 spawn.Start(); // den teilchenzyklus starten
  26.             });
  27.             enter.Start();
  28.  
  29.             spawn.Loop = true;
  30.             spawn.AddEvent(1000, new EventHandler(SpawnAdds)); // alle 100 millisekunden wird die funktion SpawnAdds ausgeführt
  31.  
  32.             return;
  33.         }
  34.  
  35.         public void Update(double factor)
  36.         {
  37.             enter.Update(factor);
  38.             spawn.Update(factor);
  39.         }
  40.  
  41.         private void SpawnAdds(object sender, EventArgs args)
  42.         {
  43.             for (double x = 0; x < Math.PI * 2; x += Math.PI / 20) // schleife die in 40 schritten um einen kompletten kreis geht
  44.             {
  45.                 MovingEntity me = new EnemyBullet(X, Y, 0, 4); // neues teilchen an meiner stelle mit dem radius 4
  46.                 me.AddForce(new DirectionalVector(x, 100)); // richtungsvektor mit der stärke 100
  47.                 World.Spawn(me); // teilchen wird erstellt
  48.             }
  49.         }
  50.  
  51.         public override byte Flags
  52.         {
  53.             get { return Flag.Hostile; } // ich bin böse und mach ganz groß aua
  54.         }
  55.  
  56.         public double Radius
  57.         {
  58.             get { return 8; }
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement