Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / props / weapon / ThrowGun.cs
@小李xl 小李xl on 24 Aug 2022 1 KB 架构调整
  1. using Godot;
  2.  
  3. public class ThrowWeapon : ThrowNode
  4. {
  5.  
  6. private bool fristOver = true;
  7.  
  8. public override void _Ready()
  9. {
  10. base._Ready();
  11. ZIndex = 2;
  12. }
  13.  
  14. public override void StartThrow(Vector2 size, Vector2 start, float startHeight, float direction, float xSpeed, float ySpeed, float rotate, Node2D mount)
  15. {
  16. base.StartThrow(size, start, startHeight, direction, xSpeed, ySpeed, rotate, mount);
  17. fristOver = true;
  18. }
  19.  
  20. protected override void OnOver()
  21. {
  22. if (fristOver)
  23. {
  24. fristOver = false;
  25. if (Mount is Weapon gun)
  26. {
  27. gun._FallToGround();
  28. }
  29. }
  30. //如果落地高度不够低, 再抛一次
  31. if (StartYSpeed > 1)
  32. {
  33. StartThrow(Size, GlobalPosition, 0, Direction, XSpeed * 0.8f, StartYSpeed * 0.5f, RotateSpeed * 0.5f, null);
  34. }
  35. else //结束
  36. {
  37. base.OnOver();
  38. }
  39. }
  40. protected override void OnMaxHeight(float height)
  41. {
  42. ZIndex = 0;
  43. }
  44. }