Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var ball:Sprite;
- var xpos:Number = 0;
- var ypos:Number = 0;
- var zpos:Number = 0;
- var fl:Number =250;
- var h:Number = 200;
- var vpX:Number = stage.stageWidth / 2;
- var vpY:Number = stage.stageHeight / 2;
- addEventListener(Event.ENTER_FRAME,onUpdate);
- stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
- for(var i:int = -10 ; i <= 10 ; i ++)
- {
- for(var j:int = -10 ; j <= 10 ; j ++)
- {
- var c:Class = ApplicationDomain.currentDomain.getDefinition("res.point") as Class;
- var pView:Sprite = new c();
- var p:Point = getBall2DPos(i * 30,0,j * 30);
- pView.x = p.x;
- pView.y = p.y;
- addChild(pView);
- }
- }
- function onUpdate(e:Event):void
- {
- var vy:Number = vpY - stage.mouseY;
- var vx:Number = stage.mouseX - vpX;
- zpos = vy * fl / (h - vy);
- xpos = (fl + zpos) / fl * vx;
- var scale:Number = fl / (fl + zpos);
- ball.scaleX = ball.scaleY = scale;
- var ballP:Point = getBall2DPos(xpos,ypos,zpos);
- ball.x = ballP.x;
- ball.y = ballP.y;
- }
- function getBall2DPos(xpos:Number,ypos:Number,zpos:Number):Point
- {
- var scale:Number = fl / (fl + zpos);
- var p:Point = new Point();
- p.x = vpX + scale * xpos;
- p.y = vpY - ypos - h / (fl + zpos) * zpos;
- return p;
- }
- function onKeyDown(e:KeyboardEvent):void
- {
- if(e.keyCode == Keyboard.UP)
- {
- zpos += 5;
- }
- else if(e.keyCode == Keyboard.DOWN)
- {
- zpos -= 5;
- }
- else if(e.keyCode == Keyboard.A)
- {
- xpos -= 5;
- }
- else if(e.keyCode == Keyboard.D)
- {
- xpos += 5;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement