Changeset 791


Ignore:
Timestamp:
01/03/2011 03:11:49 PM (10 years ago)
Author:
dave
Message:

added graph and skeleton code

Location:
scenarios/GerminationX/fungi/src
Files:
5 added
7 edited

Legend:

Unmodified
Added
Removed
  • scenarios/GerminationX/fungi/src/Fungi.hx

    r437 r791  
    179179            world.WorldClient.Call("add-object/AppleTree",function(d){}); 
    180180            world.AddServerPlant(new Vec3(pos.x,pos.y,1),3); 
     181        } 
     182 
     183        if (e==80) 
     184        { 
     185            world.WorldClient.Call("perceive",function(d){}); 
    181186        } 
    182187 
  • scenarios/GerminationX/fungi/src/Resources.hx

    r437 r791  
    5151class GhostVerticalSad extends BitmapData { public function new() { super(0,0); } } 
    5252 
     53class Test extends BitmapData { public function new() { super(0,0); } } 
     54 
    5355class Resources 
    5456{ 
     
    8890        case "ghost-vertical-happy": tex.data = new GhostVerticalHappy(); 
    8991        case "ghost-vertical-sad": tex.data = new GhostVerticalSad(); 
     92        case "test": tex.data = new Test(); 
    9093        } 
    9194 
  • scenarios/GerminationX/fungi/src/truffle/Entity.hx

    r437 r791  
    1515 
    1616package truffle; 
    17  
    1817import truffle.Truffle; 
    1918 
    20 class Entity extends truffle.Sprite 
     19class Entity 
    2120{ 
    2221    public var LogicalPos:Vec3; 
     22    public var Depth:Float; 
     23    public var Pos:Vec3; 
    2324                 
    24         public function new(pos:Vec3, t:TextureDesc)  
     25        public function new(w:World,pos:Vec3)  
    2526        { 
    26         LogicalPos=pos;         
    27                 super(Pos2PixelPos(LogicalPos),t); 
     27        LogicalPos=pos; 
     28        Pos = Pos2PixelPos(LogicalPos); 
     29        Depth = Pos.z; 
     30        w.Add(this); 
    2831        } 
    2932 
     
    3740        } 
    3841                 
    39         override public function Update(frame:Int, world:truffle.interfaces.World) 
     42        public function Update(frame:Int, world:truffle.interfaces.World) 
    4043        { 
    41         ScreenPos = Pos2PixelPos(LogicalPos);     
    42         super.Update(frame,world); 
     44        Pos = Pos2PixelPos(LogicalPos); 
     45        Depth = Pos.z; 
    4346        } 
    4447 
     48    public function GetRoot() : Dynamic 
     49    { 
     50        return null; 
     51    } 
    4552} 
  • scenarios/GerminationX/fungi/src/truffle/flash/FlashSprite.hx

    r437 r791  
    1717 
    1818import flash.display.Sprite; 
     19import flash.display.Bitmap; 
    1920import flash.display.BitmapData; 
    2021import flash.events.MouseEvent; 
     22import flash.events.Event; 
     23import flash.events.IOErrorEvent; 
    2124import flash.geom.Matrix; 
    2225import flash.geom.Point; 
    23  
    24 import truffle.Vec3; 
     26import flash.net.URLRequest; 
     27import flash.display.Loader; 
     28import truffle.Vec2; 
    2529import truffle.interfaces.Sprite; 
    2630import truffle.interfaces.World; 
     
    2933class FlashSprite implements truffle.interfaces.Sprite, extends flash.display.Sprite 
    3034{        
    31     public var ScreenPos:Vec3; 
     35    public var Pos:Vec2; 
     36    var Angle:Float; 
     37    var MyScale:Vec2; 
     38    var Transform:Matrix; 
     39    var Width:Int; 
     40    var Height:Int; 
    3241 
    33         public function new(pos:Vec3, t:TextureDesc)  
     42        public function new(pos:Vec2, t:TextureDesc)  
    3443        { 
    3544                super(); 
    36         ScreenPos=pos; 
    3745        ChangeBitmap(t); 
     46        Pos=pos; 
     47        Angle=0; 
     48        MyScale = new Vec2(1,1); 
     49        Transform = new Matrix(); 
     50        Width=64; 
     51        Height=112; 
    3852        } 
    3953 
     
    5165        } 
    5266 
    53         public function Scale(size:Float) 
     67    public function LoadFromURL(url:String) 
     68    { 
     69        var loader:Loader = new Loader(); 
     70        loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,  
     71                                                  function(e:IOErrorEvent):Void  
     72                                                  {   
     73                                                      trace(e.text+' '+url); 
     74                                                  }); 
     75 
     76        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, ImageLoaded); 
     77        loader.load(new URLRequest(url));  
     78    } 
     79     
     80    function ImageLoaded(e:Event) 
     81    {         
     82        e.target.content.smoothing = true; 
     83        var dupBitmap:Bitmap = new Bitmap(cast(e.target.content,Bitmap).bitmapData); 
     84        Width=cast(dupBitmap.width,Int); 
     85        Height=cast(dupBitmap.height,Int); 
     86                graphics.clear(); 
     87                graphics.beginBitmapFill(dupBitmap.bitmapData); 
     88        graphics.drawRect(0,0,dupBitmap.width,dupBitmap.height); 
     89                graphics.endFill();    
     90    } 
     91 
     92    /*public function ScreenPos()  
     93    {  
     94        var p:Point = Transform.transformPoint(new Point(0, 0));  
     95        return new Vec3(p.x,p.y,0); 
     96    }*/ 
     97 
     98    public function SetPos(s:Vec2) { Pos=s; } 
     99        public function SetScale(s:Vec2) { MyScale=s; } 
     100        public function SetRotate(angle:Float) { Angle=angle; } 
     101    public function GetTransform() : Dynamic { return Transform; } 
     102 
     103        public function Update(frame:Int, world:World, tx:Dynamic) 
    54104        { 
    55                 var m:Matrix = transform.matrix; 
    56                 var x=32; 
    57                 var y=112; 
    58                 var p:Point = m.transformPoint(new Point(x, y)); 
    59                 m.translate(-p.x, -p.y); 
    60                 m.scale(size,size); 
    61             m.translate(p.x, p.y); 
    62                 transform.matrix = m; 
    63         } 
    64          
    65         public function Rotate(angle:Float) 
    66         { 
    67                 var m:Matrix = transform.matrix; 
    68                 var x=32; 
    69                 var y=112; 
    70                 var p:Point = m.transformPoint(new Point(x, y)); 
    71                 m.translate(-p.x, -p.y); 
    72                 m.rotate(angle*(Math.PI/180)); 
    73                 m.translate(p.x, p.y); 
    74                 transform.matrix = m; 
    75         } 
     105        Transform.identity(); 
    76106 
    77         public function Update(frame:Int, world:World) 
    78         { 
    79                 x = ScreenPos.x; 
    80                 y = ScreenPos.y; 
     107                var cx=Width/2; 
     108                var cy=Height/2; 
     109 
     110        Transform.translate(-cx, -cy); 
     111                Transform.rotate(Angle*(Math.PI/180)); 
     112        Transform.scale(MyScale.x,MyScale.y); 
     113        Transform.translate(cx, cy); 
     114        Transform.translate(Pos.x,Pos.y); 
     115                 
     116        if (tx!=null) 
     117                { 
     118            Transform.concat(tx); 
     119        } 
     120                 
     121        transform.matrix = Transform; 
    81122        } 
    82123 
  • scenarios/GerminationX/fungi/src/truffle/flash/FlashWorld.hx

    r437 r791  
    1717 
    1818import flash.display.MovieClip; 
    19  
     19import flash.display.DisplayObject; 
    2020import truffle.interfaces.World; 
     21import truffle.interfaces.Sprite; 
    2122import truffle.Entity; 
    2223 
     
    3435    { 
    3536        Scene.push(e); 
    36         addChild(e); 
    3737    } 
    3838 
     
    4040    { 
    4141        Scene.remove(e); 
    42         removeChild(e); 
    4342    } 
    44      
     43 
     44    public function AddSprite(s:Sprite) 
     45    { 
     46        addChild(cast(s,FlashSprite)); 
     47    } 
     48 
     49    public function RemoveSprite(s:Sprite) 
     50    { 
     51        removeChild(cast(s,FlashSprite)); 
     52    } 
    4553 
    4654    public function SortScene() 
    4755    {         
    4856        Scene.sort(function(a:Entity, b:Entity) 
    49                    {         
    50                        if (a.ScreenPos.z<b.ScreenPos.z) return -1; 
     57                   {                        
     58                       if (a.Depth<b.Depth) return -1; 
    5159                       else return 1; 
    5260                   }); 
     
    5563        for (e in Scene) 
    5664        { 
    57             setChildIndex(e,i); 
     65            setChildIndex(e.GetRoot(),i); 
    5866            i++; 
    5967        } 
  • scenarios/GerminationX/fungi/src/truffle/interfaces/Sprite.hx

    r437 r791  
    1616package truffle.interfaces; 
    1717 
    18 import truffle.Vec3; 
     18import truffle.Vec2; 
    1919import truffle.interfaces.TextureDesc; 
    2020 
    2121interface Sprite 
    2222{ 
    23         public var ScreenPos:Vec3;               
     23    public var Pos:Vec2; 
    2424        public function MouseDown(f:Dynamic -> Void=null) : Void; 
    2525        public function ChangeBitmap(t:TextureDesc) : Void; 
    26         public function Scale(size:Float) : Void; 
    27         public function Rotate(angle:Float) : Void;      
    28         public function Update(frame:Int, world:World) : Void; 
     26 
     27    public function SetPos(s:Vec2) : Void; 
     28        public function SetScale(s:Vec2) : Void; 
     29        public function SetRotate(angle:Float) : Void;   
     30 
     31        public function Update(frame:Int, world:World, tx:Dynamic) : Void; 
     32 
     33    public function GetTransform() : Dynamic; 
     34    public function LoadFromURL(url:String) : Void; 
    2935} 
    3036 
  • scenarios/GerminationX/fungi/src/truffle/interfaces/World.hx

    r437 r791  
    2222    public function Add(e:Entity) : Void; 
    2323    public function Remove(e:Entity) : Void; 
     24    public function AddSprite(s:Sprite) : Void; 
     25    public function RemoveSprite(s:Sprite) : Void; 
    2426    public function SortScene() : Void; 
    2527    public function Update(time:Int) : Void; 
Note: See TracChangeset for help on using the changeset viewer.