Hi guys,
I’ve only been using AS3 (and Flash CS3) for a few days, I never used previous versions, I know C(++) and Win32 programming so my learning is coming along quickly.
I came up with this for a general game framework, please let me know if I’m on the right track and perhaps provide better ways of doing this. I still notice tearing when I move objects around, it’s not that bad but noticable; other than that it seems alright but I’m really not sure if I’m committing a major error in the concept.
package {
import stuff I need here
public class Main extends MovieClip {
// create frame buffer
var screen_data:BitmapData=new BitmapData(600,450,false,0x000000);
var screen_bitmap:Bitmap=new Bitmap(screen_data);
// create background and sprite sheets (load them elsewhere)
var bkgnd_data:BitmapData=new BitmapData(600,450,false,0x000000);
var object_data:BitmapData=new BitmapData(200,200,false,0x000000);
// the singe sprite object
var screen_sprite:Sprite=new Sprite();
// other stuff
var rect:Rectangle=new Rectangle();
var point:Point=new Point();
var frame_num:int=0;
public function Main() {
addEventListener(Event.ENTER_FRAME,GameLoop);
screen_sprite.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
screen_sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
screen_sprite.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
screen_sprite.addChild(screen_bitmap);
addChild(screen_sprite);
}
private function GameLoop(event:Event):void {
// draw background
rect.x=0;
rect.y=0;
rect.width=600;
rect.height=450;
point.x=0;
point.y=0;
screen_data.copyPixels(bkgnd_data,rect,point);
// draw objects on top of background
screen_data.copyPixels(...);
screen_data.copyPixels(...);
screen_data.copyPixels(...);
screen_data.copyPixels(...);
frame_num++;
}
private function mouseDownHandler(event:MouseEvent) : void {
// mouse handling for entire screen
}
private function mouseUpHandler(event:MouseEvent) : void {
// mouse handling for entire screen
}
private function mouseMoveHandler(event:MouseEvent) : void {
// mouse handling for entire screen
}
}
}