Verwendung von Types
Übersicht

stierstierBetreff: Verwendung von Types |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich hab da mal ein paar grundlegende Fragen zu Types. Hab ein Programm in dem eine Grafik in alle Richtungen bewegt werden kann und dabei animiert wird. Erst werden alle Bilder die zur Animation notwendig sind in einen Type geladen. Und genau hier meine erste Frage: Ist das sinnvoll?! Aus dem Type wird nie etwas gelöscht und ich hab in einem Tutorial auf blitzbase.de gelesen, dass Types eigentlich nicht für solche statischen Zwecke benützt werden sollen. Aber ich find, dass es so am einfachsten ist oder nicht? Zu der Grafik werden halt noch andere Daten gespeichert, dass man die exakte Bewegung der richtigen Grafik zu ordnen kann. In einem anderen Type werden dann Eigenschaften der Grafik gespeichert, d.h. Geschwindigkeit und aktuelle Position etc. Ist es in dem Fall sinnvoll Types zu verwenden? Und da aller guten Dinge drei sind: Ich möchte da jetzt noch ein Objekt einbauen, an dem die Grafik stehen bleibt, wenn man drauf läuft. Also quasi Leveldaten in einem Type? Ist vielleicht unverständlich geschrieben, aber soll ein Test sein. Ist eigentlich mal für ein kleines Spiel gedacht. also wär klasse, wenn mir da jemand weiterhelfen könnte gruss |
||
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für Animationen sind Types schwachsinnig.
Mach das mit BlitzBasic: [AUSKLAPPEN] LoadAnimImage |
||
Omenaton_2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, für Animierte Grafiken sind Types nicht günstig. Wenn du nur sehr wenige Grafiken hast, reichen einfache Variablen, wen du mehr hast und du flexibel und in kurzem Code sie ansprechen willst, nimm ein DIM.
Die Types sind ideal um die Eigenschaften der Objekte zu speichern. Diese können sich ändern und du kannst mal mehr oder weniger Objekte haben. Die Grafiken, die die Objekte darstellen ändern sich nicht. Wenn du sehr unterschiedliche Animationen haben willst, mußt du auch die Animationeigenschaften festhalten, wie gewünschter Delay zwischen den Frames und eventuell Loop oder Ping Pong und vergiß nicht die Zeit zu messen und zu speichern, die vergangen ist seit dem letzten Frame abgespielt wurde. Wenn diese Zeit den gewünschten Delay überschreibt, dann ändert sich der Frame zum Nächsten. Wenn du gleichen Delay für alle Animationen haben willst/kannst, dann ist das einfacher, dann kann ein einzelner Variable ohen Type die vergangene Zeit speichern. Für die Level Daten solltest du unbedingt Type verwenden. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Justus hat Folgendes geschrieben:
Schwachsinn? Aha. Also ich habe es von Anfang an nicht anders gemacht, als mit Types. Was spricht denn auch dagegent? - es ist doch absolut super praktisch! (wie fast alles, was man mit Types löst...), Die Animationsdaten werden am Anfang von einem Skript in eine Type-Liste geladen. Jeder Animations-Klasse ist ein Objekt, zb "Laufen von Gegner Typ A". In diesem Objekt sind dann beispielsweise verschiedene AnimImages für unterschiedliche Richtungen gespeichert, die FrameAnzahl ist gespeichert, Loop oder Ping/pong oder Verzweigung zu einer anderen Animation und soweiter, blahblup. Zb. auch Sounds. Diese Animations-Objekte werden dann später mit dem Spielfiguren-Objekten verlinkt, so dass diese sie immer nur noch an eine Funktion weitergeben brauchen und fertig. Da ich nun mittlerweile auf BMax umgestiegen bin, habe ich mir dort sogar ein komplettes 2D-Animations-Modul geschrieben. Darin verwende ich 7 miteinander verknüpfte Objektklassen, um sehr komplexe 2D-Sprite-Animationen zu verwalten. Es ist also keines Wegs "Schwachsinn", Types auch für Animationen zu verwenden... *find* |
||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
es ist schwachsinn...
...wenn man genau weiss wie viele bilder man laden will und wieviele animationen man hat, und alles bereits am anfang eingestellt wird, types machen das alles viel langsamer als z.B. Dims andererseits, bei spielen, bei denen die anzahl der dateien die geladen werden unterschielich sind, sprich man kann selbst neue raumschiffe hinzufügen oder lvl, oder was weiss ich, dann wäre ein type sinnvoll, ich würde es aber trotzdem immer noch mit dims machen....... *find* PS: und ich kann mit types umgehen und benutze sie auch anderweitig ![]() |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Da ich generell eben nur objektorientiert programmiere, kommt für mich persönlich halt keine andere Lösung in Frage... ^^ | ||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dims sind ungefähr so flexibel wie T-Stahträger ... ich persöhnlich würde mich auch an Types halten. Man hat später einfach mehr Möglichkeiten in seine Programmierung einzugreifen. Auch programmiert man (aus meiner Erfahrung) sehr viel sauberer als mit Dims.
Nehmen kannst du beides ... kommt eigentlich auf den akuten Fall drauf an. |
||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ava hat Folgendes geschrieben: Da ich generell eben nur objektorientiert programmiere, kommt für mich persönlich halt keine andere Lösung in Frage... ^^
der is gut... also ich finde die gute mischung machts, dims, banks für speed und types für variable grössen und einen guten aufbau |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Ich benutzen durchaus auch Banks und Arrays ![]() |
||
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Animationen als Types sollen objektorientiert sein?? ![]() ![]() ![]() Wenn ich einen Kinofilm drehe, habe ich ja eine ganze Reihe von Bildern (-> zu vergleichen mit Animationen). Diese reihe ich doch alle aneinander an ein Filmband, welches ich dann in eine Spule einwickle - ich wäre ja ganz schön doof, für jedes Bild eine eigene Filmspule zu verwenden *lol* Und für die jungen Objektorientierugns-Wannabe-Spezialisten, die denken, das Prinzip verstanden zu haben: Das Array, in dem die Bilder der Animation gespeichert sind, ist doch genauso ein Objekt! Und wer jetzt noch die Hardcorevariante will, der kann dieses Arrayobjekt ja in ein Type laden. Dann heißen die Types nicht mehr "Bild 1", "Bild 2" etc., sondern "Animation 1", "Animation 2" etc. Ist das nicht viel sinnvoller? |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Jeder Animations-Klasse ist ein Objekt, zb "Laufen von Gegner Typ A". Womit sich deine Frage nach dem Sinnvoll wohl erübrigt hätte. Zudem sind die Arrays intern evtl Objekte jedoch in Blitz nicht als solche zu verwenden. Blitz3D ist leider nicht im geringsten OOP ... Types sind auch viel mehr mit Structs denn als mit Objekten zu vergleichen! |
||
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Klaas hat Folgendes geschrieben: Womit sich deine Frage nach dem Sinnvoll wohl erübrigt hätte.
Ganz im Gegenteil. Vielleicht ist das Prinzip nicht ganz deutlich geworden: In dem Type kannst du ja nicht nur das Animations-Array speichern, sondern auch Informationen z.B. über die Länge der Animation, evtl. auch zeitliche Animations-Position etc. |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
War etwas missverständlich ausgedrückt.
Ich wollte mit dem Zitat nur darauf hinweisen das Ava genau dies meinte was du als Sinnvoller erachtet hast! Sie es also bereits als sinnvoll erkannt und angewendet hat. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Das Wannabe, ging das an mich, ja? | ||
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sobald ein Bild mehr als 500000 Frames hat wären Types ungünstig. Da wären Dims schneller.
Ansonsten wie Ava schon sagte, gewöhnt euch Types an. Damit werdet ihr in BlitzMax noch mehr konfrontiert. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Omenaton_2Betreff: Re: Verwendung von Types |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
stierstier hat Folgendes geschrieben: Hab ein Programm in dem eine Grafik in alle Richtungen bewegt werden kann und dabei animiert wird. Erst werden alle Bilder die zur Animation notwendig sind in einen Type geladen. Und genau hier meine erste Frage: Ist das sinnvoll?! Aus dem Type wird nie etwas gelöscht und ich hab in einem Tutorial auf blitzbase.de gelesen, dass Types eigentlich nicht für solche statischen Zwecke benützt werden sollen. gruss Bitte nicht vergessen, worum es hier eigentlich geht. Die Frage war, ob es Sinn macht die Grafiken in ein Type zu laden oder nicht. Es geht nicht darum, ob Types grundsätzlich toll sind oder nicht, sondern um den Sonderfall Grafiken da rein zu laden. Ich habe diese Sachen in meinem Programm auf verschiedener Art und Weise gelöst, je nach Bedarf und es funktioniert optimal, wenn die Grafiken wie zum Beispiel animierte Kampfeinheiten in ein DIM eingeladen werden. Bei Spezialeffekten wie Explosionen wo es stark auf Delay und sonstige Sachen ankommt, habe ich ein Type für den einzelnen, nur für die Zeit der Explosion existierendes Objekt. Die Explosion ist ein gutes Beispiel. Die lebt nur ganz kurz. Die passende Grafik wird aber am Anfang in das Programm in ein Dim eingeladen und dann wenn eine Explosion als Type Objekt erschaffen wird, wird diese passende Grafik aus dem Dim wo nur die Grafik drin ist zugewiesen. Wenn die Explosion als Objekt "stirbt", bleibt die Grafik an sich in Dim erhalten und kann beim nächsten Explosion genauso wieder angesprochen werden. P.S.: Bitte Ausdrücke wie Schwachsinn nicht mehr benutzen. Das klingt zu unfreundlich und schadet das Klima in den Boards. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group