<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en-US">
  <title>theRemix - Home</title>
  <id>tag:remixtechnology.com,2009:mephisto/</id>
  <generator uri="http://mephistoblog.com" version="0.8.0">Mephisto Drax</generator>
  
  <link href="http://remixtechnology.com/" rel="alternate" type="text/html" />
  <updated>2009-06-16T03:10:36Z</updated>
  <link rel="self" href="http://feeds.feedburner.com/RemixTechnology" type="application/atom+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-06-16:45323</id>
    <published>2009-06-16T02:25:00Z</published>
    <updated>2009-06-16T03:10:36Z</updated>
    <category term="game" />
    <category term="toy" />
    <category term="video" />
    <link href="http://remixtechnology.com/view/june-gaming-update" rel="alternate" type="text/html" />
    <title>Gaming Update</title>
<content type="html">
            &lt;p&gt;Haven’t posted anything in a long time cause I’ve been busy working on non-games (angry face).&lt;/p&gt;

&lt;p&gt;I’ll be finishing up my rails project this month, then I’ll be back to working on Coconut Kickball. But before i launch the first version of Coconut Kickball, we’re going to enter a submission to the &lt;a href="http://www.mochiads.com/contest/may09"&gt;Mochi May flash game contest sponsored by Dictionary.com&lt;/a&gt;. The game is in planning stages, and it’s going to create a buzz.&lt;/p&gt;

&lt;p&gt;This, all in June.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;For now, I’d like to post about &lt;a href="http://www.scribblenauts.com/"&gt;SCRIBBLENAUTS&lt;/a&gt;&lt;br /&gt;
if you haven’t heard of this handheld game yet, here’s what critics have said about scribblenauts:&lt;br /&gt;
(from &lt;a href="http://en.wikipedia.org/wiki/Scribblenauts"&gt;wikipedia&lt;/a&gt;)  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scribblenauts was named the overall &lt;em&gt;“Best of Show”&lt;/em&gt; by &lt;em&gt;Gamespot&lt;/em&gt;, &lt;em&gt;Gamespy&lt;/em&gt;, and &lt;em&gt;IGN&lt;/em&gt;, in addition to other awards.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;1UP.com&lt;/em&gt; named Scribblenauts their E3’s &lt;em&gt;“Most Innovative” title&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;X-Play&lt;/em&gt; gave the game its E3 &lt;em&gt;“Best Original Game”&lt;/em&gt; and “Best Handheld Game” awards.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Ars Technica&lt;/em&gt; considered the game as the show’s &lt;em&gt;“Most Pleasant Surprise”&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Scribblenauts is the first portable video game to merit &lt;em&gt;“Best of Show”&lt;/em&gt; awards from E3.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and here’s why:&lt;br /&gt;
&lt;strong&gt;God vs. The Kraken&lt;/strong&gt;  &lt;/p&gt;

&lt;div&gt;         &lt;div&gt;&lt;div&gt;&lt;a href="http://www.gametrailers.com" title="GameTrailers.com"&gt;Video Games&lt;/a&gt; | &lt;a href="http://www.gametrailers.com/user-movie/scribblenauts-god-vs-the/320265" title="Scribblenauts - God vs The Kraken"&gt;Scribblenauts - God vs The Kraken&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.gametrailers.com/platformlist/xb360/index.html" title="XBox 360"&gt;XBox 360&lt;/a&gt; | &lt;a href="http://www.gametrailers.com/platformlist/ps3/index.html" title="PS3"&gt;Playstation 3&lt;/a&gt; | &lt;a href="http://www.gametrailers.com/platformlist/wii/index.html" title="Wii"&gt;Nintendo Wii&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;quote from neogaf&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;I had played all the big titles at E3. Private showings of God of War III, 
Heavy Rain, Alan Wake. But at 4:00 on Thursday, I was wondering around the show floor, 
wondering what else I had to see. I saw a small little booth for "Scribblenauts!" 
in the Warner Bros. Interactive Entertainment section. 
I mean, who goes to that booth? But I remember hearing about it on GAF, 
and so I decided to check it out.

Best game of E3? Without a *****ng doubt. 
Anyone who says otherwise did not play Scribblenauts. 
Best game of all time? Jesus Christ, I don't know, maybe. 
It's a game that challenges your IMAGINATION. 
No other game has ever done that.

So listen to this story. I was in the early levels; 
I didn't quite have an idea of how ridiculously in-depth the database was. 
I was summoning things like ladders, glasses of water, rayguns, what have you. 
But I reached a level with zombie robots, and the zombie robots kept killing me. 
Rayguns didn't work, a torch didn't work, a pickaxe didn't work. In my frustration, 
I wrote in "Time Machine". And one popped up. What the ****? A smile dawned on my face. 
I hopped in, and the option was given to me to either travel to the past or the future. 
I chose past. When I hopped out, there were *****ng dinosaurs walking around. 
I clicked one, and realized I could RIDE THEM. So I hopped on a *****ng DINOSAUR, 
traveled back to the present, and stomped the shit out of robot zombies. 
Did you just read that sentence?
Did you really? 
I *****NG TRAVELED THROUGH TIME AND JUMPED ON A DINOSAUR AND USED IT 
TO KILL MOTHER*****NG ROBOT ZOMBIES.
This game is unbelievable. Impossible. There's nothing you can't do.

Holy *****ng shit.
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;p&gt;This isn’t actually the FIRST video-game/video-toy of this kind that I’ve come across, where it challenges you to use your imagination, remember &lt;a href="http://www.garrysmod.com/"&gt;Garry’s Mod&lt;/a&gt;?  I’ve had many hours stolen from me creating awesome constructions and situations within the &lt;a href="http://en.wikipedia.org/wiki/Source_%28game_engine%29"&gt;Source Engine&lt;/a&gt;. Scribblenauts is a different &lt;strong&gt;kind&lt;/strong&gt; of omfgcrazy fun exciting imaginative experience because you can spawn sooo many different things, and pretty much anything can happen.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-05-12:45320</id>
    <published>2009-05-12T23:33:00Z</published>
    <updated>2009-05-16T20:05:44Z</updated>
    <link href="http://remixtechnology.com/view/even-fairy-tale-characters-would-be-jealous" rel="alternate" type="text/html" />
    <title>Even fairy tale characters would be jealous</title>
<content type="html">
            &lt;p&gt;My new iPhone Wallpaper&lt;/p&gt;

&lt;p&gt;&lt;a href="/assets/2009/5/16/fairytale-wallpaper.jpg"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="/assets/2009/5/12/fairytale.jpg"&gt;full res&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/mp3s/Even Fairy Tale Characters Would Be Jealous.mp3"&gt;PlayRadioPlay! - Even Fairy Tale Characters Would Be Jealous.mp3 (full, awesome 8bit 2nd half)&lt;/a&gt;&lt;br /&gt;
&lt;a href="/mp3s/Even Fairy Tale Characters Would Be Jealous - short.mp3"&gt;PlayRadioPlay! - Even Fairy Tale Characters Would Be Jealous.mp3 (short)&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-04-07:45309</id>
    <published>2009-04-07T21:17:00Z</published>
    <updated>2009-05-12T23:53:58Z</updated>
    <category term="game" />
    <category term="haxe" />
    <link href="http://remixtechnology.com/view/my-brute" rel="alternate" type="text/html" />
    <title>My Brute</title>
<content type="html">
            &lt;p&gt;A fun addicting game made entirely in &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; by &lt;a href="http://www.motion-twin.com/english"&gt;MotionTwin&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://theRemix.mybrute.com"&gt;Challenge My Brute!&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-04-03:45306</id>
    <published>2009-04-03T04:20:00Z</published>
    <updated>2009-04-03T04:30:48Z</updated>
    <category term="haXe Projects" />
    <category term="actionscript3" />
    <category term="game" />
    <category term="haxe" />
    <category term="source" />
    <category term="tutorial" />
    <link href="http://remixtechnology.com/view/turkey-haxe-game-source-code" rel="alternate" type="text/html" />
    <title>Turkey haXe game Source Code</title>
<summary type="html">&lt;p&gt;requested by Raf&lt;/p&gt;

&lt;p&gt;crude source code, never thought anyone else would see it after i finished, including myself.&lt;/p&gt;

&lt;p&gt;248 lines in the main class. i also created a few supporting classes for this game that i’ve been reusing ever since, and included in my common library.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;requested by Raf&lt;/p&gt;

&lt;p&gt;crude source code, never thought anyone else would see it after i finished, including myself.&lt;/p&gt;

&lt;p&gt;248 lines in the main class. i also created a few supporting classes for this game that i’ve been reusing ever since, and included in my common library.&lt;/p&gt;
&lt;p&gt;requested by Raf&lt;/p&gt;

&lt;p&gt;crude source code, never thought anyone else would see it after i finished, including myself.&lt;/p&gt;

&lt;p&gt;248 lines in the main class. i also created a few supporting classes for this game that i’ve been reusing ever since, and included in my common library.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;&lt;br /&gt;
the haxe compile file  &lt;/p&gt;

&lt;h2&gt;compile.hxml&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;-swf main.swf
-swf-version 9
-swf-header 550:500:300:FFFFFF
-main TurkeyHaXe
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;&lt;br /&gt;
 the main class  &lt;/p&gt;

&lt;h2&gt;TurkeyHaXe.hx&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;import com.remixtechnology.GraphicsLoader;
import flash.Lib;
import flash.display.Stage;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.ui.Mouse;
import flash.text.TextField;
import flash.text.TextFormat;

class TurkeyHaXe
{
    public var stage:Stage;
    public var bg_layer:Sprite;
    public var game_layer:Sprite;
    public var over_layer:Sprite;
    private var start_but:Button;
    //private var high_scores_but:Button;
    private var play_again_but:Button;
    private var game_bg:Sprite;
    private var intro_bg:Sprite;
    private var instructions:Sprite;

    private var score:Int;
    private var scoreBoard:ShadowedTextField;
    private var finalScoreBoard:ShadowedTextField;

    private var control:Sprite;
    private var stuffing:Array&amp;lt;Sprite&amp;gt;;
    private var stuffing_graphics:Array&amp;lt;GraphicsLoader&amp;gt;;
    private var fail_graphics:Array&amp;lt;Sprite&amp;gt;;
    private var fail_message:Sprite;
    private var drop_interval:Int; //seconds //current
    private var drop_timer:Timer;
    private var drops:Int;
    private var first_time:Bool;
    private var drop_speed:Float;

    public static function main() {
        new TurkeyHaXe();
    }
    private function new(){
        stage = Lib.current.stage;
        init();
    }
    private function init(){
        //make layers
        bg_layer = new Sprite();
        stage.addChild(bg_layer);
        game_layer = new Sprite();
        stage.addChild(game_layer);
        over_layer = new Sprite();
        stage.addChild(over_layer);

        stuffing = new Array&amp;lt;Sprite&amp;gt;();
        stuffing_graphics = new Array&amp;lt;GraphicsLoader&amp;gt;();
        fail_graphics = new Array&amp;lt;Sprite&amp;gt;();

        score = 0;

        //show start screen
        intro_bg = new GraphicsLoader(Settings.graphics_path + "intro_bg.png").sprite;
        bg_layer.addChild(intro_bg);

        start_but = new Button("intro_start_but.png", "intro_start_but_over_bg.png");
        over_layer.addChild(start_but);
        start_but.addEventListener(MouseEvent.CLICK, click_start_but);
        //start_but.x = 300;
        //start_but.y = 210;
        start_but.x = 200;
        start_but.y = 130;

        /*
        high_scores_but = new Button("intro_high_scores_but.png", "intro_high_scores_but_over_bg.png");
        over_layer.addChild(high_scores_but);
        high_scores_but.x = 260;
        high_scores_but.y = 260;
        start_but.addEventListener(MouseEvent.CLICK, click_high_scores_but); */

        //gimme stuffing
        stuffing_graphics.push(new GraphicsLoader(Settings.graphics_path + "stuffing_0.png"));
        stuffing_graphics.push(new GraphicsLoader(Settings.graphics_path + "stuffing_1.png"));
        stuffing_graphics.push(new GraphicsLoader(Settings.graphics_path + "stuffing_2.png"));

        //gimme fail
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_0.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_1.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_2.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_3.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_4.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_5.png").sprite);
        fail_graphics.push(new GraphicsLoader(Settings.graphics_path + "fail_6.png").sprite);

        first_time = true;
    }
    private function click_start_but(_):Void{
        loadGame();
    }
    private function click_high_scores_but(_):Void{
        //showHighScores();
    }
    private function loadGame():Void{
        drop_interval = Settings.init_drop_interval;
        drop_timer = new Timer(drop_interval);
        drop_timer.addEventListener(TimerEvent.TIMER, tick_drop);
        drop_timer.start();

        drop_speed = Settings.init_drop_speed;

        control = new GraphicsLoader(Settings.graphics_path + "control.png").sprite;
        game_layer.addChild(control);
        control.y = 360;

        stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouse_move);
        stage.addEventListener(Event.ENTER_FRAME, loop);

        if(first_time){ 
            clear_intro();
            game_bg = new GraphicsLoader(Settings.graphics_path + "game_bg.png").sprite;
            bg_layer.addChild(game_bg);
            showInstructions(); 
            scoreBoard = new ShadowedTextField();
            over_layer.addChild(scoreBoard);
            scoreBoard.x = 15;
            scoreBoard.y = 15;
        }
        score = 0;
        scoreBoard.setText(Std.string(score));
        if(Settings.hide_cursor) {Mouse.hide();}
    }
    private function setDropTimer():Void{
        drop_timer.stop();
        drop_timer.removeEventListener(TimerEvent.TIMER, tick_drop);
        drop_timer = null;
        drop_timer = new Timer(drop_interval);
        drop_timer.addEventListener(TimerEvent.TIMER, tick_drop);
        drop_timer.start();
    }
    private function tick_drop(_):Void{
        var randX:Int = Math.round(Math.random()*(stage.stageWidth-80))+30;
        var randS:Int = Math.floor(Math.random()*stuffing_graphics.length);
        var s:Sprite = new Sprite();
        game_layer.addChild(s);
        stuffing_graphics[randS].getCopySprite(s);
        stuffing.push(s);
        s.x = randX;
        s.y = -10;
        s.rotation = Math.round(Math.random()*360);
        drops++;
        if((drops % Settings.increment_drop_speed_every) == 0){
            drop_speed += Settings.increment_drop_speed;
        }
        if( ((drops % Settings.increment_drop_every) == 0) &amp;amp;&amp;amp; drop_interval &amp;gt; Settings.min_drop_interval){
            drop_interval -= Settings.increment_drop_interval;
            setDropTimer();
        }
    }
    private function showInstructions():Void{
        var t:Timer = new Timer(3000,1);
        t.addEventListener(TimerEvent.TIMER_COMPLETE, complete_instructions);
        t.start();

        instructions = new GraphicsLoader(Settings.graphics_path + "catch_all_the_stuffing.png").sprite;
        over_layer.addChild(instructions);
        instructions.x = 65;
        instructions.y = 100;

        first_time = false;
    }
    private function complete_instructions(_):Void{
        over_layer.removeChild(instructions);
        instructions = null;
    }
    private function stage_mouse_move(_):Void{
        control.x = stage.mouseX - 40;
    }
    private function loop(_):Void{
        var s:Sprite;
        for(s in stuffing){
            s.y += drop_speed;
            if(s.y &amp;gt;= stage.stageHeight){
                gameOver();
            }else if(s.hitTestPoint(stage.mouseX, 410)){
                stuffing.remove(s);
                game_layer.removeChild(s);
                s = null;
                awardPoints();
            }
        }
    }
    private function clear_intro():Void{
        start_but.parent.removeChild(start_but);
        //high_scores_but.parent.removeChild(high_scores_but);
        intro_bg.parent.removeChild(intro_bg);
        start_but = null;
        //high_scores_but = null;
        intro_bg = null;
    }
    private function awardPoints():Void{
        score += drops + Math.round(drop_speed) + (Settings.init_drop_interval - drop_interval);
        scoreBoard.setText(Std.string(score));
    }
    private function gameOver():Void{
        drop_timer.removeEventListener(TimerEvent.TIMER, tick_drop);
        drop_timer.stop();

        game_layer.removeChild(control);
        control = null;

        var s:Sprite;
        for(s in stuffing){
            game_layer.removeChild(s);
        }

        stuffing = new Array&amp;lt;Sprite&amp;gt;();

        stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouse_move);
        stage.removeEventListener(Event.ENTER_FRAME, loop);

        if(Settings.hide_cursor) {Mouse.show();}

        // show fail message
        var randF:Int = Math.floor(Math.random()*fail_graphics.length);
        fail_message = new Sprite();
        game_layer.addChild(fail_message);
        fail_message.addChild(fail_graphics[randF]);
        fail_message.x = 40;
        fail_message.y = 80;

        // show try again
        play_again_but = new Button("try_again_but.png", "try_again_but_over_bg.png");
        over_layer.addChild(play_again_but);
        play_again_but.x = 150;
        play_again_but.y = 420;
        play_again_but.addEventListener(MouseEvent.CLICK, try_again_click);
    }
    private function try_again_click(_):Void{
        game_layer.removeChild(fail_message);
        fail_message = null;
        play_again_but.removeEventListener(MouseEvent.CLICK, try_again_click);
        over_layer.removeChild(play_again_but);
        play_again_but = null;
        loadGame();
    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;&lt;br /&gt;
a very simple class that loads an external image. i found this class to be very very handy, but is by no means perfect. part of the com.remixtechnology package.  &lt;/p&gt;

&lt;h2&gt;GraphicsLoader.hx&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;/* loads a graphic (at runtime), returns a Sprite with that graphic in it using getSprite() */
package com.remixtechnology;
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLRequest;
class GraphicsLoader{
    private var fileName:String;
    private var bm:Bitmap;
    private var ldr:Loader;
    private var copies:Array&amp;lt;Sprite&amp;gt;;
    public var sprite:Sprite;
    public var loaded:Bool;
    public function new(_fileName:String){
        fileName = _fileName;
        init();
    }
    private function init():Void{
        loaded = false;
        sprite = new Sprite();
        copies = new Array();
        ldr = new Loader();
        ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);
        ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioError);
        ldr.load(new URLRequest(fileName));
    }
    private function loader_ioError(event:IOErrorEvent):Void{
        trace("ioErrorHandler: " + event.text);
        trace("Could not load: " + fileName);
    }
    private function loader_complete(event:Event):Void{
        loaded = true;
        bm = event.target.content;
        sprite.addChild(bm);
        if(copies.length &amp;gt; 0){
            var i:Sprite;
            for(i in copies){
                copySprite(i);
            }
        }
    }
    public function getCopySprite(emptySprite:Sprite):Void{ // gets a copy of the sprite, 
        // but leaves the original alone
        // take an emptySprite, and promise to attach a bitmap when it's done loading
        // track promises using the array 'copies'
        // unless it's already loaded, then just get a copy
        if(loaded){
            copySprite(emptySprite);
        }else{
            copies.push(emptySprite);
        }
    }
    private function copySprite(s:Sprite):Void{
        var data:BitmapData = new BitmapData(Std.int(bm.width), Std.int(bm.height), true, 0);
        data.draw(bm);
        var bitmap:Bitmap = new Bitmap(data);
        s.addChild(bitmap); // promise fulfilled
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;&lt;br /&gt;
a simple button class that extends Sprite, all it really does is load a couple of graphics to create a rollover state. lines 12 and 13 are little hacks because of the way i exported my graphics. in the newest version of this class, the rollover is a nice fading tween, and of course lines 12 and 13 are not there. and this class has been added to the com.remixtechnology package.  &lt;/p&gt;

&lt;h2&gt;Button.hx&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;import com.remixtechnology.GraphicsLoader;
import flash.display.Sprite;
import flash.events.MouseEvent;
class Button extends Sprite{
    private var normal_state:Sprite;
    private var over_state:Sprite;
    public function new(normal_state_path:String, over_state_path:String){
        normal_state = new GraphicsLoader(Settings.graphics_path + normal_state_path).sprite;
        over_state = new GraphicsLoader(Settings.graphics_path + over_state_path).sprite;
        addChild(over_state);
        addChild(normal_state);
        normal_state.x = 15;
        normal_state.y = 6;
        over_state.visible = false;
        addListeners();
        super();
    }
    private function addListeners():Void{
        addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
        addEventListener(MouseEvent.MOUSE_OUT, mouseOut);
    }
    private function mouseOver(_):Void{
        over_state.visible = true;
    }
    private function mouseOut(_):Void{
        over_state.visible = false;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;
a simple text field class that i use a lot, this version is not very customizable, but i’ve added it to the com.remixtechnology package and made it a lot more customizable with some decent default settings. here i use it to display the score, but i use it a lot for tracing because if you add graphics to the stage, like in this game, it covers haXe’s trace messages.  &lt;/p&gt;

&lt;h2&gt;ShadowedTextField.hx&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

class ShadowedTextField extends Sprite
{

    private var fgColor:UInt;
    private var bgColor:UInt;
    private var xoff:Float;
    private var yoff:Float;

    private var tfFore:TextField;
    private var tfBack:TextField;
    private var fmtFore:TextFormat;
    private var fmtBack:TextFormat;

    private var size:Int;
    private var font:String;

    public function new()
    {
        bgColor = 0x000000;
        fgColor = Settings.font_color;
        xoff = 1;
        yoff = 1;
        size = 24;
        font = 'Verdana';

        mouseChildren = false;
        mouseEnabled = false;

        tfBack = new TextField();
        tfBack.autoSize = TextFieldAutoSize.LEFT;
        tfBack.selectable = false;
        tfBack.x = xoff;
        tfBack.y = yoff;
        addChild(tfBack);

        tfFore = new TextField();
        tfFore.autoSize = TextFieldAutoSize.LEFT;
        tfFore.selectable = false;
        addChild(tfFore);

        fmtFore = new TextFormat();
        fmtFore.color = fgColor;
        fmtFore.size = size;
        fmtFore.font = font;
        fmtFore.bold = true;

        fmtBack = new TextFormat();
        fmtBack.color = bgColor;
        fmtBack.size = size;
        fmtBack.font = font;
        fmtBack.bold = true;

        super();
    }

    public function setText(n:String):Void
    {
        tfFore.text = n;
        tfFore.setTextFormat(fmtFore);

        tfBack.text = n;
        tfBack.setTextFormat(fmtBack);
    }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;comments&lt;/em&gt;&lt;br /&gt;
some settings for the game, not sure why i left it out of the main class, i guess i just wanted a quick way to access some static settings from any class. i think it’s unnecessary, and i don’t do this anymore.  &lt;/p&gt;

&lt;h2&gt;Settings.hx&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;class Settings{
    public static var hide_cursor:Bool = false;
    //local
    public static var graphics_path:String = "graphics/";
    //on remixtechnology
    //public static var graphics_path:String = "/haXe/turkey_haXe/graphics/";
    public static var init_drop_interval:Int = 1500;
    public static var increment_drop_interval:Int = 50;
    public static var increment_drop_every:Int = 3;
    public static var min_drop_interval:Int = 300;
    public static var init_drop_speed:Float = 4;
    public static var increment_drop_speed:Float = .25;
    public static var increment_drop_speed_every:Float = 5;

    public static var font_color:UInt = 0xffa312;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;and finally, here is the zip file complete with all assets, everything that i used to create this simple game.&lt;/p&gt;

&lt;p&gt;&lt;a href="/downloads/turkey_haXe_source.zip"&gt;Download the entire source + assets (3.8 Mb)&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-04-01:45303</id>
    <published>2009-04-01T01:28:00Z</published>
    <updated>2009-04-03T00:16:14Z</updated>
    <category term="haXe Projects" />
    <category term="game" />
    <category term="haxe" />
    <link href="http://remixtechnology.com/view/ie6-game" rel="alternate" type="text/html" />
    <title>Internet Explorer 6 Sim Game</title>
<summary type="html">&lt;p&gt;A quick game that Werd and I came up with.&lt;br /&gt;
This is a sim-type puzzle game.&lt;br /&gt;
&lt;a href="/view/IE6-Game"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are a web developer at your local #4 web developing company. You have to build a website that is compatible with Internet Explorer 6 because that is what your client’s use in their office. Try to keep your job and finish your work in a timely manner.&lt;/p&gt;

&lt;p&gt;There are 4 levels in this game so far.&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;A quick game that Werd and I came up with.&lt;br /&gt;
This is a sim-type puzzle game.&lt;br /&gt;
&lt;a href="/view/IE6-Game"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are a web developer at your local #4 web developing company. You have to build a website that is compatible with Internet Explorer 6 because that is what your client’s use in their office. Try to keep your job and finish your work in a timely manner.&lt;/p&gt;

&lt;p&gt;There are 4 levels in this game so far.&lt;/p&gt;
&lt;p&gt;

You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view the awesome. It’s a free and fast upgrade.
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Instructions&lt;/em&gt;&lt;br /&gt;
For the first few seconds, you’ll see the website design that you must build. The creative department was nice enough to cut up the HTML elements for you to just drag and drop into everyone’s favorite WYSIWYG IDE: Front Page 97.&lt;br /&gt;
Then the timer will start. Drag and drop the elements from your assets directory on the right, to the WYSIWYG IDE on the left. Position the element correctly.  Now you should test it for IE6 by pressing the big IE6 icon (or press &lt;strong&gt;[ENTER]&lt;/strong&gt; to toggle). Go back to your IDE by pressing the icon again or the &lt;strong&gt;[ENTER]&lt;/strong&gt; key, and reposition the element so that it will look better in IE6. Keep switching between IE6 preview and your IDE until it looks right. Then drag and drop the next element in.
If you forget how the comp looks, hit the &lt;strong&gt;Preview&lt;/strong&gt; button at the top (or press &lt;strong&gt;[SPACEBAR]&lt;/strong&gt; to toggle).&lt;br /&gt;
If you have time, you can fine tune the element positioning by nudging them, hit &lt;strong&gt;[UP ARROW] [DOWN ARROW] [LEFT ARROW]&lt;/strong&gt; and &lt;strong&gt;[RIGHT ARROW]&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;When you are satisfied with how it looks in IE6, send your work to your boss for review by clicking the big Outlook Express icon.&lt;br /&gt;
Be aware the deadline, if time runs out, you lose automatically. So just turn in what you got and maybe you won’t lose.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Scoring&lt;/em&gt;&lt;br /&gt;
Valid Markup: How close your layout looks like the designer’s comp.&lt;br /&gt;
Deadline Bonus: Amount of time left, minus a penalty for unused page elements  &lt;/p&gt;

&lt;p&gt;Front Page 97 is a little buggy, so if you find any bugs, please post them in comments.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Post your scores below&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;br /&gt;
The Bobs&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-03-12:45289</id>
    <published>2009-03-12T22:18:00Z</published>
    <updated>2009-03-21T02:44:08Z</updated>
    <category term="haXe Projects" />
    <category term="3d" />
    <category term="actionscript3" />
    <category term="animation" />
    <category term="audio" />
    <category term="benchmark" />
    <category term="haxe" />
    <category term="sandy" />
    <category term="toy" />
    <link href="http://remixtechnology.com/view/sandy-31-haxe-spectrum-analyzer-disco-variation" rel="alternate" type="text/html" />
    <title>Sandy 3.1 haXe Spectrum Analyzer (Disco variation)</title>
<summary type="html">&lt;p&gt;This variation adds random colors when the spheres pulsate.&lt;br /&gt;same fps and memory displays exist, they are just hidden, use the keys to view them if you want.&lt;br /&gt;also using haXe compiler flag -D SANDY_USE_FAST_MATH&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-haXe-spectrum-analyzer-disco-variation"&gt;&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;This variation adds random colors when the spheres pulsate.&lt;br /&gt;same fps and memory displays exist, they are just hidden, use the keys to view them if you want.&lt;br /&gt;also using haXe compiler flag -D SANDY_USE_FAST_MATH&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-haXe-spectrum-analyzer-disco-variation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;

You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view the awesome. It's a free and fast upgrade.
&lt;/p&gt;
&lt;p&gt;This variation adds random colors when the spheres pulsate.&lt;br /&gt;same fps and memory displays exist, they are just hidden, use the keys to view them if you want.&lt;br /&gt;also using haXe compiler flag -D SANDY_USE_FAST_MATH&lt;/p&gt;
&lt;p&gt;The song that plays first is Kaskade - 4 AM (Adam K &amp;amp; Soha Radio Edit) (8.4mb)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;you can change the speed of the sphere rotation and orbit&lt;br /&gt;and toggle the benchmark displays and background color&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[up arrow]&lt;/strong&gt; speeds up sphere rotation speed&lt;br /&gt; &lt;strong&gt;[down arrow]&lt;/strong&gt; slows down sphere rotation speed&lt;br /&gt; &lt;strong&gt;[left arrow]&lt;/strong&gt; slows down sphere orbit speed&lt;br /&gt; &lt;strong&gt;[right arrow]&lt;/strong&gt; speeds up sphere orbit speed&lt;br /&gt;&lt;strong&gt;[b]&lt;/strong&gt; toggles background color white|black&lt;br /&gt; &lt;strong&gt;[m]&lt;/strong&gt; toggles memory display&lt;br /&gt; &lt;strong&gt;[u]&lt;/strong&gt; forces update of memory&lt;br /&gt; &lt;strong&gt;[f]&lt;/strong&gt; toggles fps meter display&lt;br /&gt; &lt;strong&gt;[SPACEBAR]&lt;/strong&gt; mutes/unmutes the music&lt;br /&gt; &lt;strong&gt;[1]&lt;/strong&gt; plays Enter Shikari - Johnny Sniper (5.5mb)&lt;br /&gt; &lt;strong&gt;[2]&lt;/strong&gt; plays Payami - Sweet Child of Mine (6.6mb)&lt;br /&gt; &lt;strong&gt;[3]&lt;/strong&gt; plays Genki Rockets - Intermediate -Orbit Swimming- (7.6mb)&lt;br /&gt; &lt;strong&gt;[4]&lt;/strong&gt; plays Kaskade - 4 AM (Adam K &amp;amp; Soha Radio Edit) (8.4mb)&lt;br /&gt; &lt;strong&gt;[5]&lt;/strong&gt; plays Shoupz Entertainment - Destroy She Said (Stryder) (4.2mb)&lt;br /&gt; &lt;strong&gt;[6]&lt;/strong&gt; plays DJ Loopy - Follow Me (6.2mb)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="/view/sandy-31-flash-spectrum-analyzer"&gt;&lt;strong&gt;Flash 10&lt;/strong&gt; (Flash ide)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/view/sandy-31-flex-spectrum-analyzer"&gt;&lt;strong&gt;Flex 3&lt;/strong&gt; (mxmlc)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/view/sandy-31-haXe-spectrum-analyzer"&gt;&lt;strong&gt;haXe 2.02&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="/view/sandy-31-haXe-fast-math-spectrum-analyzer"&gt;&lt;strong&gt;haXe 2.02 FAST_MATH&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;please post your scores in the comments. fps, mem, browser, os, cpu, etc. whatever it's fun.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-03-10:45286</id>
    <published>2009-03-10T22:15:00Z</published>
    <updated>2009-03-21T02:41:31Z</updated>
    <category term="3d" />
    <category term="actionscript3" />
    <category term="animation" />
    <category term="audio" />
    <category term="benchmark" />
    <category term="flex" />
    <category term="haxe" />
    <category term="sandy" />
    <category term="toy" />
    <link href="http://remixtechnology.com/view/haxe-flash-flex-benchmarks-on-sandy-3-1" rel="alternate" type="text/html" />
    <title>haXe flash flex benchmarks on Sandy 3.1</title>
<content type="html">
            &lt;p&gt;I've setup more tests to compare the new &lt;a href="http://www.flashsandy.org/" title="Sandy"&gt;Sandy 3.1 3D engine&lt;/a&gt; compiled on flash, flex, and &lt;a href="http://haxe.org" title="haXe"&gt;haXe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;thanks to Russell Weir (damonsbane) and cyanescent for porting the new Sandy as3 classes to &lt;a href="http://haxe.org" title="haXe"&gt;haXe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I added some more controls for fun and benchmarks, and a few new songs to test out.&lt;br /&gt;you can change the sphere rotation and orbit speed, and toggle the benchmark displays visiblity and background color&lt;/p&gt;
&lt;p&gt;please post your scores in the comments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flash 10 plugin is required to view these demos. &lt;a href="http://get.adobe.com/flashplayer/" title="Upgrade Flash"&gt;upgrade here http://get.adobe.com/flashplayer/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-flash-spectrum-analyzer"&gt;&lt;strong&gt;Flash 10&lt;/strong&gt; (Flash ide)&lt;br /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-flex-spectrum-analyzer"&gt;&lt;strong&gt;Flex 3&lt;/strong&gt; (mxmlc)&lt;br /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-haXe-spectrum-analyzer"&gt;&lt;strong&gt;haXe 2.02&lt;/strong&gt;&lt;br /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/sandy-31-haXe-fast-math-spectrum-analyzer"&gt;&lt;strong&gt;haXe 2.02 FAST_MATH&lt;/strong&gt;&lt;br /&gt; &lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-02-25:45282</id>
    <published>2009-02-25T22:11:00Z</published>
    <updated>2009-03-21T02:42:23Z</updated>
    <category term="3d" />
    <category term="actionscript3" />
    <category term="animation" />
    <category term="audio" />
    <category term="haxe" />
    <category term="sandy" />
    <category term="toy" />
    <link href="http://remixtechnology.com/view/soundmixer-computespectrum" rel="alternate" type="text/html" />
    <title>SoundMixer.computeSpectrum()</title>
<content type="html">
            &lt;p&gt;Messing around with the &lt;a href="http://www.flashsandy.org/haxe"&gt;haXe port of Sandy&lt;/a&gt; and &lt;a href="http://haxe.org/api/flash9/media/soundmixer"&gt;SoundMixer.computeSpectrum()&lt;/a&gt; in a couple car rides to the office.&lt;/p&gt;
&lt;p&gt;These 3 examples came out of it.&lt;/p&gt;
&lt;p&gt;You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view these demos, or you will hear music, but see nothing &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash 10"&gt;Get Flash, it's free&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/bar-style-analyzer"&gt;a Bar style spectrum analyzer, very accurate. demonstration plays 3 songs. &lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/eyeball-analyzer-on-crack"&gt;an eyeball, modifying x and y rotation and z position, very accurate. &lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/eyeball-analyzer-smooth"&gt;the same eyeball, just with smoother animations, much less accurate, but not as cracked out. &lt;br /&gt;&lt;/a&gt;&lt;a href="/view/eyeball-smooth"&gt;&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-01-31:45278</id>
    <published>2009-01-31T22:04:00Z</published>
    <updated>2009-03-21T01:05:55Z</updated>
    <category term="haXe Projects" />
    <category term="actionscript3" />
    <category term="animation" />
    <category term="benchmark" />
    <category term="haxe" />
    <category term="tween" />
    <link href="http://remixtechnology.com/view/htween_speed_test" rel="alternate" type="text/html" />
    <title>HTween speed test</title>
<content type="html">
            &lt;p&gt;&lt;a href="http://hesselboom.com/" title="Viktor Hesselboom"&gt;Viktor Hesselbom&lt;/a&gt; released his tweener class &lt;a href="http://hesselboom.com/blog/2009/01/htween-the-light-weight-tween-engine/" title="HTween"&gt;HTween&lt;/a&gt;, and it rocks!&lt;/p&gt;
&lt;p&gt;I've updated all three speed tests to include &lt;a href="http://hesselboom.com/blog/2009/01/htween-the-light-weight-tween-engine/" title="HTween"&gt;HTween&lt;/a&gt;. Just press T until you see &lt;a href="http://hesselboom.com/blog/2009/01/htween-the-light-weight-tween-engine/" title="HTween"&gt;HTween&lt;/a&gt;. On my system &lt;a href="http://hesselboom.com/blog/2009/01/htween-the-light-weight-tween-engine/" title="HTween"&gt;HTween&lt;/a&gt; performed better than &lt;a href="http://blog.greensock.com/tweenliteas3/" title="TweenLite"&gt;TweenLite&lt;/a&gt; and &lt;a href="http://ralcr.com/caurina/" title="TweenerHX"&gt;TweenerHX&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/haXe_TweenLite_vs_TweenerHX_demo" title="HTween Speed Test"&gt;try it out here http://remixtechnology.com/view/haXe_TweenLite_vs_TweenerHX_demo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/view/haXe_TweenLite_vs_TweenerHX_demo" title="haXe_TweenLite_vs_TweenerHX_demo"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://hesselboom.com/blog/http://hesselboom.com/blog/2009/01/htween-the-light-weight-tween-engine/" title="Viktor's blog"&gt;Download the haXe or as3 classes at Viktor's blog.&lt;/a&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2009-01-30:45277</id>
    <published>2009-01-30T21:58:00Z</published>
    <updated>2009-03-21T02:43:16Z</updated>
    <category term="actionscript3" />
    <category term="animation" />
    <category term="benchmark" />
    <category term="flex" />
    <category term="haxe" />
    <category term="tween" />
    <link href="http://remixtechnology.com/view/haxe_tweenlite_vs_tweenerhx" rel="alternate" type="text/html" />
    <title>haXe TweenLite vs. TweenerHX</title>
<content type="html">
            &lt;p&gt;In this experiment, I test the performance of two tweening classes in &lt;a href="/tags/haXe" title="haXe"&gt;haXe&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;My favorite &lt;a href="/tags/as3" title="as3"&gt;as3&lt;/a&gt; tweening class &lt;a href="http://blog.greensock.com/tweenliteas3/" title="TweenLite"&gt;TweenLite&lt;/a&gt; and &lt;a href="http://ralcr.com/caurina/" title="TweenerHX"&gt;TweenerHX&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;the results are pretty close. on my system &lt;a href="http://blog.greensock.com/tweenliteas3/" title="TweenLite"&gt;TweenLite&lt;/a&gt; is smoother and skips less frames than &lt;a href="http://ralcr.com/caurina/" title="TweenerHX"&gt;TweenerHX&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;i compiled the same code using flex and flash to compare against &lt;a href="/tags/haXe" title="haXe"&gt;haXe&lt;/a&gt;, the difference is much more significant, and posted them on seperate pages so you can see how they measure up on your system.&lt;/p&gt;

&lt;p&gt;

&lt;a href="/view/haXe_TweenLite_vs_TweenerHX_demo" title="haXe_TweenLite_vs_TweenerHX_demo"&gt;  &lt;/a&gt; 

&lt;a href="/view/flash10_TweenLite_vs_TweenerHX_demo" title="flash10_TweenLite_vs_TweenerHX_demo"&gt;  &lt;/a&gt; 

&lt;a href="/view/flex3_TweenLite_vs_TweenerHX_demo" title="flex3_TweenLite_vs_TweenerHX_demo"&gt; &lt;/a&gt;

&lt;/p&gt;

&lt;p&gt;if you find anything interesting, or just want to brag about the fps scores on the Mac Pro your mom bought you, post comments.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2008-11-28:45257</id>
    <published>2008-11-28T02:42:00Z</published>
    <updated>2009-03-21T02:47:03Z</updated>
    <category term="haXe Projects" />
    <category term="actionscript3" />
    <category term="flash" />
    <category term="game" />
    <category term="haxe" />
    <link href="http://remixtechnology.com/view/turkey_haxe" rel="alternate" type="text/html" />
    <title>Happy Thanksgiving!</title>
<summary type="html">&lt;p&gt;I woke up this morning wanting to make a quick thanksgiving &lt;a href="/tags/flash9"&gt;flash&lt;/a&gt; &lt;a href="/tags/game"&gt;game&lt;/a&gt; in &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt;.&lt;br /&gt;
I started at about 11am, took 1.5hrs break, and finished at 4:30pm.  &lt;/p&gt;

&lt;p&gt;nothing spectacular, i even borrowed images from all over “google images” just to finish this up so I can go get some turkey!&lt;/p&gt;

&lt;p&gt;Post up your high scores in my comments.  &lt;/p&gt;

&lt;p&gt;and Happy Thanksgiving!&lt;/p&gt;

&lt;p&gt;&lt;a href="/view/turkey_haXe"&gt;play “Turkey haXe” now&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I woke up this morning wanting to make a quick thanksgiving &lt;a href="/tags/flash9"&gt;flash&lt;/a&gt; &lt;a href="/tags/game"&gt;game&lt;/a&gt; in &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt;.&lt;br /&gt;
I started at about 11am, took 1.5hrs break, and finished at 4:30pm.  &lt;/p&gt;

&lt;p&gt;nothing spectacular, i even borrowed images from all over “google images” just to finish this up so I can go get some turkey!&lt;/p&gt;

&lt;p&gt;Post up your high scores in my comments.  &lt;/p&gt;

&lt;p&gt;and Happy Thanksgiving!&lt;/p&gt;

&lt;p&gt;&lt;a href="/view/turkey_haXe"&gt;play “Turkey haXe” now&lt;br /&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;

You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view the awesome. It’s a free and fast upgrade.
&lt;/p&gt;

&lt;p&gt;Post your high scores in the comments below.  &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2008-11-26:45255</id>
    <published>2008-11-26T12:51:00Z</published>
    <updated>2008-11-26T12:57:31Z</updated>
    <link href="http://remixtechnology.com/view/wtf-happened-to-remixtechnology-com" rel="alternate" type="text/html" />
    <title>WTF happened to RemixTechnology.com ???</title>
<content type="html">
            &lt;p&gt;I’ve decided to move all the old random crap to &lt;a href="http://blog.RemixTechnology.com"&gt;http://blog.RemixTechnology.com&lt;/a&gt; and only create articles on this &lt;strong&gt;new-ish&lt;/strong&gt; site that are helpful to other people.&lt;br /&gt;
I also want to start answering &lt;a href="/tags/flash9"&gt;flash&lt;/a&gt; and &lt;a href="/tags/actionscript3"&gt;actionscript&lt;/a&gt; questions, so i’ll post them up here.&lt;br /&gt;
And i’m also in love with &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; so i’ll be posting any &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; stuff i make for fun… for fun :P  &lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://remixtechnology.com/">
    <author>
      <name>theRemix</name>
    </author>
    <id>tag:remixtechnology.com,2008-11-26:45251</id>
    <published>2008-11-26T12:00:00Z</published>
    <updated>2009-03-21T02:47:22Z</updated>
    <category term="haXe Projects" />
    <category term="actionscript3" />
    <category term="flash" />
    <category term="haxe" />
    <link href="http://remixtechnology.com/view/astar-haxe" rel="alternate" type="text/html" />
    <title>A* haXe pathfinding</title>
<summary type="html">&lt;p&gt;I rewrote &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;bmod at BaseOneOnline.com&lt;/a&gt;’s &lt;a href="/tags/actionscript3"&gt;Actionscript 3.0&lt;/a&gt; A* classes to &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; (&lt;a href="/tags/flash9"&gt;flash9&lt;/a&gt; because I’m working on a game and needed some quick pathfinding. I also wanted to see if &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; would solve the A* algorithm faster than the adobe &lt;a href="/tags/actionscript3"&gt;actionscript 3&lt;/a&gt; compiler, and by how much.&lt;/p&gt;

&lt;p&gt;Original A* &lt;a href="/tags/actionscript3"&gt;Actionscript3&lt;/a&gt; by &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;BMOD at BaseOneOnline.com&lt;/a&gt;&lt;br /&gt;
&lt;a href="/view/AStar-haXe"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Same A* pathfinding by &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;BMOD&lt;/a&gt; ported to &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; by yours truly&lt;br /&gt;
&lt;a href="/view/AStar-haXe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/view/AStar-haXe"&gt;see the results…&lt;/a&gt;&lt;/p&gt;</summary><content type="html">
            &lt;p&gt;I rewrote &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;bmod at BaseOneOnline.com&lt;/a&gt;’s &lt;a href="/tags/actionscript3"&gt;Actionscript 3.0&lt;/a&gt; A* classes to &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; (&lt;a href="/tags/flash9"&gt;flash9&lt;/a&gt; because I’m working on a game and needed some quick pathfinding. I also wanted to see if &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; would solve the A* algorithm faster than the adobe &lt;a href="/tags/actionscript3"&gt;actionscript 3&lt;/a&gt; compiler, and by how much.&lt;/p&gt;

&lt;p&gt;Original A* &lt;a href="/tags/actionscript3"&gt;Actionscript3&lt;/a&gt; by &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;BMOD at BaseOneOnline.com&lt;/a&gt;&lt;br /&gt;
&lt;a href="/view/AStar-haXe"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Same A* pathfinding by &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;BMOD&lt;/a&gt; ported to &lt;a href="/tags/haXe"&gt;haXe&lt;/a&gt; by yours truly&lt;br /&gt;
&lt;a href="/view/AStar-haXe"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/view/AStar-haXe"&gt;see the results…&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I rewrote &lt;a href="http://blog.baseoneonline.com/?p=87" title="BaseOneOnline A* for Actionscript 3.0"&gt;bmod at BaseOneOnline.com&lt;/a&gt;’s &lt;a href="/tags/actionscript3" title="Articles tagged with actionscript3"&gt;Actionscript 3.0&lt;/a&gt; A* classes to &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt; (&lt;a href="/tags/flash9" title="Articles tagged with flash9"&gt;flash9&lt;/a&gt; because I’m working on a game and needed some quick pathfinding. I also wanted to see if &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt; would solve the A* algorithm faster than the adobe &lt;a href="/tags/actionscript3" title="Articles tagged with actionscript3"&gt;actionscript 3&lt;/a&gt; compiler, and by how much. The benchmarks are not as accurate on &lt;a href="http://blog.baseoneonline.com/?p=87" title="BaseOneOnline A* for Actionscript 3.0"&gt;bmod&lt;/a&gt;’s &lt;a href="/tags/actionscript3" title="Articles tagged with actionscript3"&gt;as3&lt;/a&gt; because he mentions he used an inaccurate timing method. I had trouble with &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt;’s &lt;a href="http://haxe.org/api/flash9/utils/timer"&gt;flash9.utils.Timer&lt;/a&gt; class too, so i used the &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt; &lt;a href="http://haxe.org/api/haxe/timer"&gt;haxe.Timer&lt;/a&gt; class to get a more accurate measurement.&lt;/p&gt;

&lt;p&gt;The solved path is not always the shortest path possible as intended. But will suffice for what i need it for.   &lt;/p&gt;

&lt;p&gt;When sorting a node’s neighbors by it’s cost (distance), I had some trouble because i didn’t know how to translate &lt;a href="/tags/actionscript3" title="Articles tagged with actionscript3"&gt;AS3&lt;/a&gt;’s &lt;a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Array.html#sort("&gt;Array.sort&lt;/a&gt;) to &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt;’s &lt;a href="http://haxe.org/api/array"&gt;Array.sort&lt;/a&gt;. So i added &lt;a href="http://blog.disktree.net/?p=27"&gt;DiskTree.net’s QuickSort&lt;/a&gt; (sorting the node property for distance “f”) to the com.baseoneonline.haxe.astar package. &lt;/p&gt;

&lt;p&gt;Other than the timer and replacing Array.sort with QuickSort, the code is pretty much the same, just re-written to be compiled on &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt;. There may be a few more enhancements i can make to make this faster, such as using &lt;a href="http://haxe.org/api/flash9/vector"&gt;Vector&lt;/a&gt; instead of &lt;a href="http://haxe.org/api/array"&gt;Array&lt;/a&gt; and compiling for flash10, something i may try, or you can try and let me know :)&lt;/p&gt;

&lt;p&gt;The original BaseOneOnline.com AS3 A* Article is here: &lt;a href="http://blog.baseoneonline.com/?p=87"&gt;http://blog.baseoneonline.com/?p=87&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The exact &lt;a href="/tags/actionscript3" title="Articles tagged with actionscript3"&gt;Actionscript3&lt;/a&gt; source that i used to convert to &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt;:&lt;br /&gt;
&lt;a href="/downloads/BaseOneOnline-AStar-AS3.zip"&gt;BaseOneOnline-AStar-AS3.zip&lt;/a&gt;&lt;br /&gt;
Check the site though, he may have an update&lt;/p&gt;

&lt;p&gt;My &lt;a href="/tags/haXe" title="Articles tagged with haXe"&gt;haXe&lt;/a&gt;‘d A* classes:&lt;br /&gt;
zipped: &lt;a href="/downloads/AStar-haXe.zip"&gt;AStar-haXe.zip&lt;/a&gt;&lt;br /&gt;
svn: &lt;a href="http://publicsvn.remixtechnology.com/AStar-haXe"&gt;http://publicsvn.remixtechnology.com/AStar-haXe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both examples have random “unwalkable” tiles generated, so just refresh this page to get a new random tile map. 
Just click around on the lighter tiles to find new paths  &lt;/p&gt;

&lt;p&gt;Original A* path finding in Actionscript 3 [&lt;span&gt;Source&lt;/span&gt;][&lt;span&gt;Destination&lt;/span&gt;]  &lt;/p&gt;

&lt;p&gt;

You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view the awesome. It’s a free and fast upgrade.
&lt;/p&gt;

&lt;p&gt;Ported A* path finding to haXe as3 [&lt;span&gt;Source&lt;/span&gt;][&lt;span&gt;Destination&lt;/span&gt;]  &lt;/p&gt;

&lt;p&gt;

You need &lt;a href="http://get.adobe.com/flashplayer/" title="Get Flash"&gt;Flash 10&lt;/a&gt; to view the awesome. It’s a free and fast upgrade.
&lt;/p&gt;

&lt;p&gt;i hope this fills your haXe tile based path finding needs well. Many thanks to &lt;a href="baseone"&gt;bmod&lt;/a&gt; for his great work!&lt;/p&gt;
          </content>  </entry>
</feed>
