Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-11-2002, 11:32   #1 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Ein einfaches Ballerspiel (MX Code)

Das Grundgerüst für ein einfaches Ballerspiel ist relativ
schnell gemacht. (Vor allem weil ich kein OOP benutzt
habe )

Was mich hier besonders interessiert hat, war die
Unterbringung der Schuesse und Feinde in eigenen MCs.
Dadurch wird die Buchhaltung stark vereinfacht, weil man
einfach mit for in Loops durch die Feinde oder Schuesse
laufen kann.

ActionScript:
  1. createEmptyMovieClip("schuesse", 1);
  2. createEmptyMovieClip("feinde", 2);
  3.  
  4. function Schuss(x, y, RichtungWinkel, Speed){
  5.     //Hier benutze ich bewusst nicht .depth,
  6.     //weil depth nicht in der "for in"-Schleife" über
  7.     //schuesse auftauchen soll
  8.     var d = ++schuesse_depth;
  9.     var mc = schuesse.createEmptyMovieClip("s" + d, d);
  10.     //startposition festlegen
  11.     mc._x = x;
  12.     mc._y = y;
  13.     //winkel in x und y anteil zerlegen
  14.     var alpha = RichtungWinkel * Math.PI / 180;
  15.     mc.xSpeed = Math.cos(alpha) * Speed;
  16.     mc.ySpeed = Math.sin(alpha) * Speed;
  17.     //frameloop eines schusses
  18.     mc.onEnterFrame = function(){
  19.         //animation des schusses
  20.         this._x += this.xSpeed;
  21.         this._y += this.ySpeed;
  22.         //kill me, wenn wir aus dem bild fliegen
  23.         if(this._x < 0 || this._x > 550) this.removeMovieClip();
  24.         if(this._y < 0 || this._y > 400) this.removeMovieClip();
  25.         //kollision mit einem feindl. raumschiff ?
  26.         for(var i in feinde){
  27.             if(this.hitTest(feinde[i])){
  28.                 feinde[i].removeMovieClip();
  29.                 this.removeMovieClip();
  30.                 break;
  31.             }
  32.         }
  33.     }
  34.     //schuss zeichnen
  35.     mc.lineStyle(2, 0xff0000);
  36.     mc.lineTo(5,0);
  37.     mc._rotation = RichtungWinkel;
  38. }
  39.  
  40. function Feind(){
  41.     //Hier benutze ich bewusst nicht .depth,
  42.     //weil depth nicht in der "for in"-Schleife" über
  43.     //feinde auftauchen soll
  44.     var d = ++feinde_depth;
  45.     //
  46.     var mc = feinde.createEmptyMovieClip("f" + d, d);
  47.     mc._x = random(550);
  48.     mc._y = random(400);
  49.     mc.xSpeed = Math.random() * 5 - 2;
  50.     mc.ySpeed = Math.random() * 5 - 2;
  51.     mc.zSpeed = Math.random() * 3 - 1;
  52.     //
  53.     //frameloop eines feindes
  54.     mc.onEnterFrame = function(){
  55.         //animation der position
  56.         this._x += this.xSpeed;
  57.         this._y += this.ySpeed;
  58.         //animation von groesse und alpha um tiefe zu simulieren
  59.         this._alpha = this._xscale = this._yscale += this.zSpeed;      
  60.         //an den rändern kommen wir zurueck
  61.         if(this._x < 0 || this._x > 550) this.xSpeed = -this.xSpeed;
  62.         if(this._y < 0 || this._y > 400) this.ySpeed = -this.ySpeed;
  63.         if(this._xscale < 50 || this._xscale > 150) this.zSpeed = -this.zSpeed;
  64.     }
  65.     //feind zeichnen
  66.     mc.lineStyle(0, 0x00ff00);
  67.     mc.beginFill(0x003333);
  68.     mc.moveTo(-20,-20);
  69.     mc.lineTo(20,-20);
  70.     mc.lineTo(20,20);
  71.     mc.lineTo(-20,20);
  72.     mc.endFill();
  73. }
  74.  
  75. onMouseUp = function(){
  76.     Schuss(550/2, 400, Math.atan2(_ymouse-400, _xmouse-550/2) * 180 / Math.PI, 3)
  77. }
  78.  
  79. for(i=0; i<10; i++) Feind();

Mit Copy & Paste sollte das funktionieren

mfg r.

Geändert von bokel (05-11-2002 um 11:35 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 05-11-2002, 11:38   #2 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
Thumbs up

funktioniert super.

missile command wär damit schnell gebaut

gruss
michael
michael ist offline   Mit Zitat antworten
Alt 05-11-2002, 15:32   #3 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
nice !!!

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 05-11-2002, 15:44   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
subba! mx rulez das ist das tolle. früher musste man noch eine halbe seite anleitung beilegen, welche mcs zu erstellen sind, welcher welche aktion bekommen muss und heutzutage brauchtm man nur einen code

lg,
sebastian
sebastian ist offline   Mit Zitat antworten
Alt 05-11-2002, 17:57   #5 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
Thumbs up

Yup mx macht schon spass nicht Daumen!

mfg
Matze K.
Madokan ist offline   Mit Zitat antworten
Alt 05-11-2002, 18:48   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
Thumbs up

fleissige arbeit bokel!

oder wollen wir ihn mr. bokel nennen?
Gnut ist offline   Mit Zitat antworten
Alt 05-11-2002, 18:51   #7 (permalink)
Banned
 
Registriert seit: Jan 2002
Beiträge: 4.777
wie wärs mit mr bokelman

ps:
schickes teil
the-ox ist offline   Mit Zitat antworten
Alt 05-11-2002, 21:15   #8 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
Thumbs up

wow der fällt mir echt nix mehr ein....
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 06-11-2002, 07:34   #9 (permalink)
ontheoutsidelookingin
 
Benutzerbild von dassoud
 
Registriert seit: Jun 2001
Ort: Dortmund
Beiträge: 5.897
Thumbs up

klasse!

..und keine 80 zeilen...

dassoud
__________________

33rpm
dassoud 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 12:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele