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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-05-2008, 00:14   #1 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 6
Flipper - Anfänger - AS3

Guten Tag,

ich bin Student und habe daher immer wieder die Chance - oder sollte ich sagen die Katastrophe - in Projekten neue Dinge herauszufinden.

Dieses Semester geht es um das Programmieren der Physik eines Flippers.

Da mein Vorwissen sich auf Java und C++ beschränkt, ist die Verknüpfung des Codes mit den Bildern noch ausgesprochen holprig.

Es haben sich mehrere Fragen herausgestellt, die ich leider nicht beantworten kann, die meisten sind Flash Verständnisfragen, allerdings habe ich auch ein paar Fragen dabei, die ich hier mitstelle, weil ich in dieser Community von gutem logischen Verständnis ausgehe und daher eure Meinung schätzen würde.
Die Fragen:
1.
Welche Möglichkeiten gibt es, in Flash eine Kollision zu erkennen? (Objektkollision, Pixelweiser Vergleich, aber noch weitere?)
2.
Wenn die "reale" Kollision zwischen zwei Bildern stattfindet, wie gehe ich am Besten damit um? (Die Kugel ist dann ja eigentlich schon ein wenig in der Ebene, von der sie abspringen sollte, wenn man diesen Punkt ignorieren würde. Wie sorge ich also dafür, die Richtung der Kugel zu ändern und den neuen Punkt zu bestimmen)
3.
Was kann man tun, um eine Kollision zu erkennen, wenn die Kollision zwischen zwei Bildern, allerdings in keinem der beiden Bilder ist? (Eine Kugel fliegt an einem Bumper vorbei, würde ihn touchieren, allerdingsist der nächste "Sprung" so weit, dass die Kollision halt nur zwischen den Bildern wär.)
4.
Wie mache ich alles AS3 kompatibel? (Nur um nochmal meine Vorgaben in Erinnerung zu rufen)
5.
Sollte man den maximalen Speed der Kugel eventuell Beschränken?
6.
Wie sollte man die Reibung am Besten einbauen? (permanente Geschwindigkeitsverringerung?)
7.
Wie sollte man die Kraft der Flipperarme am Besten berechnen?
Kann man den beschleunigten Flipperarm vom nicht beschleunigten Unterscheiden?

So, ich bin dann erstmal durch, ich setz mich noch hin um die Vektorielle Richtungsänderung bei Kollision zu algorithmieren. Das schaffe ich aber sicher alleine

Also, ich hoffe das Post ist nach eurer Zufriedenheit, wenn an der Form des Posts oder dem Inhalt etwas auszusetzen ist, weißt mich bitte darauf hin, ich lerne gerne.

Danke schonmal fürs lesen.

Ich wär auch Dankbar für code, wenn ihr Flipper habt, die ihr einst programmiert hattet.
Sonst muss ich mir halt selbst meine Finger wundtippen, auch nicht weiter schlimm, ich kann nur vieles in Flash noch nicht wirklich greifen.

Also, nochmals: Dank für Hilfe!
gozza ist offline   Mit Zitat antworten
Alt 29-05-2008, 10:41   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Hallo und Willkommen im Flashforum.

Schau Dich mal hier um:

http://lab.andre-michelle.com/tag/physics/

V.a. die Revive-Physics-Engine könnte interessant für Dich sein.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 29-05-2008, 11:17   #3 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 6
Danke, werde ich gleich mal tun.

edit:
Wow, eine sehr gute Quelle, sehr umfangreich und beantwortet wohl die meisten meiner Fragen.
Ich werde das Wochenende wohl brauchen, um alles zu verstehen. Wird aber sicherlich eine voranbringende Zeit.

Ich bin natürlich für alle weiteren Antworten/ Ideen noch aufgeschlossen und werde zumindest ein YouTube-Video von meinem Ergebnis hier verlinken, wenn es fertig ist.

(und zwischendrin wahrscheinlich schon mehrmals nachfragen, wenn etwas für mich doch zu komliziert ist.)

Geändert von gozza (29-05-2008 um 11:51 Uhr)
gozza ist offline   Mit Zitat antworten
Alt 29-05-2008, 13:21   #4 (permalink)
\x3a\x6f\x29
 
Benutzerbild von [je]
 
Registriert seit: Apr 2004
Ort: paris
Beiträge: 806
Hallo Gozza,

ich habe mit André an der Revive gearbeitet und würde dir davon _abraten_ sie in einem Flipper zu verwenden.

Die Revive Engine nutzt "Dynamic Intersections" -- d.h. Objekte können theoretisch unendlich schnell werden und die Kollisionen werden trotzdem noch sauber aufgelöst. Das Problem dabei ist nur, dass es sehr schwierig ist Objekte von höherer Komplexität einzubauen, oder sich bewegende Dinge.

Wir haben auch einen Flipper mal ausprobiert, aber die Gleichung der Teile, die die Kugel wieder hoch schießen war schon sehr komplex und hat keinen Spaß mehr gemacht.

Ich würde dir daher eher dazu raten PopShapes (auch von André) anzuschauen, weil das eine traditionelle Engine ist.

Deine Fragen beziehen sich für mich nicht wirklich auf Flash. Wenn du einen Flipper bauen willst solltest du auf jeden Fall deine Kollisionen schon mathematisch auflösen.

Du wirst wie auch in jeder anderen Sprache auf Probleme stoßen wie eine Kugel die durch eine Wand durchfliegen kann, wenn sie zu schnell wird. Das hast du aber auch mit C++.
__________________
joa ebert
http://blog.joa-ebert.com/ - http://www.joa-ebert.com/
[je] ist offline   Mit Zitat antworten
Alt 29-05-2008, 14:31   #5 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 6
Ok, ich werde mich durch beide durcharbeiten - Ich weiß noch nicht, wie groß das Problem wird, dass in den PopShades kein Kreis ist. werde ich noch sehen, ich wollte die source eh ja nur als Verständnisvorlage nehmen - muss also dann beide vermischen.

Ich dachte, die möglichen Kollisionen zu klären und so weiter wär für mich schwer, aber die kann ich ja nun aus dem Code entnehmen, ihr habt mir auf jeden Fall schon riesig geholfen, danke !!
Ich wusste halt nicht, wie ich das sonst machen kann.

Also nochmal Danke. (Schade, dass keine Kommentare in dem Code stehen, aber so bin ich auch schon unglaublich erleichtert.)
gozza ist offline   Mit Zitat antworten
Alt 01-06-2008, 12:19   #6 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 6
Ok, ich glaube, ich verstehe den Code, leider bin ich grade nicht in der Lage ihn mit Flash - nach leichten änderungen zum Verständnis - auszuführen.

Ich will euch nicht mit Fragen belästigen wie "Ok, warum zwei Ordner und wie nun.
Man hat mir gesagt, ich solle im ersten Frame ein Objekt der Main Klasse erzeugen.
Es wird mir dann aber mitgeteilt, dass ein "Zugriff auf eine Methode eines null-Objektverweis nicht Möglich ist."

Ich werde mich versuchen schnell durch die damit zusammenhängenden Grundlagen zu wurschteln.
Oder hat das irgendie mit dieser Source zu tun ?

Sorry für dämliche Fragen, aber ich finde nichts verwendbares in der Hilfe - also ob ich auch addChild() nutzen ? Laut Hilfe kann der Fehler 1009 auftreten, wenn man ein Sprite objekt (was die main ja ist/extended) nicht auf die Bühne geholt hat.

Ich fühle mich grade ein bisschen unwürdig, aber vielleicht könnte ihr mit 3-4 Zeilen ein Problem lösen, an dem ich schon wieder Stunden sitze. (lesen, suchen, lesen, versuchen, scheitern, versuchen die Fehlernachricht auf Zeilen im Code abzubilden, verzweifel, erstmal was essen, Beachvolleyball nicht zusagen ... wie das halt immer so ist.)
gozza ist offline   Mit Zitat antworten
Alt 01-06-2008, 13:57   #7 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Dann zeig doch mal den Code, den Du geschrieben hast.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 08-06-2008, 15:23   #8 (permalink)
Neuer User
 
Registriert seit: May 2008
Beiträge: 6
Also ich schätze Du meinst eigentlich eher den Code im Programm, der ist halt lediglich der heruntergeladene Code, von Andre - die Pop shapes, wobei ich die Testshapes und die Popshapes in einen Ordner zusammengefügt habe.
Im ersten Frame der Flash datei ist der einzige Code, den ich schrieb:
Code:
import Main;
var main : Main;
main = new Main();
Sorry, dass ich erst jetzt antworte.
gozza ist offline   Mit Zitat antworten
Alt 08-06-2008, 15:57   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Nimm mal die Main als deine DocumentKlasse, sonst geht das nicht wenn du mit CS 3 kompilierst.
__________________
ERROR: Signature is too large
rendner[i] 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 18:15 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele