コード例 #1
0
        public void update(entity e)
        {
            if (Game.i.IsKeyRising(OpenTK.Input.Key.Escape))
            {
                Game.g.run = false;
            }

            if (Game.i.IsKeyFalling(Program.debugInfo))
            {
                showInfo = !showInfo;
            }

            if (Game.doTick(timeBetweenMovements))
            {
                movement = new Vector3();

                if (Game.i.IsKeyHeld(Program.moveUp))
                {
                    movement.y--;
                }

                if (Game.i.IsKeyHeld(Program.moveDown))
                {
                    movement.y++;
                }

                if (Game.i.IsKeyHeld(Program.moveleft))
                {
                    movement.x--;
                }

                if (Game.i.IsKeyHeld(Program.moveRight))
                {
                    movement.x++;
                }

                Vector3 fullMove = correctMove(movement + e.WorldPos);

                cEntityMapper spaceToCheck = EntityMap.e.CheckLocation(fullMove);

                if (spaceToCheck == null || spaceToCheck.worldPos == e.WorldPos)
                {
                    if (fullMove.x > Renderer.windowBottom.x - 1)
                    {
                        Renderer.windowOffset.x++;
                    }

                    if (fullMove.x < Renderer.windowOffset.x)
                    {
                        Renderer.windowOffset.x--;
                    }

                    if (fullMove.y > Renderer.windowBottom.y - 1)
                    {
                        Renderer.windowOffset.y++;
                    }

                    if (fullMove.y < Renderer.windowOffset.y)
                    {
                        Renderer.windowOffset.y--;
                    }

                    e.setPos(fullMove);
                }
            }

            if (showInfo)
            {
                Game.r.messages.Enqueue("The Forest V0.0.1 Used Memory: " + GC.GetTotalMemory(false) / 1048576 + " MB");
                Game.r.messages.Enqueue("@position: " + e.WorldPos.ToString() + Game.w.WorldPosToChunkPos(e.WorldPos));
                Game.r.messages.Enqueue("Update Time: " + Game.lastFrameTime);
                Game.r.messages.Enqueue("Window Offset: " + Renderer.windowOffset.ToString());
                Game.r.messages.Enqueue("World Offset: " + Game.w.worldOffset);
                Game.r.messages.Enqueue("Window Bottom: " + Renderer.windowBottom.ToString());
                Game.r.messages.Enqueue("Window Res: " + Renderer.windowRes.ToString());
            }
        }
コード例 #2
0
 public cPlayerControl(cEntityMapper mapper, int debounceTime)
 {
     movement             = new Vector3();
     entityMapper         = mapper;
     timeBetweenMovements = debounceTime;
 }