Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. var ball:Sprite;
  2.  
  3. var xpos:Number = 0;
  4. var ypos:Number = 0;
  5. var zpos:Number = 0;
  6.  
  7. var fl:Number =250;
  8. var h:Number = 200;
  9.  
  10. var vpX:Number = stage.stageWidth / 2;
  11. var vpY:Number = stage.stageHeight / 2;
  12.  
  13. addEventListener(Event.ENTER_FRAME,onUpdate);
  14. stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
  15.  
  16. for(var i:int = -10 ; i <= 10 ; i ++)
  17. {
  18. for(var j:int = -10 ; j <= 10 ; j ++)
  19. {
  20. var c:Class = ApplicationDomain.currentDomain.getDefinition("res.point") as Class;
  21. var pView:Sprite = new c();
  22. var p:Point = getBall2DPos(i * 30,0,j * 30);
  23. pView.x = p.x;
  24. pView.y = p.y;
  25. addChild(pView);
  26. }
  27. }
  28.  
  29. function onUpdate(e:Event):void
  30. {
  31. var vy:Number = vpY - stage.mouseY;
  32. var vx:Number = stage.mouseX - vpX;
  33.  
  34. zpos = vy * fl / (h - vy);
  35. xpos = (fl + zpos) / fl * vx;
  36.  
  37. var scale:Number = fl / (fl + zpos);
  38. ball.scaleX = ball.scaleY = scale;
  39.  
  40. var ballP:Point = getBall2DPos(xpos,ypos,zpos);
  41. ball.x = ballP.x;
  42. ball.y = ballP.y;
  43. }
  44.  
  45. function getBall2DPos(xpos:Number,ypos:Number,zpos:Number):Point
  46. {
  47. var scale:Number = fl / (fl + zpos);
  48. var p:Point = new Point();
  49. p.x = vpX + scale * xpos;
  50. p.y = vpY - ypos - h / (fl + zpos) * zpos;
  51. return p;
  52. }
  53.  
  54. function onKeyDown(e:KeyboardEvent):void
  55. {
  56. if(e.keyCode == Keyboard.UP)
  57. {
  58. zpos += 5;
  59. }
  60. else if(e.keyCode == Keyboard.DOWN)
  61. {
  62. zpos -= 5;
  63. }
  64. else if(e.keyCode == Keyboard.A)
  65. {
  66. xpos -= 5;
  67. }
  68. else if(e.keyCode == Keyboard.D)
  69. {
  70. xpos += 5;
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement