예제 #1
0
        public override void Update(UltravioletTime time)
        {
            if (position.Y >= borders.Y - scale)
            {
                acceleration = -_acc;
            }
            else if (position.Y <= borders.X + scale)
            {
                acceleration = _acc;
            }
            else
            {
                acceleration = 0;
            }

            position.Y += Resources.deltaTime * velocity; // move
            velocity   += Resources.deltaTime * acceleration;

            if (velocity > _v)
            {
                velocity = _v;
            }
            if (velocity < -_v)
            {
                velocity = -_v;
            }

            hitbox = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);

            if (Player.getPlayer().hitbox().intersectsWith(hitbox))
            {
                Player.getPlayer().kill();
            }
        }
예제 #2
0
 public Collectible(float x, float y, int index)
 {
     this.index = index;
     position   = new Vector2f(x, y) * scale;
     texture    = Resources.ContentManager.Load <Sprite>(GlobalSpriteID.collectables);
     hitbox     = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);
 }
예제 #3
0
 public Npc(float x, float y, string[] messages, string texture)
 {
     _texture      = Resources.ContentManager.Load <Sprite>(GlobalSpriteID.npcs);
     this.position = new Vector2f(x * scale, y * scale);
     this.texture  = texture;
     this.messages = messages;
     hitbox        = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);
 }
예제 #4
0
 public Circular(int x, int y, float r, float a, float speed) : base(x, y)
 {
     frame    = "testenemy";
     middle   = position + new Vector2f(scale / 2, scale / 2);
     radius   = r * 48;
     angle    = a;
     _v      *= speed;
     position = Maths.ToCartesian(middle, angle, radius);
     hitbox   = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);
 }
예제 #5
0
        public override void Update(UltravioletTime time)
        {
            frameCounter += Resources.deltaTime;
            switch (state)
            {
            case 0:
                wait(); break;

            case 1:
                move(); break;

            default:
                break;
            }

            hitbox = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);
            if (Player.getPlayer().hitbox().intersectsWith(hitbox))
            {
                Player.getPlayer().kill();
            }
        }
예제 #6
0
 public Stationary(int x, int y) : base(x, y)
 {
     frame  = "testenemy";
     hitbox = new util.Circle(position + new Vector2f(scale / 2, scale / 2), scale / 2);
 }