Ejemplo n.º 1
0
 public void OnDrawSprite(QSpriteRenderer spriteRenderer)
 {
     if (QVec.Distance(Position, Camera.Position) < Scene.Window.Width)
     {
         spriteRenderer.Draw(sprite, Transform);
     }
 }
Ejemplo n.º 2
0
 public override void OnDrawSprite(QSpriteRenderer renderer)
 {
     if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width)
     {
         renderer.Draw(Sprite, Transform);
     }
 }
Ejemplo n.º 3
0
        IEnumerator SnakeMove()
        {
            LastPosition = Transform.Position;
            switch (CurrentDir)
            {
            case SnakeDirection.Up:
                Transform.Position += QVec.Up * Movement;
                break;

            case SnakeDirection.Down:
                Transform.Position += QVec.Down * Movement;
                break;

            case SnakeDirection.Left:
                Transform.Position += QVec.Left * Movement;
                break;

            case SnakeDirection.Right:
                Transform.Position += QVec.Right * Movement;
                break;

            default:
                break;
            }
            yield return(QCoroutine.WaitForSeconds(snakeMoveSpeed));

            Coroutine.Start(SnakeMove());
        }
Ejemplo n.º 4
0
        public void OnDrawSprite(QSpriteRenderer renderer)
        {
            QVec temp;

            Sprite.Color = QColor.DarkKhaki;
            for (int i = 0; i < OutsideTiles.Count; ++i)
            {
                temp = OutsideTiles[i].Position;
                if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width)
                {
                    Sprite.Source = OutsideTiles[i].Source;
                    renderer.Draw(Sprite, Transform, temp);
                }
            }
            Sprite.Color = QColor.DarkSlateGray;
            for (int i = 0; i < InsideTiles.Count; i++)
            {
                temp = InsideTiles[i].Position;
                if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width)
                {
                    Sprite.Source = InsideTiles[i].Source;
                    renderer.Draw(Sprite, Transform, temp);
                }
            }
        }
Ejemplo n.º 5
0
 public override void OnDrawSprite(QSpriteRenderer spriteRenderer)
 {
     if (CheckDistance || QVec.Distance(Position, Camera.Position) < 1000)
     {
         spriteRenderer.Draw(sprite, Transform);
     }
 }
Ejemplo n.º 6
0
 void CheckVelocity()
 {
     Rigibody.LinearVelocity = QVec.Clamp(
         Rigibody.LinearVelocity,
         new QVec(-MaxVelocity, -MaxVelocity),
         new QVec(MaxVelocity, MaxVelocity * 2f)
         );
 }
Ejemplo n.º 7
0
        public override void OnUpdate(QTime time)
        {
            var s = Speed;

            if (Health < 1)
            {
                Scene.Destroy(this);
            }
            damageAccum += time.Delta;
            if (damageAccum > 0.5f)
            {
                CanTakeDamage = true;
                damageAccum   = 0;
            }
            if (Health < MaxHealth)
            {
                s = Speed * 2;
            }
            if (Health == 1)
            {
                s = Speed * 3;
            }
            if (QVec.Distance(p.Transform.Position, Transform.Position) < 200)
            {
                //				if(p.Transform.Position.X > Transform.Position.X)
                //					Sprite.Effect = SpriteEffects.FlipHorizontally;
                //				else
                //					Sprite.Effect = SpriteEffects.Non
                Transform.Position = QVec.MoveTowards(Transform.Position, p.Transform.Position) * time.Delta * s;
                Sprite.Source      = BatFlap.Play(time.Delta);
            }
            else if (QVec.Distance(p.Transform.Position, Transform.Position) < 800 && p.Transform.Position.Y > Transform.Position.Y)
            {
                //				if(p.Transform.Position.X > Transform.Position.X)
                //					Sprite.Effect = SpriteEffects.FlipHorizontally;
                //				else
                //					Sprite.Effect = SpriteEffects.None;
                Transform.Position += QVec.MoveTowards(Transform.Position, p.Transform.Position) * time.Delta * s;
                Sprite.Source       = BatFlap.Play(time.Delta);
            }
            else
            {
                if (QVec.Distance(Transform.Position, spawnerPosition) > 1)
                {
                    //					if(spawnerPosition.X > Transform.Position.X)
                    //						Sprite.Effect = SpriteEffects.FlipHorizontally;
                    //					else
                    //						Sprite.Effect = SpriteEffects.None;
                    Transform.Position += QVec.MoveTowards(Transform.Position, spawnerPosition) * time.Delta * Speed;
                    Sprite.Source       = BatFlap.Play(time.Delta);
                }
                else
                {
                    //					Sprite.Effect = SpriteEffects.FlipVertically;
                    Sprite.Source = Frames[30];
                }
            }
        }
Ejemplo n.º 8
0
 void MoveCam(QTime time)
 {
     if (QVec.Distance(Transform.Position, Camera.Position) > 10)
     {
         Rigibody.Awake = true;
         Camera.Lerp(Transform.Position, 4, time.Delta);
         //MainCamera.MoveTo(Position, 500 * time.Delta);
     }
 }
Ejemplo n.º 9
0
 public void OnDrawSprite(QSpriteRenderer spriteRenderer)
 {
     if (QVec.Distance(Position, Camera.Position) < Scene.Window.Width)
     {
         spriteRenderer.Draw(sprite, Transform);
         if (mushroomSprite != null)
         {
             spriteRenderer.Draw(mushroomSprite, Transform, Position + new QVec(0, -48));
         }
     }
 }
 public void OnUpdate(QTime time)
 {
     if (p.DirectionState == PlayerDirections.Left)
     {
         Position = new QVec(-20, 0) + p.Position;
     }
     else
     {
         Position = new QVec(20, 0) + p.Position;
     }
 }
Ejemplo n.º 11
0
 public override void OnDrawSprite(QSpriteRenderer renderer)
 {
     if (QVec.Distance(Transform.Position, Camera.Position) < Scene.Window.Width)
     {
         //TODO
         Sprite.Source = Mushroom;
         //DrawSource(renderer, Position + mushPos); //FIX DIS
         renderer.Draw(Sprite, Transform, Transform.Position + mushPos);
         Sprite.Source = Tile;
         //DrawSource(renderer);
         renderer.Draw(Sprite, Transform);
     }
 }
Ejemplo n.º 12
0
        public void OnDrawGui(QGuiRenderer renderer)
        {
            QVec pos = new QVec(50, 50);

            for (int i = 0; i < p.Health; i++)
            {
                renderer.DrawImage(GuiHeart, Transform, pos);
                pos += new QVec(50, 0);
            }
            pos = new QVec(50 * p.MaxHealth, 50);
            for (int i = p.Health; i < p.MaxHealth; ++i)
            {
                renderer.DrawImage(GuiEmptyHeart, Transform, pos);
                pos -= new QVec(50, 0);
            }
        }
Ejemplo n.º 13
0
        public void OnDrawGui(QGuiRenderer renderer)
        {
            QVec pos = new QVec(50, 50);

            Image.Source = p.HearthSource;
            for (int i = 0; i < p.Health; i++)
            {
                //DrawSource(renderer, pos);
                renderer.DrawImage(Image, Transform, pos);
                pos += new QVec(50, 0);
            }
            pos          = new QVec(50 * p.HealthMax, 50);
            Image.Source = p.EmptyHealthSource;
            for (int i = p.Health; i < p.HealthMax; ++i)
            {
                //DrawSource(renderer, pos);
                renderer.DrawImage(Image, Transform, pos);
                pos -= new QVec(50, 0);
            }
        }
Ejemplo n.º 14
0
        public override void OnStart(QGetContent get)
        {
            spawnerPosition = Transform.Position;

            Health = MaxHealth;

            Frames = Scene.Atlas["BryanStuff1"].Split(32, 32);

            player = GetBehavior <Player>("Player");

            Sprite        = new QSprite(this, Frames[28]);
            Sprite.Scale  = new QVec(4);
            Sprite.Effect = QRenderEffects.FlipVertically;
            Sprite.Source = Frames[30];

            BatFlap = new QAnimation(Frames, 0.1f, 28, 30);

            body = Physics.CreateRectangle(this, Sprite.Width / 3f, Sprite.Height / 3f, 5);
            body.IgnoreGravity = true;
            body.FixedRotation = true;
            body.LinearDamping = 10f;
        }
Ejemplo n.º 15
0
        public override void OnStart(QGetContent content)
        {
            Health = MaxHealth;

            Frames = Scene.MegaTexture["BryanStuff1"].Split(32, 32);

            bs = GetComponent <BatSpawner>(spawnerId);
            p  = GetComponent <Player>("Player");

            Sprite          = new QSprite(this, Frames[28]);
            Transform.Scale = new QVec(4);
            Sprite.Origin   = new QVec(16);

            BatFlap = new QAnimation(Frames, 0.1f, 28, 30);

            spawnerPosition = Transform.Position = bs.Transform.Position;

            body = World.CreateRectangle(this, 13 * Transform.Scale.X, 13 * Transform.Scale.Y, 1f, Transform.Position, 0);
            body.IgnoreGravity = true;
            body.FixedRotation = true;
            body.LinearDamping = 10f;
        }
        public void OnDrawSprite(QSpriteRenderer renderer)
        {
            //copy here so less references
            var renderWidth = Scene.Window.Width;

            Sprite.Color = QColor.White;
            var cpos = Camera.Position;

            for (int i = 0; i < BackgroundTiles.Count; ++i)
            {
                if (QVec.Distance(BackgroundTiles[i].Position, cpos) < renderWidth)
                {
                    renderer.Draw(BackgroundTiles[i].Source, Sprite, Transform, BackgroundTiles[i].Position);
                }
            }
            Sprite.Color *= 0.3f;
            for (int i = 0; i < LevelTiles.Count; ++i)
            {
                if (QVec.Distance(LevelTiles[i].Position, cpos) < renderWidth)
                {
                    renderer.Draw(LevelTiles[i].Source, Sprite, Transform, LevelTiles[i].Position);
                }
            }
            //quad tree rendering
//
//
//			for(int i = 0; i < tiles.Count; i++)
//			{
//				List<QRect> t = new List<QRect>();
//				quad.Retrieve(t, new QRect(tiles[i].Position, new QVec(64, 64)));
//				//quad.Retrieve(t, tiles[i].Source);
//
//				for(int j = 0; j < t.Count; j++)
//				{
//					renderer.Draw(tiles[i].Source, Sprite, Transform, tiles[i].Position);
//				}
//			}
        }
Ejemplo n.º 17
0
 public void Flick(QVec flickDirection)
 {
     body?.ApplyForce(flickDirection);
 }
Ejemplo n.º 18
0
        void Move(QTime time)
        {
            bool run = false;

            Attacking = false;
            var  speed = Speed;
            QVec temp  = QVec.Zero;

            accumiFrames  += time.Delta;
            AttackRecover += time.Delta;
            if (accumiFrames > MaxiFrames)
            {
                canTakeDamage = true;
                accumiFrames  = 0;
            }

            if (Health < 1)
            {
                Scene.ResetScene();
            }

            if (Input.IsKeyDown(QKeys.Escape))
            {
                ExitGame();
            }

            if (Input.IsKeyHeld(QKeys.LeftShift) || Input.IsKeyHeld(QKeys.RightShift))
            {
                run   = true;
                speed = RunSpeed;
            }

            if (Input.IsKeyHeld(QKeys.D) && MoveRight)
            {
                Current          = Right;
                temp            += new QVec(1, 0);
                MoveLeft         = true;
                CurrentDirection = true;
            }

            if (Input.IsKeyHeld(QKeys.A) && MoveLeft)
            {
                Current          = Left;
                temp            += new QVec(-1, 0);
                MoveRight        = true;
                CurrentDirection = false;
            }

            if (Input.IsKeyUp(QKeys.D))
            {
                Sprite.Source = Frames[0];
            }

            if (Input.IsKeyUp(QKeys.A))
            {
                Sprite.Source = Frames[2];
            }

            if (Input.IsKeyDown(QKeys.R))
            {
                Camera.Zoom = 100;
                //ChangeScene(SceneName);
            }

            if (Input.IsKeyHeld(QKeys.Space) && CanJump || Input.IsKeyHeld(QKeys.W) && CanJump)
            {
                //-y = up, y = down
                //applying force is more buggy than just setting the velocity
                if (Rigibody.LinearVelocity.Y < 2f)
                {
                    MoveLeft  = true;
                    MoveRight = true;
                    Rigibody.LinearVelocity += new QVec(0, -Velocity) * time.Delta * 1000;
                }
                TimeInAir += time.Delta;
            }

            if (Input.IsKeyUp(QKeys.Space))
            {
                TimeInAir = AirTime;
            }

            if (Input.IsMouseScrolledUp())
            {
                Camera.Zoom += Camera.Zoom * 0.1f;
                Console.WriteLine($"Zoom: {Camera.Zoom}");
            }

            if (Input.IsMouseScrolledDown())
            {
                Camera.Zoom -= Camera.Zoom * 0.1f;
                Console.WriteLine($"Zoom: {Camera.Zoom}");
            }

            if (temp != QVec.Zero)
            {
//				Sprite.Effect = SpriteEffects.None;
                Transform.Position += temp.Normalize() * speed * time.Delta;
                Current.Multiplyer  = run ? 2 : 1;
                Sprite.Source       = Current.Play(time.Delta);
            }

            if (Input.IsKeyHeld(QKeys.J) && AttackRecover > MaxAttackRecover)
            {
                StateOfThePlayer = PlayerState.Attacking;
                if (CurrentDirection)
                {
                    Current = AttackRight;
                }
                else
                {
                    Current = AttackLeft;
                }
                Current.Reset();
            }
        }
Ejemplo n.º 19
0
 public Block(int w, int h, QVec direction)
 {
     Width  = w;
     Height = h;
     DirectionOfMovement = direction;
 }
Ejemplo n.º 20
0
 public Grass(QVec pos) : base("Grass")
 {
     topos = pos;
 }
Ejemplo n.º 21
0
 public Platform(QVec s)
 {
     toSize = s;
 }
Ejemplo n.º 22
0
 public Ball(int diameter, QVec direction)
 {
     Radius = diameter / 2;
     DirectionOfMovement = direction;
 }
Ejemplo n.º 23
0
        public override void OnUpdate(QTime time)
        {
            var s = Speed;

            if (Health < 1)
            {
                Scene.Destroy(this);
            }
            if (!CanTakeDamage && Accumulator.CheckAccum("BatCanTakeDamage", 0.2f, time))
            {
                CanTakeDamage = true;
            }
            if (Health < MaxHealth)
            {
                s = Speed * 2;
            }
            if (Health == 1)
            {
                s = Speed * 3;
            }
            var distanceFromPlayer = QVec.Distance(player.Transform.Position, Transform.Position);

            if (player.Position.Y > Position.Y)
            {
                WillAttack = true;
            }
            if (!WillAttack)
            {
                return;
            }
            //flies to player
            if (distanceFromPlayer < 800)            // && player.Transform.Position.Y > Transform.Position.Y)
            {
                if (player.Position.X > Position.X)
                {
                    Sprite.Effect = QRenderEffects.FlipHorizontally;
                }
                else
                {
                    Sprite.Effect = QRenderEffects.None;
                }
                Position     += QVec.MoveTowards(Position, player.Position) * time.Delta * s;
                Sprite.Source = BatFlap.Play(time.Delta);
            }
            else
            {
                //runs back to spawn
                if (QVec.Distance(Transform.Position, spawnerPosition) > 1)
                {
                    if (spawnerPosition.X > Position.X)
                    {
                        Sprite.Effect = QRenderEffects.FlipHorizontally;
                    }
                    else
                    {
                        Sprite.Effect = QRenderEffects.None;
                    }
                    Position     += QVec.MoveTowards(Position, spawnerPosition) * time.Delta * Speed;
                    Sprite.Source = BatFlap.Play(time.Delta);
                }
                else if (distanceFromPlayer > 1000)
                {
                    //closes eyes
                    Sprite.Effect = QRenderEffects.FlipVertically;
                    Sprite.Source = Frames[30];
                }
                else if (distanceFromPlayer < 1000)
                {
                    //opens eyes
                    Sprite.Effect = QRenderEffects.FlipVertically;
                    Sprite.Source = Frames[28];
                }
            }
        }