Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2004, 21:27   #1 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
[Stuff] AS2 Flash-Tron 1679Byte

ok, ist schon ein weilchen her, meine ersten as2 gehversuche quasi, der code kriegt also schonmal keinen schönheitspreis.


vieleicht hat ja trotzdem jemand spass dran.

wir brauchen eine Datei TronCycle.as

ActionScript:
  1. class TronCycle
  2. {
  3.     var map:Array;
  4.     var base:MovieClip;
  5.     var keys:Object;
  6.     var speed:Number;
  7.     var dir:Object;
  8.     var pos:Object;
  9.     var col:Number;
  10.     var raster:Number;
  11.     var gameItv:Number;
  12.     var points:Number = 0;
  13.     var n:Number = 1;
  14.     var onDead:Function;
  15.     public function TronCycle (base, map, raster, speed, color)
  16.     {
  17.         this.base = base;
  18.         this.map = map;
  19.         this.raster = raster;
  20.         this.speed = speed;
  21.         this.col = color;
  22.     }
  23.     public function startCycle (sx, sy, dx, dy, keys):Void
  24.     {
  25.         this.pos = {x:sx, y:sy};
  26.         this.dir = {x:dx, y:dy};
  27.         this.keys = keys;
  28.         if (this.keys)
  29.         {
  30.             Key.addListener (this);
  31.         }
  32.         this.base.clear ();
  33.         clearInterval (this.gameItv);
  34.         this.base.lineStyle (1, col);
  35.         this.base.moveTo (sx * this.raster, sy * this.raster);
  36.         this.gameItv = setInterval (this, "mapPos", speed);
  37.     }
  38.     public function stopCycle ():Void
  39.     {
  40.         clearInterval (this.gameItv);
  41.         Key.removeListener (this);
  42.     }
  43.     private function onKeyDown ():Void
  44.     {
  45.         if (Key.isDown (this.keys.right) && this.dir.x != -1)
  46.         {
  47.             this.dir.x = 1;
  48.             this.dir.y = 0;
  49.         }
  50.         else if (Key.isDown (this.keys.left) && this.dir.x != 1)
  51.         {
  52.             this.dir.x = -1;
  53.             this.dir.y = 0;
  54.         }
  55.         else if (Key.isDown (this.keys.up) && this.dir.y != 1)
  56.         {
  57.             this.dir.x = 0;
  58.             this.dir.y = -1;
  59.         }
  60.         else if (Key.isDown (this.keys.down) && this.dir.y != -1)
  61.         {
  62.             this.dir.x = 0;
  63.             this.dir.y = 1;
  64.         }
  65.     }
  66.     private function mapPos ():Void
  67.     {
  68.         var x = this.pos.x += this.dir.x;
  69.         var y = this.pos.y += this.dir.y;
  70.         if (!this.keys)
  71.         {
  72.             this.autoDrive (x, y);
  73.         }
  74.         this.setLine (x, y);
  75.     }
  76.     private function autoDrive (x, y):Void
  77.     {
  78.         if (this.map[y + this.dir.y][x + this.dir.x] != 0)
  79.         {
  80.             if (this.dir.y == 0)
  81.             {
  82.                 this.dir.x = 0;
  83.                 if (map[y + 1][x] != 0)
  84.                 {
  85.                     this.dir.y = -1;
  86.                 }
  87.                 else if (this.map[y - 1][x] != 0)
  88.                 {
  89.                     this.dir.y = 1;
  90.                 }
  91.                 else
  92.                 {
  93.                     this.dir.y = (Math.round (Math.random ())) ? 1 : -1;
  94.                 }
  95.             }
  96.             else if (this.dir.x == 0)
  97.             {
  98.                 this.dir.y = 0;
  99.                 if (this.map[y][x + 1] != 0)
  100.                 {
  101.                     this.dir.x = -1;
  102.                 }
  103.                 else if (map[y][x - 1] != 0)
  104.                 {
  105.                     this.dir.x = 1;
  106.                 }
  107.                 else
  108.                 {
  109.                     this.dir.x = (Math.round (Math.random ())) ? 1 : -1;
  110.                 }
  111.             }
  112.         }
  113.     }
  114.     private function setLine (x, y)
  115.     {
  116.         if (this.map[y][x] == 0)
  117.         {
  118.             this.base.lineTo (x * this.raster, y * this.raster);
  119.             this.points += 1;
  120.             this.map[y][x] = 1;
  121.         }
  122.         else
  123.         {
  124.             this.onDead ();
  125.             this.stopCycle ();
  126.         }
  127.     }
  128. }

und eine leere fla (420 x 350px dunkler hintergrund)
ActionScript:
  1. /***********************
  2. *  Flashtron by michael kneib
  3. *  listen(at)kneib.biz
  4. */
  5.  
  6. function mapArray (yl, xl):Array
  7. {
  8.     var temp = [];
  9.     for (var y = 0; y < yl; y++)
  10.     {
  11.         temp[y] = [];
  12.         for (var x = 0; x < xl; x++)
  13.         {
  14.             temp[y][x] = 0;
  15.         }
  16.     }
  17.     return temp;
  18. }
  19. function reset ():Void
  20. {
  21.     var map:Array = mapArray (75, 100);
  22.     with (this.createEmptyMovieClip ("feld", 1))
  23.     {
  24.         _x = 10;
  25.         _y = 25;
  26.         lineStyle (2, 0xFFFFFF);
  27.         moveTo (-raster, -raster);
  28.         lineTo (-raster, map.length * 4);
  29.         lineTo (map[0].length * raster, map.length * raster);
  30.         lineTo (map[0].length * raster, -raster);
  31.         lineTo (-raster, -raster);
  32.     }
  33.     status_txt.text = "";
  34.     tron1.stopCycle ();
  35.     tron3.stopCycle ();
  36.     tron4.stopCycle ();
  37.     tron5.stopCycle ();
  38.     tron2.stopCycle ();
  39.     tron1 = new TronCycle (feld.createEmptyMovieClip ("c1", 1), map, raster, 40, colors[0]);
  40.     tron2 = new TronCycle (feld.createEmptyMovieClip ("c2", 2), map, raster, 42, colors[1]);
  41.     tron3 = new TronCycle (feld.createEmptyMovieClip ("c3", 3), map, raster, 43, colors[2]);
  42.     tron4 = new TronCycle (feld.createEmptyMovieClip ("c4", 4), map, raster, 44, colors[3]);
  43.     tron5 = new TronCycle (feld.createEmptyMovieClip ("c5", 5), map, raster, 45, colors[4]);
  44.     tron1.startCycle (20, 10, 0, 1);
  45.     tron2.startCycle (40, 10, 0, 1);
  46.     tron3.startCycle (60, 10, 0, 1);
  47.     tron4.startCycle (50, 65, 0, -1, {up:38, down:40, left:37, right:39});
  48.     tron5.startCycle (80, 10, 0, 1);
  49.     tron4.onDead = function ()
  50.     {
  51.         status_txt.text = "Oops!\nPress \"R\" for Restart";
  52.     };
  53. }
  54. var raster = 4;
  55. var colors = [0xFFFF99, 0x9999FF, 0x99FF99, 0xFF0000, 0xFF9999];
  56. var tf:TextFormat = new TextFormat ();
  57. tf.align = "center";
  58. tf.bold = true;
  59. tf.color = 0xFFFFFF;
  60. this.createTextField ("status_txt", 9, 150, 150, 120, 50);
  61. this.status_txt.setNewTextFormat (tf);
  62. this.status_txt.text = "Press \"R\" for Restart";
  63. var obj:Object = new Object ();
  64. obj.onKeyDown = function ()
  65. {
  66.     if (Key.isDown (82))
  67.     {
  68.         reset ();
  69.     }
  70. };
  71. Key.addListener (obj);
viel spass beim erweitern oder verbessern.
wenn ich sehe mit wie wenig code andere raycasting-engines schreiben, geht das hier bestimmt um einiges kürzer.

interessanterweise erzeugt die simple autoDrive-methode exact das fahrverhalten wie das java-tron auf meinem handy


have fun

gruß
michael

Geändert von michael (05-08-2004 um 10:40 Uhr)
michael ist offline   Mit Zitat antworten
Alt 04-08-2004, 23:18   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Thumbs up

gut gemacht
Ich hab's nicht getestet und weiss auch nicht was das ist
Gnut ist offline   Mit Zitat antworten
Alt 05-08-2004, 00:40   #3 (permalink)
Freizeit Flasher
 
Registriert seit: Sep 2002
Beiträge: 71
gefällt mir auch gut...danke.

noch ne bitte. Gibts da vielleicht was zu klicken? Habe Probleme beim code kopieren wenn er zu lang ist. ne kleine zip Datei wäre schick.

cheers,

Jens
jschum2s ist offline   Mit Zitat antworten
Alt 05-08-2004, 08:46   #4 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
oh, ja klar

so siehts aus (in den flashfilm klicken um focus zu setzen)

zip im anhang.

gruß
michael
Angehängte Dateien
Dateityp: zip tronas2.zip (9,3 KB, 78x aufgerufen)

Geändert von michael (05-08-2004 um 10:39 Uhr)
michael ist offline   Mit Zitat antworten
Alt 05-08-2004, 09:27   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das ist ja ein cooles Spiel. Ich kannte Tron ja schon als Film, aber das Spiel noch nicht.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 05-08-2004, 09:55   #6 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
*seufz* die gute alte Zeit...
weiß noch wie ich das basic-tron früher endlos lang gezockt hab'.... immer mit Kumpels... bis zu 6 an einer tastatur (!)... das war richtig cool, das war ein wahres Multiplayerspiel

mir fehlt jetzt nur noch das "sie haben gewonnen" sobald man alle anderen ausgeschaltet hat...
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 05-08-2004, 10:18   #7 (permalink)
www.kruesch.de
 
Benutzerbild von flory
 
Registriert seit: Feb 2002
Beiträge: 1.057
wenn man mehrmals "R" drückt sieht es sehr abgefahren aus
__________________
www.planet-xaml.net
flory ist offline   Mit Zitat antworten
Alt 05-08-2004, 10:29   #8 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
ui cool... sobald man dann bereits in eine Richtung gedrückt hat kann man schöne Formen machen
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 05-08-2004, 10:42   #9 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
mist, lol

ok, bug notdürftig beseitigt und zip, script, beispiel aktualisiert
michael ist offline   Mit Zitat antworten
Alt 05-08-2004, 10:56   #10 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
jo, cool.

manchmal kommt es mir so vor, als ob die Kollision zu früh wär'.... also ein gutes Stück vor dem Gegner, der Wand, ... komisch.
Kann aber auch sein, daß ich einfach nur zuuuu langsam bin
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 05-08-2004, 14:41   #11 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
goil..
warrantmaster ist offline   Mit Zitat antworten
Alt 05-08-2004, 15:18   #12 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
wie fett !

ichs mal versucht in mx zu scripten....
hab dann aber aufgrund zeit nie weiter gemacht ....

find ich richtig cool

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 05-08-2004, 15:28   #13 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Hm...

Ich glaube die vier Gegner cheaten... die lassen immer nur einen Pixel Abstand zur Wand. Ich krieg' das nie so hin.

Aber ein sehr nettes Game. Gut, Knut.
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 05-08-2004, 16:13   #14 (permalink)
0x2b | ~0x2b;
 
Benutzerbild von bort
 
Registriert seit: Jan 2003
Ort: Rocky Beach
Beiträge: 370
Thumbs up

Sehr sehr cool!!!

Jau, wir haben das früher auch immer zu sechst am C64 gedaddelt. Ein nettes Feature war damals, dass man durch die "Löcher" die andere durch crash in die Außenwand hinterlassen haben, "escapen" konnte - das gab dann extra Punkte. Genauso gab es Punkte, wenn man einen anderen Mitspieler auf dem Gewissen hatte

Ich hab das 2000 mal als Shockwave (also Director) nachgebaut. Link: http://www.crash.de/bort/shock/tron.html

Das mit dem "escapen" wär doch ein nettes add-on, oder gutknut?

8-Bit forever!

Gruß,
bort.
__________________
http://www.flexperten.de
bort ist offline   Mit Zitat antworten
Alt 05-08-2004, 16:59   #15 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
goil
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele