Update() 개인적인 메소드

private Update ( ) : void
리턴 void
예제 #1
0
            protected static bool Prefix(ref Tool __instance, Farmer who)
            {
                if (!Utility.ShouldCharge(__instance))
                {
                    return(true);                    // run original logic
                }
                who.Halt();
                __instance.Update(who.FacingDirection, 0, who);
                switch (who.FacingDirection)
                {
                case 0:
                    who.FarmerSprite.setCurrentFrame(176);
                    __instance.Update(0, 0, who);
                    break;

                case 1:
                    who.FarmerSprite.setCurrentFrame(168);
                    __instance.Update(1, 0, who);
                    break;

                case 2:
                    who.FarmerSprite.setCurrentFrame(160);
                    __instance.Update(2, 0, who);
                    break;

                case 3:
                    who.FarmerSprite.setCurrentFrame(184);
                    __instance.Update(3, 0, who);
                    break;
                }

                return(false);                // don't run original logic
            }
예제 #2
0
    void Update()
    {
        bool is_default_tool_set = m_active_tool == m_default_tool;

        if (is_default_tool_set)
        {
            foreach (var tool in m_tools)
            {
                if (Input.GetKey(tool.GetKeyCode()) && tool.TryStartUsing())
                {
                    SetActiveTool(tool);
                    break;
                }
            }
        }
        else if (m_active_tool != null)
        {
            if (!Input.GetKey(m_active_tool.GetKeyCode()))
            {
                SetActiveTool(m_default_tool);
            }
        }

        if (m_active_tool != null)
        {
            m_active_tool.Update(Time.deltaTime);
        }

#if UNITY_EDITOR
        if (Input.GetKeyDown(KeyCode.T))
        {
            if (CameraRayCast(out var hit))
            {
                float teleport_vertical_offset = 1f;
                GetComponent <IL3DN.IL3DN_SimpleFPSController>().Teleport(hit.point + new Vector3(0, teleport_vertical_offset, 0));
            }
        }
#endif

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (Application.isEditor)
            {
            }
            else
            {
                var camera = Game.Instance.GetCamera();
                MainMenu.Instance.m_pause_screen.SetTransforms(transform.localPosition, transform.localRotation, camera.transform.localPosition, camera.transform.localRotation);

                Game.Instance.DestroyAvatar();
                MainMenu.Instance.gameObject.SetActive(true);
                MainMenu.Instance.GetComponent <CanvasGroup>().alpha = 1f;
                MainMenu.Instance.TransitionScreens(null, MainMenu.Instance.m_pause_screen.gameObject);
            }
        }
    }
예제 #3
0
 public override void Update(GameTime gameTime)
 {
     base.Update(gameTime);
     _objectDragger.Update(gameTime);
     // If this were more advanced, I might consider a chain of command design pattern?
     if (!_objectDragger.Dragging)
     {
         _currentTool.Update(gameTime);
     }
 }
 private void Update()
 {
     _currentTool.Update(this);
 }
예제 #5
0
 /// <summary>
 /// updates the player and all of its children.
 /// </summary>
 /// <param name="time"></param>
 internal override void Update(GameTime time)
 {
     tool.Update(time);
     base.Update(time);
 }
 public override void _Process(float delta)
 {
     _currentTool.Update(this);
 }
예제 #7
0
        public override void Update()
        {
            oneOverScale = 1f / CameraScale;
            #region MouseControl
            OldMousePos = MousePos;
            MousePos.X  = Game1.game.ms.X - Game1.HalfWidth;
            MousePos.Y  = Game1.game.ms.Y - Game1.HalfHeight;
            MousePos   *= oneOverScale;
            MousePos   += cameraCenter;
            bool    clampM = true;
            Vector2 cTo    = Vector2.Zero;
            if (verticalMenu.ClampVertex)
            {
                #region VertexClamp
                float dist = ClampDistance * oneOverScale;
                dist *= dist;
                float toDist = ClampDistance;
                for (int i = 0; i < shapes.Count; i++)
                {
                    for (int c = 0; c < shapes[i].lines.Length; c++)
                    {
                        Line  l = shapes[i].lines[c];
                        float d = Vector2.DistanceSquared(l.from, MousePos);
                        if (d < toDist)
                        {
                            cTo    = l.from;
                            toDist = d;
                            clampM = false;
                        }

                        d = Vector2.DistanceSquared(l.to, MousePos);
                        if (d < toDist)
                        {
                            cTo    = l.to;
                            toDist = d;
                            clampM = false;
                        }
                    }
                }

                for (int c = 0; c < bounds.lines.Length; c++)
                {
                    Line  l = bounds.lines[c];
                    float d = Vector2.DistanceSquared(l.from, MousePos);
                    if (d < toDist)
                    {
                        cTo    = l.from;
                        toDist = d;
                        clampM = false;
                    }

                    d = Vector2.DistanceSquared(l.to, MousePos);
                    if (d < toDist)
                    {
                        cTo    = l.to;
                        toDist = d;
                        clampM = false;
                    }
                }

                #endregion
            }
            if (clampM)
            {
                if (verticalMenu.ClampMouse)
                {
                    int hg  = gridSizeSeparator / 2;
                    int val = (int)MousePos.X;
                    val       += MousePos.X < 0 ? -hg : hg;
                    MousePos.X = (val) / gridSizeSeparator * gridSizeSeparator;

                    val        = (int)MousePos.Y;
                    val       += MousePos.Y < 0 ? -hg : hg;
                    MousePos.Y = (val) / gridSizeSeparator * gridSizeSeparator;
                }
            }
            else
            {
                MousePos = cTo;
            }
            #endregion

            menu.Update();

            #region ClickRegister
            if (Game1.game.MouseLeftClicked())
            {
                Vector2 mp = new Vector2(Game1.game.ms.X, Game1.game.ms.Y);
                if (mp.Y > menuOffset.Translation.Y)
                {
                    mp.Y -= menuOffset.Translation.Y;
                    menu.OnClick(mp);
                }
                else if (mp.X > verticalMenuOffset.Translation.X)
                {
                    mp.X -= verticalMenuOffset.Translation.X;
                    verticalMenu.OnClick(mp);
                }
                else if (currentTool != null)
                {
                    currentTool.OnClick(MousePos);
                }
            }
            #endregion

            if (currentTool != null)
            {
                if (Game1.game.KeyJustClicked(Keys.Escape))
                {
                    SetTool(null);
                }
                else
                {
                    currentTool.Update();
                }
            }

            #region CamControls
            if (Game1.game.ms.MiddleButton == ButtonState.Pressed)
            {
                int delt = Game1.game.ms.X - Game1.game.oldms.X;
                cameraCenter.X -= delt * (1f / CameraScale);

                delt            = Game1.game.ms.Y - Game1.game.oldms.Y;
                cameraCenter.Y -= delt * (1f / CameraScale);
                RecalcCameraMatrix();

                int mx = Game1.game.ms.X;
                if (mx <= 0)
                {
                    mx += Game1.ScreenWidth;
                }
                else if (mx >= Game1.ScreenWidth - 1)
                {
                    mx -= Game1.ScreenWidth;
                }
                int my = Game1.game.ms.Y;
                if (my <= 0)
                {
                    my += Game1.ScreenHeight;
                }
                else if (my >= Game1.ScreenHeight - 1)
                {
                    my -= Game1.ScreenHeight;
                }

                if (mx != Game1.game.ms.X || my != Game1.game.ms.Y)
                {
                    Mouse.SetPosition(mx, my);
                    Game1.game.ms = Mouse.GetState();
                }
            }

            if (Game1.game.KeyJustClicked(Keys.Home))
            {
                CenterCamera();
            }

            if (Game1.game.ms.ScrollWheelValue != Game1.game.oldms.ScrollWheelValue)
            {
                CameraScale += (Game1.game.ms.ScrollWheelValue - Game1.game.oldms.ScrollWheelValue) / 600f;
            }
            #endregion
        }