Guest User

Untitled

a guest
Aug 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. As3 How to flip a movieclip to face movement direction?
  2. char.scaleX *= -1;
  3.  
  4. if(!mazehit) {
  5.  
  6. char.y += speed;
  7. char.scaleX *= -1;
  8.  
  9.  
  10. }
  11.  
  12. var leftArrow, rightArrow, upArrow, downArrow:Boolean;
  13. var speed:Number = 4;
  14. var charRadius:Number = 10;
  15.  
  16. stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
  17. stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
  18. stage.addEventListener(Event.ENTER_FRAME, everyFrame);
  19.  
  20. function keyPressed(event:KeyboardEvent):void {
  21. if (event.keyCode == Keyboard.LEFT) {
  22. leftArrow = true;
  23. }
  24. if (event.keyCode == Keyboard.RIGHT) {
  25. rightArrow = true;
  26. }
  27. if (event.keyCode == Keyboard.UP) {
  28. upArrow = true;
  29. }
  30. if (event.keyCode == Keyboard.DOWN) {
  31. downArrow = true;
  32. }
  33. }
  34.  
  35. function keyReleased(event:KeyboardEvent):void {
  36. if (event.keyCode == Keyboard.LEFT) {
  37. leftArrow = false;
  38. }
  39. if (event.keyCode == Keyboard.RIGHT) {
  40. rightArrow = false;
  41. }
  42. if (event.keyCode == Keyboard.UP) {
  43. upArrow = false;
  44. }
  45. if (event.keyCode == Keyboard.DOWN) {
  46. downArrow = false;
  47. }
  48. }
  49.  
  50. function everyFrame(event:Event):void {
  51. var mazehit:Boolean = false;
  52. if (leftArrow) {
  53. for(var i:int = 0; i < speed; i++) {
  54. if(bounds.hitTestPoint(char.x - charRadius - i, char.y, true)) {
  55.  
  56.  
  57. mazehit = true;
  58. break;
  59. }
  60. }
  61. if(!mazehit) {
  62.  
  63. char.x -= speed;
  64.  
  65.  
  66.  
  67.  
  68. }
  69.  
  70. } else if (rightArrow) {
  71. for(var j:int = 0; j < speed; j++) {
  72. if(bounds.hitTestPoint(char.x + charRadius + j, char.y, true)) {
  73.  
  74. mazehit = true;
  75. break;
  76. }
  77. }
  78. if(!mazehit) {
  79.  
  80. char.x += speed;
  81. }
  82. } else if (upArrow) {
  83. for(var k:int = 0; k < speed; k++) {
  84. if(bounds.hitTestPoint(char.x, char.y - charRadius - k, true)) {
  85.  
  86. mazehit = true;
  87. break;
  88. }
  89. }
  90. if(!mazehit) {
  91. char.y -= speed;
  92. }
  93.  
  94. } else if (downArrow) {
  95.  
  96. for(var m:int = 0; m < speed; m++) {
  97. if(bounds.hitTestPoint(char.x, char.y + charRadius + m, true)) {
  98.  
  99. mazehit = true;
  100. break;
  101. }
  102. }
  103. if(!mazehit) {
  104.  
  105. char.y += speed;
  106.  
  107.  
  108. }
  109. }
  110. }
  111.  
  112. char.scaleX = (speed > 0) ? 1 : -1;
  113.  
  114. if(keyLeft && !keyRight)
  115. {
  116. char.scaleX = -1;
  117. }
  118. else if(keyRight && !keyLeft)
  119. {
  120. char.scaleX = 1;
  121. }
  122. else
  123. {
  124. // keep current direction
  125. }
Add Comment
Please, Sign In to add comment