1
0

general.gml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. function check_hitstop()
  2. {
  3. if global.hitstop > 0
  4. return true;
  5. else
  6. return false;
  7. }
  8. /// @desc 优雅地检测该实例的sprite当前动画是否到达最后一帧
  9. function animation_end()
  10. {
  11. if animation_spd == 0
  12. return false;
  13. return (image_index + animation_spd >= image_number);
  14. }
  15. /// @desc 优雅地将该实例的sprite替换为给定值,并将sprite_index归零
  16. /// @param {Asset.GMSprite} _sprite 将要替换为的sprite
  17. function set_sprite(_sprite)
  18. {
  19. if sprite_index != _sprite
  20. {
  21. sprite_index = _sprite;
  22. image_index = 0;
  23. }
  24. }
  25. function camera_snap()
  26. {
  27. oCamera.x = oCamera.follow.x;
  28. oCamera.y = oCamera.follow.y;
  29. }
  30. /// @desc 触发屏幕震动
  31. /// @param {Real} _magnitude 以像素计算的震动强度
  32. // @param {Real} _frames 以帧计算的持续时间
  33. function screen_shake(_magnitude)//, _duration)
  34. {
  35. // 只有当新的震动比当前的更强时才覆盖
  36. with(oCamera)
  37. {
  38. if _magnitude > shake_magnitude
  39. {
  40. shake_magnitude = _magnitude;
  41. //shake_duration = _duration;
  42. }
  43. }
  44. }
  45. function player_add_INK(_amount)
  46. {
  47. if global.playerINK + _amount >
  48. global.save_data.player.maxINK
  49. global.playerINK = global.save_data.player.maxINK;
  50. else
  51. global.playerINK += _amount;
  52. oUI.flash_timer = 10;
  53. oUI.flash_duration = 10;
  54. }
  55. function player_add_HP(_amount)
  56. {
  57. if global.playerHP + _amount >
  58. global.save_data.player.maxHP
  59. global.playerHP = global.save_data.player.maxHP;
  60. else
  61. global.playerHP += _amount;
  62. }
  63. function to_gui(_wx, _wy)
  64. {
  65. var _cam = view_camera[0];
  66. var _cam_x = camera_get_view_x(_cam);
  67. var _cam_y = camera_get_view_y(_cam);
  68. var _cam_w = camera_get_view_width(_cam);
  69. var _cam_h = camera_get_view_height(_cam);
  70. var _gui_w = display_get_gui_width();
  71. var _gui_h = display_get_gui_height();
  72. return {
  73. x: (_wx - _cam_x) / _cam_w * _gui_w,
  74. y: (_wy - _cam_y) / _cam_h * _gui_h
  75. };
  76. }