import java.util.*;
class PlayerClassText
{
public String generate
(ProgramGUI gui
) {
LinkedList<GameLevel> levelsList = gui.levelsList;
GameData data = gui.data;
int speed = data.playerSpeed;
int jumpspeed = data.playerJumpSpeed;
double gravity = data.gravity;
"package"+ln+
" {"+ln+
" import flash.display.MovieClip;"+ln+
" import flash.ui.Keyboard;"+ln+
" import flash.utils.setInterval;"+ln+
" import flash.utils.clearInterval;"+ln+
" "+ln+
" public class playerclass"+ln+
" {"+ln+
" public var sprite:MovieClip;"+ln+
" public var x:Number;"+ln+
" public var y:Number;"+ln+
" public var width:Number;"+ln+
" public var height:Number;"+ln+
" public var vspeed:Number;"+ln+
" public var overfloor:Boolean;"+ln+
" public var visible:Boolean;"+ln+
" public var myimage:String;"+ln+
" public var objecttype:Number;"+ln+
" public var dir:Boolean;"+ln+
" public var intid:uint;"+ln+
" public function playerclass(xx:Number,yy:Number)"+ln+
" {"+ln+
" create(xx,yy);"+ln+
" intid = setInterval(step,17);"+ln+
" }"+ln+
" public function destroy():void"+ln+
" {"+ln+
" clearInterval(intid);"+ln+
" }"+ln+
" private function create(xx:Number,yy:Number):void"+ln+
" {"+ln+
" objecttype = 0;"+ln+
" x = xx;"+ln+
" y = yy;"+ln+
" width = 32;"+ln+
" height = 32;"+ln+
" overfloor = false;"+ln+
" vspeed = 0;"+ln+
" myimage = \"img_player\";"+ln+
" visible = true;"+ln+
" dir = false;"+ln+
" }"+ln+
" private function check_rectangle(xx:Number,yy:Number,ww:Number,hh:Number,xx2:Number,yy2:Number,ww2:Number,hh2:Number):Boolean"+ln+
" {"+ln+
" var l1:Number = xx;"+
" var r1:Number = xx+ww;"+
" var t1:Number = yy;"+
" var b1:Number = yy+hh;"+
" var l2:Number = xx2;"+
" var r2:Number = xx2+ww2;"+
" var t2:Number = yy2;"+
" var b2:Number = yy2+hh2;"+
" if(l2 < r1)"+
" if(r2 > l1)"+
" if(t2 < b1)"+
" if(b2 > t1)"+
" return true;"+
" return false;"+
" }"+ln+
" private function place_free(xx:Number,yy:Number):Boolean"+ln+
" {"+ln+
" var i:Number = 0;"+ln+
" var retval:Boolean = true;"+ln+
" for(i=0;i<flashmain._root.objarray.length;i+=1)"+ln+
" {"+ln+
" var e:Object = flashmain._root.objarray[i];"+ln+
" if (e.objecttype == 2)"+ln+
" {"+ln+
" if (check_rectangle(xx,yy,width,height,e.x,e.y,e.width,e.height)==true)"+ln+
" retval = false;"+ln+
" }"+ln+
" }"+ln+
" return retval;"+ln+
" }"+ln+
" private function object_collide(xx:Number,yy:Number):Object"+ln+
" {"+ln+
" var i:Number = 0;"+ln+
" var retval:Object = null;"+ln+
" for(i=0;i<flashmain._root.objarray.length;i+=1)"+ln+
" {"+ln+
" var e:Object = flashmain._root.objarray[i];"+ln+
" if (e.objecttype == 2)"+ln+
" {"+ln+
" if (check_rectangle(xx,yy,width,height,e.x,e.y,e.width,e.height)==true)"+ln+
" {"+ln+
" retval = e;"+ln+
" break;"+ln+
" }"+ln+
" }"+ln+
" }"+ln+
" return retval;"+ln+
" }"+ln+
" private function step():void"+ln+
" {"+ln+
" if (flashmain._root.isKeyDown(Keyboard.LEFT)) "+ln+
" {"+ln+
" dir = false;"+ln+
" if ((x-"+speed+" >= 0) && place_free(x-"+speed+",y))"+ln+
" {"+ln+
" x -= "+speed+";"+ln+
" if ((x >= flashmain._root.view_wview/2) && (x < flashmain._root.room_width-flashmain._root.view_wview/2))"+ln+
" flashmain._root.view_xview = x-flashmain._root.view_wview/2;"+ln+
" }"+ln+
" }"+ln+
" if (flashmain._root.isKeyDown(Keyboard.UP) && (!place_free(x,y+1)) && (place_free(x,y-1)))"+ln;
if (jumpspeed < 0)
code +=
" vspeed = "+
Math.
abs(jumpspeed
)+
";"+ln;
else
code += " vspeed = -"+(jumpspeed)+";"+ln;
code += " if (flashmain._root.isKeyDown(Keyboard.RIGHT)) "+ln+
" {"+ln+
" dir = true;"+ln+
" if ((x+"+speed+" <= flashmain._root.room_width-32) && place_free(x+"+speed+",y))"+ln+
" {"+ln+
" x += "+speed+";"+ln+
" if ((x >= flashmain._root.view_wview/2) && (x < flashmain._root.room_width-flashmain._root.view_wview/2+4))"+ln+
" flashmain._root.view_xview = x-flashmain._root.view_wview/2;"+ln+
" }"+ln+
" }"+ln+
" if (place_free(x,y+1))"+ln+
" vspeed += "+gravity+";"+ln+
" y += vspeed;"+ln+
" if (!place_free(x,y+1))"+ln+
" {"+ln+
" vspeed = 0;"+ln+
" var obj1:Object;"+ln+
" obj1 = object_collide(x,y+1);"+ln+
" if (obj1!=null)"+ln+
" {"+ln+
" if (obj1.objecttype == 2)"+ln+
" {"+ln+
" if (y < obj1.y)"+ln+
" y = obj1.y-32;"+ln+
" else"+ln+
" y = obj1.y+32;"+ln+
" }"+ln+
" }"+ln+
" }"+ln+
" var obj2:Object;"+ln+
" obj2 = object_collide(x,y);"+ln+
" if (obj2!=null)"+ln+
" {"+ln+
" if (obj2.objecttype == 4)"+ln+
" {"+ln+
" flashmain._root.score += 1;"+ln+
" }"+ln+
" }"+ln+
" if (visible == true)"+ln+
" {"+ln+
" flashmain._root[myimage].y = y-flashmain._root.view_yview;"+ln+
" if (dir==false)"+ln+
" {"+ln+
" flashmain._root[myimage].x = x-flashmain._root.view_xview+32;"+ln+
" flashmain._root[myimage].scaleX = -1;"+ln+
" }"+ln+
" else"+ln+
" {"+ln+
" flashmain._root[myimage].x = x-flashmain._root.view_xview;"+ln+
" flashmain._root[myimage].scaleX = 1;"+ln+
" }"+ln+
" }"+ln+
" else"+ln+
" {"+ln+
" flashmain._root[myimage].visible = false;"+ln+
" }"+ln+
" }"+ln+
" }"+ln+
" }"+ln;
return code;
}
}