Beispiel #1
0
        static void Start()
        {
            GameObject floor = new GameObject();

            floor.transform.localScale = new Vector2(20, 1);
            floor.transform.position   = new Vector2(2, 25);

            floor.sprite.ascii     = GroundSprite;
            floor.sprite.collision = ASCIISprite.GenerateCollision(GroundSprite);

            GameObject.Instantiate(floor);

            GameObject player = new GameObject();

            player.transform.position = new Vector2(3, 3);

            player.sprite.ascii     = PlayerSprite;
            player.sprite.collision = ASCIISprite.GenerateCollision(PlayerSprite);

            player.ActivateRigidbody();
            player.rigidbody.mass = Rigidbody.CalculateMass(player.sprite.collision);
            player.rigidbody.UpdateCenterOfMass(player.sprite);

            GameObject.Instantiate(player);
        }
Beispiel #2
0
        internal Vector2 CalculateCenterOfMass(ASCIISprite sprite)
        {
            int totalX = 0, totalY = 0;
            int points = 0;

            for (int y = 0; y < sprite.collision.GetLength(0); y++)
            {
                for (int x = 0; x < sprite.collision.GetLength(1); x++)
                {
                    if (sprite.collision[y, x])
                    {
                        totalX += x;
                        totalY += y;
                        points++;
                    }
                }
            }

            return(new Vector2(points != 0 ? totalX / points : 0, points != 0 ? totalY / points : 0));
        }
Beispiel #3
0
        static void Start()
        {
            //GameObject obj = new GameObject();
            player1GameObject = new GameObject();
            player1GameObject.transform.position = new Vector2(3, 3);
            player1GameObject.sprite.ascii       = PlayerSprite;
            player1GameObject.sprite.collision   = ASCIISprite.GenerateCollision(player1GameObject.sprite.ascii);

            //Game.Objects.Add("Player1", player1obj);
            bulletPrefab = new GameObject();
            bulletPrefab.sprite.ascii = BulletSprite;
            //bulletPrefab.sprite.collision = ASCIISprite.GenerateCollision(bulletPrefab.sprite.draw);
            bulletPrefab.name = "Bullet";

            wallGameObject = new GameObject();
            wallGameObject.transform.position     = new Vector2(30, 7);
            wallGameObject.sprite.ascii           = WallSprite;
            wallGameObject.sprite.collision       = ASCIISprite.GenerateCollision(WallSprite);
            wallGameObject.events.OnCollisionStay = WallCollider;

            player1GameObject = GameObject.Instantiate(player1GameObject);
            wallGameObject    = GameObject.Instantiate(wallGameObject);
        }
Beispiel #4
0
        // Called every frame update
        static void Update()
        {
            bool changed = false;

            if (Input.GetKey(ConsoleKey.D))
            {
                //player1GameObject.transform.position = new Vector2(player1GameObject.transform.position.x + (1 * PlayerSpeed), player1GameObject.transform.position.y);
                player1GameObject.transform.Translate(new Vector2(PlayerSpeed * HorizontalSpeedMultiplier, 0));

                changed = true;
            }
            if (Input.GetKey(ConsoleKey.W))
            {
                //player1GameObject.transform.position = new Vector2(player1GameObject.transform.position.x, player1GameObject.transform.position.y - (1 * PlayerSpeed));
                player1GameObject.transform.Translate(new Vector2(0, -PlayerSpeed));

                changed = true;
            }
            if (Input.GetKey(ConsoleKey.S))
            {
                //player1GameObject.transform.position = new Vector2(player1GameObject.transform.position.x, player1GameObject.transform.position.y + (1 * PlayerSpeed));
                player1GameObject.transform.Translate(new Vector2(0, PlayerSpeed));

                changed = true;
            }
            if (Input.GetKey(ConsoleKey.A))
            {
                //player1GameObject.transform.position = new Vector2(player1GameObject.transform.position.x - (1 * PlayerSpeed), player1GameObject.transform.position.y);
                player1GameObject.transform.Translate(new Vector2(-PlayerSpeed * HorizontalSpeedMultiplier, 0));

                changed = true;
            }
            if (Input.GetKeyDown(ConsoleKey.Spacebar))
            {
                //GameObject newBullet = bulletobj.Clone();
                GameObject newBullet = GameObject.Instantiate(bulletPrefab.Clone());

                newBullet.transform.position      = player1GameObject.transform.position + new Vector2(1, 1);
                newBullet.rigidbody.velocity      = new Vector2(BulletSpeed, 0.0f);
                newBullet.events.OnCollisionStay  = new Action <int>(BulletOnCollisionStay);
                newBullet.events.OnCollisionEnter = new Action <int>(BulletOnCollisionStay);
                newBullet.Update();

                GameObject.Destroy(newBullet, 2);

                Debug.Log("Fired weapon..");
            }
            if (Input.GetKeyDown(ConsoleKey.D1))
            {
                bulletPrefab.sprite.ascii     = BulletSprite;
                bulletPrefab.sprite.collision = ASCIISprite.GenerateCollision(BulletSprite);
                Debug.LogWarning("Selected [Bullet]");
            }
            if (Input.GetKeyDown(ConsoleKey.D2))
            {
                bulletPrefab.sprite.ascii     = SquareSprite;
                bulletPrefab.sprite.collision = ASCIISprite.GenerateCollision(SquareSprite);
                Debug.LogWarning("Selected [Square]");
            }
            if (Input.GetKeyDown(ConsoleKey.OemPeriod))
            {
                Debug.RefreshScreen();
            }
            if (Input.GetKeyDown(ConsoleKey.Escape))
            {
                Game.Exit();
            }


            if (changed)
            {
                player1GameObject.Update();
            }
        }
Beispiel #5
0
 public void UpdateCenterOfMass(ASCIISprite sprite)
 {
     centerOfMass = CalculateCenterOfMass(sprite);
 }