Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-04-2011, 12:47   #1 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Breakout Clone - Kollision

Hallo FF,

ich bin gerade dabei einen Breakout-Clone zu programmieren. Klappt auch alles wunderbar soweit... Levels werden aus einer XML geladen und auch die Steine werden korrekt platziert. Bewegungen von Ball und Pedal besteht auch schon, jedoch hab ein bisschen Probleme mit der korrekten! Kollision.

Alle meine Steine liegen in einem Array und habe eine X&Y Koordinate. Ich prüfe jetzt im EnterFrame ob der Ball rechts, links, oben oder unten den Stein trifft.

PHP-Code:
// Wenn der Ball einen Stein trifft
if (ballRect.intersects(brickRect)) {

level.getBricks().splice(level.getBricks().indexOf(brick),1);

// Ball abprallen lassen
if (brickRect.contains(ballRect.,ballRect.top) || brickRect.contains(ballRect.xballRect.bottom)) {
ball.setYspeed(-(ball.getYspeed()));
break;
} else if (
brickRect.contains(ballRect.leftballRect.y) || brickRect.contains(ballRect.rightballRect.y)){
ball.setXspeed(-(ball.getXspeed()));

Das funktioniert zwar, aber auch nicht wirklich richtig. Mal wird der Ball komisch "abgeleitet" oder springt auch mal durch einen Stein hindurch. Gibt es nicht eine bessere Methodik um zu prüfen wo der Ball aufschlägt und auch korrekt wieder abprallt.

PS: Ist es performanter einen Timer zu benutzen anstatt eines EnterFrames?

lg
muschko ist offline   Mit Zitat antworten
Alt 18-04-2011, 13:21   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
seltsamer weisse passiert das allen ;-)

wenn sich der ball jeweils weiter bewegt, als deine mauer dick ist, dann springt er drüber.
entweder du musst öfters berechnen um kleinere weiter zu erhalten
oder du musst die geschwindigkeit reduzieren
oder du musst den befehl 'intersects' kicken und die schnittpunkte linie (ballbewegung) mit linie (mauer) selbst berechnen.

nur mit intersects ermittelst du auch nicht, wie weit dein ball eindrinnt bzw. ob er die mauersteine seitlich trifft; was dein 'komisch "abgeleitet" ' erklärt.

http://www.seibsprogrammladen.de/fra.../Schnittpunkte
http://www.seibsprogrammladen.de/fra...piel/Kleinkram <-- man muss ja auch mal angeben dürfen ;-)
http://www.seibsprogrammladen.de/fra.../Spiel/Engines <-- PinLines-Engine schnittpunkt berechnen, den reststahl abbrallen, damit wieder schnittpunkt berechnen, bis kein rest mehr da ist.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-04-2011 um 13:31 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 18-04-2011, 14:56   #3 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
okay danke für die hinweiße
ich glaub ich werde nicht darum kommen mir die Schnittpunkte selbst zu berechnen, ich glaube das ist die beste Alternative von den 3en

eine Frage noch, wie hast du es in deinem Beispiel "mauer" gelöst?
muschko ist offline   Mit Zitat antworten
Alt 22-04-2011, 06:45   #4 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
ich habe mal probiert nun dein Linie-Linie Schnittpunkt Beispiel zu verstehen. Ich hab aber dazu ein paar Fragen.
Wann weiß denn die Methode wenn sich 2 Linien gekreuzt haben ? Und bei unserem Beispiel, woher wüsste er dann ob er links, rechts, oben oder unten getroffen wurde.
Und da ich 4 Punkte habe, müsste ich das 4x berechnen für jede Seitenline 1x oder wie
Ich blick es noch nicht so richtig.

Ich bräuchte mal ein Beispiel anhand eines Arrays von bricks mit einem Ball.

Geändert von muschko (22-04-2011 um 19:38 Uhr)
muschko ist offline   Mit Zitat antworten
Alt 23-04-2011, 00:05   #5 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.869
für ein klassisches Breakout brauchst du doch "nur" eine Kollisionsberechnung linie-Rechteck, komplexer sind die Formen doch nicht.

hier mal eine zweite Demo (swf && fla (CS4) sind im Anhang)

der Kern des ganzen ist folgende Funktion, und eine Erweiterung hiervon:
winkel zu xy && länge Bildschirmrand
PHP-Code:
var f:Number;

function 
hitTestRect(p:Pointv:Pointrect:Rectangle):Point
{
    var 
fx:Numberfy:Numberox:Booleanoy:Booleantx:Numberty:Number;
    
NaN;
    
    
//vertical
    
if (v.== 0){
        if (
v.== || p.<= rect.left || p.>= rect.right) return null;
        
        if (
v.0){
            if(
p.rect.top){
                
= (rect.top p.y) / v.y;
                return new 
Point(rect.topp.y);
            }else if(
p.rect.bottom){
                
= (rect.bottom p.y) / v.y;
                return new 
Point(rect.bottomp.y);
            }else{
                return 
null;
            }
        }else{
            if(
p.rect.bottom){
                
= (rect.bottom p.y) / v.y;
                return new 
Point(rect.bottomp.y);
            }else if(
p.rect.top){
                
= (rect.top p.y) / v.y;
                return new 
Point(rect.topp.y);
            }else{
                return 
null;
            }
        }
    }
    
    
//horizontal
    
if (v.== 0){
        if (
p.<= rect.top || p.>= rect.bottom) return null;
        
        if (
v.0){
            if(
p.rect.left){
                
= (rect.left p.x) / v.x;
                return new 
Point(p.xrect.left);
            }else if(
p.rect.right){
                
= (rect.right p.x) / v.x;
                return new 
Point(p.xrect.right);
            }else{
                return 
null;
            }
        }else{
            if(
p.rect.right){
                
= (rect.right p.x) / v.x;
                return new 
Point(p.xrect.right);
            }else if(
p.rect.left){
                
= (rect.left p.x) / v.x;
                return new 
Point(p.xrect.left);
            }else{
                return 
null;
            }
        }
    }
    
    
    
//diagonal
    
if (v.0){
        if(
p.rect.bottom){
            
ty = (oy = (p.rect.top))? rect.toprect.bottom;
        }else{
            return 
null;
        }
    }else{
        if(
p.rect.top){
            
ty = (oy = (p.rect.bottom))? rect.bottomrect.top;
        }else{
            return 
null;
        }
    }
    
    if (
v.0){
        if(
p.rect.right){
            
tx = (ox = (p.rect.left))? rect.leftrect.right;
        }else{
            return 
null;
        }
    }else{
        if(
p.rect.left){
            
tx = (ox = (p.rect.right))? rect.rightrect.left;
        }else{
            return 
null;
        }
    }
    
    
fx = (tx-p.x) / v.x;
    
fy = (ty-p.y) / v.y;

    if( (
ox && oyfx>fyfx<fy) ){
        
fx;
        
ty p.v.fx;
        if(
ty rect.top || ty rect.bottom) return null;
    }else{
        
fy;
        
tx p.v.fy;
        if(
tx rect.left || tx rect.right) return null;
    }
    
    return new 
Point(txty);

wirkt erstmal lang, aber wenn du genau hinsiehst besteht der fast nur aus verschachtelten Bedingungen und Funktionsabbrüchen.

die Variable f hab ich extra herausgestellt, da sie ebenfalls die Dauer bis zum treffer ausgibt, in frames (bei gleichem Vektor)
Angehängte Dateien
Dateityp: fla BreakoutDemo.fla (64,0 KB, 4x aufgerufen)
Dateityp: swf BreakoutDemo.swf (2,4 KB, 28x aufgerufen)
__________________
greetz Thomas

plz RTFM & Coding Conventions

Geändert von thomas_E (23-04-2011 um 00:17 Uhr)
thomas_E ist offline   Mit Zitat antworten
Alt 24-04-2011, 07:07   #6 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Wow danke! Soviel hätte ich gar nicht erwartet werde ich am Montag mal ausprobieren.

Gruß muschko
muschko ist offline   Mit Zitat antworten
Alt 24-04-2011, 14:35   #7 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
hätte da auch noch was im angebot

war primär für sichtbarkeitstest entwickelt und ist schon ein tick älter aber seit dem für solche geschichten bei mir im einsatz, ist allerdings schon komplett OO umgesetzt und schlanker als die funktion von thomas_E

die klasse AABB (axis-aligned bounding box / achsen-ausgerichtete bounding box) verwaltet ein rechteck, mit der methode detectCollision() kann ein linienschnitttest mit dem rechteck durchgeführt werden.

die methode detectCollision() erwartet als ersten parameter ein objekt mit den eigenschaften x / y für die position sowie vx / vy für die geschwindigkeit / sichtweite etc, der zweite parameter ist ein array in dem das kollisionsobjekt eingetragen wird falls eine kollision stattfindet.

das kollisionsobjekt (klasse CollisionData) enthält sämtliche informationen wie das getroffene objekt, welche seite getroffen wurde, der genaue schnittpunkt und die distanz. besonders die distanz ist enorm nützlich, damit kann man sortieren, den reststrahl berechnen, die krafteinwirkung bestimmen usw.

ActionScript:
  1. package 
  2. {
  3.     public class AABB
  4.     {
  5.         private var tempData:CollisionData, tempRay:Ray = new Ray(0, 0, 0, 0);
  6.         private var temp1:int, temp2:int, temp3:int, temp4:int;
  7.         private var top:Ray, bottom:Ray, left:Ray, right:Ray;
  8.         private var d:Number, t:Number, s:Number;
  9.        
  10.         public function AABB(x:Number, y:Number, width:int, height:int) {
  11.             width  /= 2;
  12.             height /= 2;
  13.            
  14.             top    = new Ray(x - width, y - height, x + width, y - height);
  15.             bottom = new Ray(x - width, y + height, x + width, y + height);
  16.             left   = new Ray(x - width, y - height, x - width, y + height);
  17.             right  = new Ray(x + width, y - height, x + width, y + height);
  18.         }
  19.        
  20.         public function detectCollision(source:*, resultData:Array) : void {
  21.             tempRay.x1 = source.x;
  22.             tempRay.y1 = source.y;
  23.             tempRay.x2 = source.x + source.vx;
  24.             tempRay.y2 = source.y + source.vy;
  25.            
  26.             if      (source.vx > 0 && intersectRays(tempRay, left))   pushData(resultData, 1);
  27.             else if (source.vx < 0 && intersectRays(tempRay, right))  pushData(resultData, 2);
  28.            
  29.             if      (source.vy > 0 && intersectRays(tempRay, top))    pushData(resultData, 3);
  30.             else if (source.vy < 0 && intersectRays(tempRay, bottom)) pushData(resultData, 4);
  31.         }
  32.        
  33.         private function pushData(data:Array, side:int) : void {
  34.             tempData.distance = Math.sqrt(Math.pow(tempData.x - tempRay.x1, 2) + Math.pow(tempData.y - tempRay.y1, 2));
  35.             tempData.side = side;
  36.             data.push(tempData);
  37.         }
  38.        
  39.         private function intersectRays(r1:Ray, r2:Ray) : Boolean {
  40.             temp1 = r1.x2 - r1.x1; temp2 = r1.y2 - r1.y1;
  41.             temp3 = r2.x2 - r2.x1; temp4 = r2.y2 - r2.y1;
  42.             d =  temp1 * temp4 - temp2 * temp3;
  43.             t = -(r1.x1 * temp4 - r1.y1 * temp3 - r2.x1 * temp4 + r2.y1 * temp3) / d;
  44.             s = -(r1.x1 * temp2 - r1.y1 * temp1 + temp1 * r2.y1 - temp2 * r2.x1) / d;
  45.             if ((t > 0 && s > 0) && (t < 1 && s < 1)) {
  46.                 tempData = new CollisionData(this, r1.x1 + temp1 * t, r1.y1 + temp2 * t);
  47.                 return true;
  48.             }
  49.             return false;
  50.         }
  51.     }
  52. }
  53.  
  54. // Hilfsklassen ######################################################
  55.  
  56. class CollisionData
  57. {
  58.     public var target:AABB;     // das getroffene objekt
  59.     public var side:int;        // getroffene kante
  60.     public var x:int, y:int;    // schnittpunkt
  61.     public var distance:Number; // zurückgelegte distanz
  62.        
  63.     public function CollisionData(_target:AABB, _x:int, _y:int) {
  64.         target = _target;
  65.         x      = _x;
  66.         y      = _y;
  67.     }
  68. }
  69.    
  70. class Ray
  71. {
  72.     public var x1:int, y1:int, x2:int, y2:int;
  73.    
  74.     public function Ray(_x1:int, _y1:int, _x2:int, _y2:int) {
  75.         x1 = _x1;
  76.         y1 = _y1;
  77.         x2 = _x2;
  78.         y2 = _y2;
  79.     }
  80. }

verwendung:

ActionScript:
  1. // kollisionsDaten und boxes sind beides arrays
  2. // in boxes sind die AABB objekte eingetragen, kollisionsDaten dient zum speichern der kollisionen
  3.  
  4. kollisionsDaten.length = 0; // kollisionsdaten zurücksetzen
  5. for each (box in boxes) box.detectCollision(ball, kollisionsDaten);
  6.            
  7. if (kollisionsDaten.length) {  // kollision vorhanden
  8.    kollisionsDaten.sortOn("distance", Array.NUMERIC); // objekte anhand der entfernung sortieren
  9.    
  10.    // in kollisionsDaten[0] befindet sich nun das kollisionsobjekt des zuerst getroffenen AABB objektes
  11.    infoTXT.text = "Kollision mit " + kollisionsDaten[0].target + " | Getroffene Seite: " + kollisionsDaten[0].side;
  12. } else {
  13.    infoTXT.text = "Keine Kollision";
  14. }
möchte man die AABB objekte mit den sprites verknüpfen kann man die klasse einfach um eine eigenschaft erweitern, über die kollisionsdaten kommt man dann an das objekt oder man schreibt sich einen manager dafür.

das schöne an der methode ist das man innerhalb eines zyklus gleich alle potenziell getroffenen objekte zurück kriegt und sortieren kann, so kann man den ball zb. erst am zweiten block abprallen lassen und den zuerst getroffenen einfach nur zerstören (für power-ups etc).

demo
maus bewegen, klicken um den linienursprung neu zu setzen

Geändert von ING (24-04-2011 um 14:41 Uhr)
ING ist offline   Mit Zitat antworten
Alt 26-04-2011, 08:47   #8 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Zitat:
Zitat von ING Beitrag anzeigen
möchte man die AABB objekte mit den sprites verknüpfen kann man die klasse einfach um eine eigenschaft erweitern, über die kollisionsdaten kommt man dann an das objekt oder man schreibt sich einen manager dafür.

das schöne an der methode ist das man innerhalb eines zyklus gleich alle potenziell getroffenen objekte zurück kriegt und sortieren kann, so kann man den ball zb. erst am zweiten block abprallen lassen und den zuerst getroffenen einfach nur zerstören (für power-ups etc).

demo
maus bewegen, klicken um den linienursprung neu zu setzen
Hallo ING,

erstmal ein riesen "Danke" an deine Klasse. Echt super, so kann ich das nämlich gleich öfters mal benutzen.

Jedoch habe ich noch ein Problem. Und zwar hab ich nun eine Liste mit AABB Objects ( Meine Steine ) und teste diese auf Kollisionen mit meinem Ball ( ganz normaler MovieClip ).
Oben und Links funktioniert die Kollision super, aber Rechts und Unten geht der Ball mindestens zuf Hälfte in den Stein hinein und prallt dann ab.
Ich denke du kannst mir helfen woran das liegen könnte.

Danke nochmal an alle
muschko
muschko ist offline   Mit Zitat antworten
Alt 29-04-2011, 15:25   #9 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
Zitat:
Zitat von muschko Beitrag anzeigen
Oben und Links funktioniert die Kollision super, aber Rechts und Unten geht der Ball mindestens zuf Hälfte in den Stein hinein und prallt dann ab.
Ich denke du kannst mir helfen woran das liegen könnte.
das liegt vermutlich daran das bei der kollision nicht die breite des balls berücksichtigt wird, ab dem punkt wirds dann langsam wirklich kompliziert was die kollisionabfrage bewegter objekte angeht.

simpler workaround: einfach die bounding box entsprechend vergrößerst, ein ball.width dazu addieren reicht meistens schon.

du solltest auch berücksichtigen das die x und y werte die der klasse übergeben werden den mittelpunkt darstellen und nicht die linke obere ecke
ING ist offline   Mit Zitat antworten
Alt 30-04-2011, 15:52   #10 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Also die Steine erstelle ich nun so:

ActionScript:
  1. var brickAABB:AABB = new AABB(brick.x + brick.width/2 ,brick.y + brick.height/2, 30 , 20 );

Jetzt müsste ich es quasi so ändern, dass die Breite des Balls berücksichtigt wird:

ActionScript:
  1. var brickAABB:AABB = new AABB(brick.x + brick.width/2 ,brick.y + brick.height/2, 30 + ball.width , 20 );

Leider funktioniert das nicht so wie ich möchte. Denn manchmal werden in einer kompletten Steinreihe, nur von links und rechts "treffbar". Alle anderen funktionieren dann tabellos

Muss der Ball eigentlich auch ein AABB Object sein oder reicht da ein normaler MC?

Danke nochmal für deine Hilfe.

Geändert von muschko (30-04-2011 um 18:11 Uhr)
muschko ist offline   Mit Zitat antworten
Alt 01-05-2011, 21:47   #11 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
also der ankerpunkt der objekte spielt auch eine rolle, wenn der überall zentriert ist sollte das aber eigentlich klappen

bin grad dabei die breakout spielmechanik nachzubauen und hab dabei auch bemerkt das es vorkommen kann das manchmal eine reihe aus einer bestimmten richtung ignoriert wird. problem ist wenn die "bewegungslinie" des balls pixelgenau auf die andere linie trifft, dabei kann eine kollision übersehen werden, umso langsamer die bewegung umso höher die wahrscheinlichkeit.

wie eingangs erwähnt, war das für sichtbarkeitstest entwickelt, da fiel mir das nie auf. hab das problem aber schon behoben, infolge dessen model ich das ganze grad aber nochmal etwas um und kann dir in den nächsten tagen bestimmt eine überarbeitete version anbieten wo das problem behoben ist
ING ist offline   Mit Zitat antworten
Alt 02-05-2011, 13:11   #12 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Zitat:
Zitat von ING Beitrag anzeigen
also der ankerpunkt der objekte spielt auch eine rolle, wenn der überall zentriert ist sollte das aber eigentlich klappen

bin grad dabei die breakout spielmechanik nachzubauen und hab dabei auch bemerkt das es vorkommen kann das manchmal eine reihe aus einer bestimmten richtung ignoriert wird. problem ist wenn die "bewegungslinie" des balls pixelgenau auf die andere linie trifft, dabei kann eine kollision übersehen werden, umso langsamer die bewegung umso höher die wahrscheinlichkeit.

wie eingangs erwähnt, war das für sichtbarkeitstest entwickelt, da fiel mir das nie auf. hab das problem aber schon behoben, infolge dessen model ich das ganze grad aber nochmal etwas um und kann dir in den nächsten tagen bestimmt eine überarbeitete version anbieten wo das problem behoben ist
Wow das wäre perfekt. Bin dir sehr dankbar
Genau was du beschrieben hast ist bei mir aufgetreten, das manche Steine nur von bestimmten Seiten getroffen werden konnten.

Sobald ich das dann fertig habe, kann ich dir ja mal meine Version von Breakout zeigen ... "Breax"

Grüße
muschko
muschko ist offline   Mit Zitat antworten
Alt 04-05-2011, 18:24   #13 (permalink)
ING
whatever
 
Registriert seit: May 2008
Beiträge: 419
so, das ganze wurde nun einem ordentlichen refactoring unterzogen es sollte aber alles wie bisher funktionieren...
  • es ist die klasse Bounds hinzugekommen auf der nun alles basiert, damit sind auch kollisionstest mit polygonen möglich. die klasse AABB erbt von ihr, erstellt auto. die rechteck-kanten und überschreibt die detectCollision methode da bei aabb's nur 2 linienschnitttests nötig sind.
  • die detectCollision methode gibt jetzt zusätzlich ein bool zurück ob eine kollision stattgefunden hat (nützlich bei einzelnen tests), so ist auch der 2. parameter (das array was die kollisionsdaten aufnimmt) optional geworden. man kann aber ggf. auch hier über aabbObject.collision auf die kollisionsdaten zugreifen.
  • AABB objekte können invertiert werden, so werden anstatt kollisionen von außen nur welche von innen erkannt, so können objekte in AABB objekten "gefangen" werden (stage begrenzung etc).
  • performance macht auch einen guten eindruck, selbst bei 100 bricks, 2 bällen und 60 fps (= 12000 kollisionstests pro sekunde) ist auf meinem alten webrechner kein perfomanceverbrauch messbar
--------------------------------------------------

ich hab die breakout demo nur auf die schnelle umgesetzt, besonders das kollisionshandling (klasse: Ball, methode: projectCollision) hab ich nur hingeschlampt, die "engine" übernimmt zwar die kollisionserkennung aber das handling bleibt einem selbst überlassen. normalerweise kommen hier die geschichten wie ausfallswinkel & reststrahl berechnen, reststrahl auf weitere kollisionen testen usw. zum einsatz, das ist umso wichtiger umso kleiner der abstand zwischen den objekten wird.

das gute ist das das CollisionData objekt alle nötigen daten verfügbar macht, auch auf die daten der getroffenen seite (Ray objekt) kann man zugreifen, über kollisionsDaten.target.rays[kollisionsDaten.side].angle erhält man zb. den winkel der getroffenen seite. über die Ray klasse (vergleichbar mit einem Vector2D objekt) kann man das recht unkompliziert lösen, denk ich. werd das bei nächster gelegenheit auch nochmal in angriff nehmen, bis dahin überlasse ich jedem diesen spaß, bin aber für lösungen immer offen

Breakout Demo (3kb, breakout endlosschleife)
Download (3kb, demo code und kollisionerkennung (im package ing.bounds))

--------------------------------------------------

Zitat:
Zitat von muschko Beitrag anzeigen
Genau was du beschrieben hast ist bei mir aufgetreten, das manche Steine nur von bestimmten Seiten getroffen werden konnten.
habs ja erst aufgrund deines hinweises entdeckt, hätt die wahrscheinlichkeit für dieses ereignis aber niemals als so groß eingeschätzt als das ich sie hätte berücksichtigen müssen denn die "bewegungslinie" des balls muss sich innerhalb eines zyklus genau mit dem anfang und dem ende pixelgenau auf der linie befinden

lösung war denkbar einfach, die linie einfach um 1 pixel verlängern, dadurch entsteht zwar die möglichkeit auf bis zu einem pixel ungenauigkeit aber ich denke die ist verschnmerzbar

Zitat:
Zitat von muschko Beitrag anzeigen
Sobald ich das dann fertig habe, kann ich dir ja mal meine Version von Breakout zeigen ... "Breax"
unbedingt!
ING ist offline   Mit Zitat antworten
Alt 04-05-2011, 22:49   #14 (permalink)
+ Zimt & Zucker
 
Registriert seit: Mar 2006
Ort: hinterm Mond gleich links
Beiträge: 2.043
Warum eigentlich nicht auf sowas wie box2d zurück greifen?
__________________
anbei Grüße vom milchreis: Viva la [Silb]

[Von null auf Flash in einem Klick.] <<< klick
milchreis ist offline   Mit Zitat antworten
Alt 05-05-2011, 15:12   #15 (permalink)
alte pfeife
 
Benutzerbild von muschko
 
Registriert seit: May 2003
Ort: Kassel
Beiträge: 1.222
Zitat:
Zitat von milchreis Beitrag anzeigen
Warum eigentlich nicht auf sowas wie box2d zurück greifen?
Hat den ganz einfachen Hintergrund, dass ich das erst selber schreiben wollte und gar nicht gesehen habe, dass es doch relativ umfangreich ist. Auch den ganzen Overhead von einem großeren Framework wollte ich mir sparen.

Ich wäre dann als nächstes aber warscheinlich zu Box2D oder FlashPunk gegangen, wenn mir hier keiner geholfen hätte.

Danke nochmal an alle
muschko 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Clone oder so von Strasse und Autos DennisG ActionScript 3 0 08-07-2010 21:28
dr. mario clone onip ActionScript 2 1 02-12-2009 08:29
blingee clone Senhor ActionScript 2 1 09-01-2008 18:59
Struktur BustAMove Clone André Michelle ActionScript 3 34 23-02-2006 15:45


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

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


Copyright ©1999 – 2012 Marc Thiele