Apos alguns arranhoes e minha vista cansada, porque ainda nao troquei o oculos … fiz algo que funciona, um quadradinho que vai para um lado e para o outro batendo nas paredes :)

veja que legal, pongme

o codigo fonte eh razoalmente simples:
um arquivo Main.as que faz a inicializacoes do framework flashpunk, uma classe para cada intancia de World, que representa cada cena, por exemplo Menu, o jogo em si, tela de fim de jogo e assim por diante, e objetos filhos de Actor que sao elementos de tela.

seguem os arquivos que usei

main.as

package
{
	import punk.core.*;
	import punk.util.*;
	import punk.*;

	[SWF(width = "480", height = "320")]

	public class Main extends Engine
	{
		public function Main()
		{
			super(480, 320, 60, 1, Menu);
		}
	}
}

menu.as

package
{
	import punk.core.*;
	import punk.util.*;
	import punk.*;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class Menu extends World
	{

		public function Menu()
		{
			Text.color = 0x667CFF;
			var centerX:int = FP.screen.width / 2;
			var centerY:int = FP.screen.height / 2;

			var title:Text = new Text("PongMe!\nPress Space to play.", centerX, centerY);
			title.size = 15;
			title.center();
			add(title);
		}

		override public function update():void
		{
			if (Input.pressedKey(Key.SPACE))
				FP.goto = new GameWorld();
		}

	}

}

gameworld.as

package
{

	import punk.core.World;
	import punk.Text;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class GameWorld extends World
	{

		public function GameWorld()
		{
		}

		override public function init():void
		{
			FP.randomizeSeed();

			Text.color = 0x667CFF;
			add(new Text("Game Screen.", 10, 10));

			add(new Player());
			add(new Ball());
			add(new WallTop());
			add(new WallLeft());
			add(new WallRight());
		}
	}

}

player.as

package
{
	import punk.Actor;
	import punk.util.Input;
	import punk.util.Key;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class Player extends Actor
	{
		private var speed:Number = 3;

		[Embed(source='data/player.png')] private var ImgPlayer:Class;
		public function Player()
		{
			sprite = FP.getSprite(ImgPlayer, 0, 0);
			speed = 6 * (sprite.width / FP.fps);
			setHitbox( sprite.width, sprite.height, 0, 0);

			x = 100;
			y = 200;
			type = "player";

			Input.define("right", Key.RIGHT);
			Input.define("left", Key.LEFT);
			Input.define("up", Key.UP);
			Input.define("down", Key.DOWN);
		}

		override public function update():void
		{
			var newX:Number = x;
			var newY:Number = y;

			if (Input.check("right")) newX += speed;
			if (Input.check("left")) newX -= speed;
			if (Input.check("up")) newY -= speed;
			if (Input.check("down")) newY += speed;

			if ( ! collide("wall", newX, newY) )
			{
				x = newX;
				y = newY;
			}

			var ball:Ball= collide("ball", x, y) as Ball;
			if ( ball )
			{
				ball.speedY = ball.speedY * -1;
			}

		}

	}

}

ball.as

package
{
	import punk.Actor;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class Ball extends Actor
	{
		public var speedX:Number = 0;
		public var speedY:Number = 0;

		[Embed(source='data/ball.png')]	private var ImgPlayer:Class;
		public function Ball()
		{
			super();
			sprite = FP.getSprite(ImgPlayer, 0, 0);
			speedX = 7 * (sprite.width / FP.fps);
			speedY = 7 * (sprite.width / FP.fps);

			x = 100;
			y = 100;
			type = "ball";
		}

		override public function update():void
		{
			x += speedX;
			y += speedY;
		}

	}

}

wallleft.as

package
{
	import punk.Actor;
	import punk.core.Entity;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class WallLeft extends Actor
	{
		[Embed(source='data/wall-vert.png')] private var ImgPlayer:Class;
		public function WallLeft()
		{
			sprite = FP.getSprite(ImgPlayer, 0, 0);
			setHitbox( sprite.width, sprite.height, 0, 0);
			x = 0;
			y = 0;
			type = "wall";
		}

		override public function update():void
		{
			var ball:Ball= collide("ball", x, y) as Ball;

			if ( ball )
			{
				ball.speedX = ball.speedX * -1;
			}
		}
	}

}

wallright.as

package
{
	import punk.Actor;
	import punk.core.Entity;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class WallRight extends Actor
	{
		[Embed(source='data/wall-vert.png')] private var ImgPlayer:Class;
		public function WallRight()
		{
			sprite = FP.getSprite(ImgPlayer, 0, 0);
			setHitbox( sprite.width, sprite.height, 0, 0);
			x = FP.screen.width - sprite.width;
			y = 0;
			type = "wall";
		}

		override public function update():void
		{
			var ball:Ball= collide("ball", x, y) as Ball;

			if ( ball )
			{
				ball.speedX = ball.speedX * -1;
			}
		}

	}

}

walltop.as

package
{
	import punk.Actor;
	import punk.core.Entity;

	/**
	 * ...
	 * @author athanazio.com
	 */
	public class WallTop extends Actor
	{
		[Embed(source='data/wall-top.png')] private var ImgPlayer:Class;
		public function WallTop()
		{
			sprite = FP.getSprite(ImgPlayer, 0, 0);
			setHitbox( sprite.width, sprite.height, 0, 0);
			x = 0;
			y = 0;
			type = "wall";
		}

		override public function update():void
		{
			var ball:Ball= collide("ball", x, y) as Ball;

			if ( ball )
			{
				ball.speedY = ball.speedY * -1;
			}
		}

	}

}