Ignore:
Timestamp:
2016-07-07 08:45:30 (3 years ago)
Author:
sieerinn
Message:

Hypystä tehty parempi

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2016/27/ohjaajat/VenienteFragore/VenienteFragore/VenienteFragore/Player.cs

    r7920 r7923  
    33using System.Collections.Generic; 
    44using System.Linq; 
     5using System.Runtime.CompilerServices; 
    56using System.Text; 
    67 
     
    1920        private readonly double crouchHeight; 
    2021        private double walk; 
     22        private bool jumping; 
     23        private double jumpForce; 
    2124 
    2225        public Player(double width, double height) : base(width, height) 
     
    4952            Friction = 0.0; 
    5053        } 
    51          
     54 
     55        public void Jump() 
     56        { 
     57            jumping = true; 
     58 
     59            if (IsGrounded) 
     60                jumpForce = 400; 
     61        } 
     62 
    5263        public override void Update(Time time) 
    5364        { 
    5465            var dt = time.SinceLastUpdate.TotalSeconds; 
    5566 
     67            // Pelaajan kiihdytys. 
    5668            var vel = Velocity.X; 
    57             if (Math.Abs(vel) < 200) 
     69            if (Math.Abs(vel) < 200 || Math.Sign(vel) != Math.Sign(walk)) 
    5870            { 
    5971                vel += walk * 3 * dt; 
     
    6173            Velocity = new Vector(vel, Velocity.Y); 
    6274 
     75            //Hyppy. 
     76            if (jumping && jumpForce > 0.0) 
     77            { 
     78                Velocity = new Vector(Velocity.X, jumpForce); 
     79                jumpForce -= 400 * dt; 
     80            } 
     81            if (Velocity.Y <= 0) 
     82                jumpForce = 0; 
     83 
     84            // Kyykky. 
    6385            HandleCrouch(); 
    6486 
     87            // Liikutetaan kannettu kama päälle. 
    6588            if (Carrying != null) 
    6689            { 
     
    6992            } 
    7093 
     94            // Päivitetään fysiikat. 
    7195            base.Update(time); 
    7296 
     97            // Nollataan jumping ja walk muuttujat. 
     98            if (!jumping) jumpForce = 0.0; 
     99            jumping = false; 
    73100            if (Math.Abs(walk) > 0) 
    74101            { 
     
    76103                Friction = 0.2; 
    77104            } 
    78  
    79105        } 
    80106 
Note: See TracChangeset for help on using the changeset viewer.