Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using DanmakuEngine;
- namespace ExampleDanmaku
- {
- class ParticleSpawner : MovingEntity, IScripted, ICollidable
- {
- Timer enter;
- Timer spawn;
- public ParticleSpawner(int X, int Y, int direction) : base(X, Y, 0)
- {
- this.AddForce(new SimpleVector(100 * direction, 0)); // 100 nach links/rechts, 0 nach unten
- enter = new Timer();
- spawn = new Timer();
- enter.AddEvent(2000, delegate // nach 2 sekunden
- {
- this.ClearForces();
- this.AddForce(new SimpleVector(0, 50)); // stoppen und nach unten bewegen
- spawn.Start(); // den teilchenzyklus starten
- });
- enter.Start();
- spawn.Loop = true;
- spawn.AddEvent(1000, new EventHandler(SpawnAdds)); // alle 100 millisekunden wird die funktion SpawnAdds ausgeführt
- return;
- }
- public void Update(double factor)
- {
- enter.Update(factor);
- spawn.Update(factor);
- }
- private void SpawnAdds(object sender, EventArgs args)
- {
- for (double x = 0; x < Math.PI * 2; x += Math.PI / 20) // schleife die in 40 schritten um einen kompletten kreis geht
- {
- MovingEntity me = new EnemyBullet(X, Y, 0, 4); // neues teilchen an meiner stelle mit dem radius 4
- me.AddForce(new DirectionalVector(x, 100)); // richtungsvektor mit der stärke 100
- World.Spawn(me); // teilchen wird erstellt
- }
- }
- public override byte Flags
- {
- get { return Flag.Hostile; } // ich bin böse und mach ganz groß aua
- }
- public double Radius
- {
- get { return 8; }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement