Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 

95 Zeilen
1.6 KiB

  1. define([
  2. 'js/rendering/renderer'
  3. ], function (
  4. renderer
  5. ) {
  6. return {
  7. type: 'animation',
  8. frames: 4,
  9. frameDelay: 4,
  10. sheet: 'attacks',
  11. row: null,
  12. col: null,
  13. loop: 1,
  14. loopCounter: 0,
  15. frame: 0,
  16. frameDelayCd: 0,
  17. oldSheetName: null,
  18. oldCell: null,
  19. oldTexture: null,
  20. init: function (blueprint) {
  21. const { template, frameDelay, obj: { sheetName, cell, sprite } } = this;
  22. if (!sprite)
  23. return true;
  24. this.oldSheetName = sheetName;
  25. this.oldCell = cell;
  26. this.oldTexture = sprite.texture;
  27. this.frame = 0;
  28. this.frameDelayCd = 0;
  29. for (let p in template)
  30. this[p] = template[p];
  31. this.frameDelayCd = frameDelay;
  32. this.setSprite();
  33. },
  34. setSprite: function () {
  35. renderer.setSprite({
  36. sprite: this.obj.sprite,
  37. cell: (this.row * 8) + this.col + this.frame,
  38. sheetName: this.spritesheet || this.sheet
  39. });
  40. },
  41. update: function () {
  42. if (this.frameDelayCd > 0)
  43. this.frameDelayCd--;
  44. else {
  45. this.frameDelayCd = this.frameDelay;
  46. this.frame++;
  47. if (this.frame === this.frames) {
  48. this.loopCounter++;
  49. if (this.loopCounter === this.loop) {
  50. this.destroyed = true;
  51. return;
  52. }
  53. this.frame = 0;
  54. }
  55. }
  56. this.setSprite();
  57. },
  58. destroy: function () {
  59. const { oldSheetName, oldCell, oldTexture, obj: { sheetName, cell, sprite } } = this;
  60. //Make sure something didn't happen while we were in animation form
  61. // that made us change sprite
  62. if (oldSheetName === sheetName && oldCell === cell) {
  63. sprite.texture = oldTexture;
  64. return;
  65. }
  66. renderer.setSprite({
  67. sprite,
  68. cell,
  69. sheetName
  70. });
  71. }
  72. };
  73. });