AVA GFX Engine
Übersicht Sonstiges ProjekteGehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
Goodjee |
Mi, Aug 06, 2008 9:17 Antworten mit Zitat |
|
---|---|---|
sehr schön, ich hätte einfach nen programm zum generieren von bitmapfonts mithilfe von bmax beigelegt | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
AvaGastBetreff: HALLO WELT =) |
Mi, Aug 06, 2008 12:17 Antworten mit Zitat |
|
---|---|---|
So, ich habs nun auch hinbekommen, alle Zeichen in eine einzelne Textur zu laden.
Werde dann noch eine Speicherroutine + Loader schreiben, die wahlweise als png + txt oder bmf (in der die png mit dem txt quasi gemeinsam gespeichert ist) zu importieren und exportieren (die txt enthält dann die Char-Liste und deren Positionen auf der Textur ^^). Somit ist dann auch schon ein einfaches Tool für Bitmap-Fonts quasi integriert. [/EDIT] Code: [AUSKLAPPEN] Local font:TImageFont = LoadImageFont("archiv\fonts\arial.ttf", 48) TGraphicsEngine .font = font font.plane.b[0,0] = 0.00 font.plane.b[1,0] = 0.00 font.plane.r[0,1] = 0.00 font.plane.r[1,1] = 0.00 Repeat Cls DrawText("Hallo Welt! - juhu, da bin ich! :)", 20, 20) Flip Until KeyHit(key_escape) Ganz wenig Code für eine tolle farbige Schrift. (die Zeilen zwischen "loadImageFont" und "repeat" muss ich natürlich noch in benutzerfreundliche Funktionen packen! *zwinker) FRAGE: Soll ich Textformationen (Tabs, Zeilenumbruch ect) direkt mit in die DrawText hineinpacken? Haltet ihr das für gut und sinnvoll? (komplexere Textformation mit Schrift, Farbe ect und noch vielem mehr. werde ich in ein anderes Objekt packen - TFormText) |
||
Goodjee |
Mi, Aug 06, 2008 13:02 Antworten mit Zitat |
|
---|---|---|
zeilenumbruch fände ich praktisch...tabs habe ich persönlich noch nie gebraucht | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
AvaGast |
Mi, Aug 06, 2008 13:43 Antworten mit Zitat |
|
---|---|---|
Okay, Zeilenumbruch ist nun in der DrawText mit drin...
Code: [AUSKLAPPEN] DrawText("Zeile 1~nZeile 2~nZeile 3", 20, 20)
|
||
Schnuff |
Mi, Aug 06, 2008 16:03 Antworten mit Zitat |
|
---|---|---|
Hui, wenn das jetzt auch noch ein Normalsterblicher Mensch anwenden kann
Ava hat Folgendes geschrieben: (die Zeilen zwischen "loadImageFont" und "repeat" muss ich natürlich noch in benutzerfreundliche Funktionen packen! *zwinker)
dann muss ich mir das auch mal unbedingt angucken kann man eigentlich damit die normalen Draw-befehle komplett ersetzen? also anstatt Max2D zu laden dann dein Modul? PS: wie ist es mit der Einfärbung, kann man Bilder mit SetColor "einfärben"? |
||
AvaGast |
Mi, Aug 06, 2008 17:30 Antworten mit Zitat |
|
---|---|---|
Schnuff hat Folgendes geschrieben: kann man eigentlich damit die normalen Draw-befehle komplett ersetzen? also anstatt Max2D zu laden dann dein Modul?
Man muss leider - beides zusammen funktioniert nicht. Aber da es eh nicht zusammen funktioniert, konnte ich dann auch gleich direkt die Standard-Befehle ersetzen, so dass man sich nur wenig umstellen muss. SetColor zb. beeinflusst nach wie vor alle Zeichenbefehle. Genauso ist es mit den Transformationsbefehlen (SetOrigin, SetHandle, SetScale und SetRotation). Desweiteren wirkt sich auch der neue Befehl SetTexture(TImage) auf alle Zeichenbefehle aus, so dass sie texturier anstatt einfarbig gezeichnet werden (zb DrawRect, DrawOval ect). Zitat: PS: wie ist es mit der Einfärbung, kann man Bilder mit SetColor "einfärben"?
Man kann Bilder sogar mehrfarbig einfärben. ^^ Es gibt hierfür mehrere Methoden. Die "mächtigste" (aber auch vergleichsweise aufwendigste) Methode ist, an den Zeichenbefehl DrawImage ein TPlane anzuhängen. Das TPlane - Objekt ist quasi eine Projektionsfläche, auf die das Bild gezeichnet wird. Diese kann vollständig beliebig verformt und eingefäbrt werden - in so viele Farbunterteilungen, wie man das gerne möchte. ^^ Plane:TPlane = CreatePlane(10, 10) ' neues TPlane aus 10 x 10 Segmenten ' hier dann die TPlane formatieren (Farben setzen, ggf. Koordinaten setzen / zum verzerren) DrawImage Image, x, y, Plane Sehr simple Methoden wären zb.: 1) Image als Textur setzen (SetTexture) --> SetRectColor setzten (4 Farben für die Eckpunkte eines Rechteckes) --> DrawRect 2) Image als Textut setzen (SetTexture)--> DrawGradient (zeichnet einen rechteckigen Farbverlauf mit dem Bild als Textur) |
||
- Zuletzt bearbeitet von Ava am Mi, Aug 06, 2008 17:42, insgesamt einmal bearbeitet
Schnuff |
Mi, Aug 06, 2008 17:40 Antworten mit Zitat |
|
---|---|---|
sorry, dass ich vergessen hatte das noch zu fragen: wird es später auch möglich sein (wie in BB) direkt in ein "Bild" (also in eine Textur) zu zeichnen? ohne den umweg über ReadPixel/WritePixel zu machen?
Edit zu Ava's Edit: das mit dem Plane hab ich mir grade mal im worklog angeschaut, wenn es wirklich so ist, wie ich erahne.... Wann gibts einen ersten alpha-release? |
||
- Zuletzt bearbeitet von Schnuff am Mi, Aug 06, 2008 17:45, insgesamt einmal bearbeitet
AvaGast |
Mi, Aug 06, 2008 17:44 Antworten mit Zitat |
|
---|---|---|
Schnuff hat Folgendes geschrieben: sorry, dass ich vergessen hatte das noch zu fragen: wird es später auch möglich sein (wie in BB) direkt in ein "Bild" (also in eine Textur) zu zeichnen? ohne den umweg über ReadPixel/WritePixel zu machen?
SetBuffer(TImage) ' setzt den ImageBuffer (anschliessend wird alles direkt ins Bild gezeichnet) SetBuffer(Null) ' setzt den Buffer zurück (anschliessend wird wieder "normal" / auf Backbuffer gezeichnet) Ganz easy - und super schnell! |
||
AvaGast |
Mi, Aug 06, 2008 17:51 Antworten mit Zitat |
|
---|---|---|
Schnuff hat Folgendes geschrieben: das mit dem Plane hab ich mir grade mal im worklog angeschaut, wenn es wirklich so ist, wie ich erahne.... Wann gibts einen ersten alpha-release?
Wenn Du gerne Testen magst, setze ich Dich mit auf die Tester-Liste (auf der ist übrigens noch etwas Platz für ein paar Leute! ). Ich denke, dass ich spätestens am Wochenende dann eine Version hochlade und euch den Link maile. Vorraussetzung ist, dass ihr gewillt seit, es etwas ausgiebiger zu testen und dann auch Bug-Reports und eventuell Verbesserungsvorschläge zu posten. [/EDIT] Ich habe die Nacht damit verbracht, meinem FontLoader zwei neue FLAGS beizubringen: EMBOSSEDFONT verleiht der Schrift einen plastischeren Effekt SHADOWFONT fügt der Schrift automatisch einen Schatten hinzu Es benötigt ein klein wenig mehr Renderzeit beim Laden der Schrift. Dafür ist das Zeichnen des Textes aber anschliessend auch mit keinem Mehraufwand verbunden. Das Code-Beispiel zum Bild gibts im WorkLog. Das Zeichnen von texturiertem Text ist ebenfalls bereits umgesetzt. |
||
Goodjee |
Fr, Aug 08, 2008 9:04 Antworten mit Zitat |
|
---|---|---|
kannst du auf das animations zeugs mal genauer eingehen, ich kann mir absolut nix drunter vorstellen | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
AvaGastBetreff: Animationen |
Fr, Aug 08, 2008 11:43 Antworten mit Zitat |
|
---|---|---|
Das Animationszeug ist noch nicht ganz komplett. Es fehlen noch ein paar Funktionen zu TAnimation ud es fehlen noch das TAnimationManager und TSprite Objekt. Okay, aber abgesehen davon, kann man natürlich schon jetzt einiges damit anfangen.
TAnimation kann aus einem Haufen von Bildern (und Sound-Dateien) eine Sequenz erstellen und diese in einer einzelnen Datei zusammenfassen. Der Gedanke dahinter ist der, dass anschliessend nur eine einzige Datei mit "incbin" in die Exe eingefügt werden kann (anstatt unmengen an incbin-Zeilen zu schreiben) und natürlich die komplette Animation durch einen einzigen Aufruf geladen werden kann und dann vollständig automatisch verwaltet wird. Beispielsweise könnte eine Animation so aussehen: Frame 0 player_shot_01.png Frame 1 player_shot_02.png Frame 2 player_shot_03.png player_shot.wav script = "do_shot" Frame 3 player_shot_04.png Frame 4 player_shot_05.png script ="next=player_stand" In dem Fall würde bei Frame 2 automatisch zum Bild der Sound "player_shot.wav" abgespielt und der String "do_shot" zurtückgeben werden, den man dann auswerten kann. Bei Frame 4 würde der String "next=player_stand" zurückgegeben werden, den man dann auswerten könnte, um die Animation umzustellen. Anderes Beispiel Frame 0 meine_grafik.png Frame 1 Frame 0 Rotation = 60 Frame 2 Frame 0 Rotation = 120 Frame 3 Frame 0 Rotation = 180 Frame 4 Frame 0 Rotation = 240 Frame 5 Frame 0 Rotation = 300 In diesem Beispiel würde das Objekt nur eine einzige Grafik haben, diese aber je Frame entsprechend rotieren (ebenfalls ist es möglich, die Position, Skalierung, Farbe ect zu ändern) (die Beispiele sind abstrakt formuliert ^^) Mit dem TAnimationManager und TSprite Objekten wird dies alles noch einmal etwas aufgewertet und "mächtiger" (beispielsweise alternative Animations-Sequenzen, automatische Animationsübergänge, automatische Script- und Soundfunktionen ect.) Erläuterung zu alternativen Sequenzen: Bei GunSheep wird es so sein, das ein Schaf jeweils mehrere unterschiedliche Animationen für Stillstand, Bewegung ect hat. Zum Beispiel könnte es eine Animation geben, wo das Schaf zwinkert, sich am Kopf kratzt oder in die Kamera grinst: AddSpriteAnimation ( sprite , "stand" , stand_1 , 50 ) AddSpriteAnimation ( sprite , "stand" , stand_2 , 30 ) AddSpriteAnimation ( sprite , "stand" , stand_3 , 20 ) SetSpriteAnimation ( sprite, "stand" ) wenn nun DrawAnimation ( sprite , x , y ) aufgerufen wird, wird eine der drei Sequenzen zufällig ausgewählt ( stand_1 = zu 50% , stand_2 = zu 30% , stand 3 = zu 20% ). Wenn die Sequenz durchlaufen ist, wird wiederum zufällig eine neue ausgewählt. Ich werde mich bemühen, dies alles noch einmal ausführlicher und klarer zu formulieren, sobald alle Funktionen und Objekte fertiggestellt sind. ^^ Und PS: ich werde dem Modul ein kleines Tool zu erstellen und bearbeiten von Animationsdateien beilegen. |
||
Artemis |
Fr, Aug 08, 2008 12:47 Antworten mit Zitat |
|
---|---|---|
Das sieht sehr gut und durchdacht aus.
Daumen hoch. |
||
Starwar |
Fr, Aug 08, 2008 14:46 Antworten mit Zitat |
|
---|---|---|
Oh mein Gott ist das umfangreich! Das gibt ganz neue Möglichkeiten und scheint auch viel zu vereinfachen. Ich glaub ich kauf mir BlitzMax! Weißt du schon obs Freeware wird (verzeih mir wenn dus schon iwo beantwortet hast)? Freu mich auf neues...*worklogles*
Viel Erfolg und Motivation! MFG |
||
c64 |
So, Aug 10, 2008 9:36 Antworten mit Zitat |
|
---|---|---|
Hi, Ava
Anfangs war ich ja "nur" begeistert von der umsetzung deines Wassers und den schönen Effekten, aber mittlerweile ist das schon eine ganze ecker mehr was da an Technischen finessen und Automatisierung drinnsteckt das man schon erahnen kann was das Framework jetzt / später leisten kann / wird. Ich hoffe mal du bekommst es fertig da steckt ne menge potentzial drinnen, ordentlich dokumentiert und schick verpackt ein feines Produkt ! glg. C64 |
||
Betreten verboten! Kinder haften für ihre Eltern! |
d-bug |
Di, Aug 12, 2008 12:18 Antworten mit Zitat |
|
---|---|---|
Huhu,
lieber spät eine Antwort als gar keine Zum Feedback: Ja, es ist wie es im BBP immer ist! Hat man was gutes vorzuweisen halten alle die Klappe. Ist es hingegen schlecht, kann man sich vor Feedback kaum retten. Das war hier schon immer so und wird sich auch nicht ändern. Allerdings ist es auf bb.com auch nicht anders. Nehmen wir mal ein Beispiel aus meinen Codeleichenschatz: desktopext.mod! Es gibt so gut wie kein Feedback, aber die Downloads der einzelnen Versionen sprechen Bände! Genau so bei bitmapfont.mod! Ergo: Hat es keine Bugs bekommst du kein Feedback! Das ist super demotivierend und lässt einen manchmal daran denken den Support oder überhaupt das ganze Programmieren an den Nagel zu hängen! Auf Worklogs gibt es übrigens zumeist nur im Chat Feedback, weil sich anscheinend keiner hier traut! Zur Engine: *Finger heb* Ich bin hochgradig daran interessiert, auch wenn ich sie in meinem aktuellen Projekt gar nicht mehr unterbringen kann. Dazu ist es nun zu spät! Vorallem würde ich gerne mal testen können, ob sie auch auf dem Mac bzw. Linux-Derivaten funktioniert, oder ob man als OSXler wieder hinten anstehen muss. Also lass dich nicht vom Feedback bezwingen und mach sie fertig, oder zumindest Massenkompatibel. cheers |
||
Hagbard |
Di, Aug 12, 2008 13:02 Antworten mit Zitat |
|
---|---|---|
Zitat: Auf Worklogs gibt es übrigens zumeist nur im Chat Feedback, weil sich anscheinend keiner hier traut!
Wenn es die Möglichkeit gäbe, auf Worklogs direkt zu antworten, wäre das für mich zum Beispiel ein Grund, möglichst viel Feedback zu geben. Ava's Arbeit finde ich hochgradig interessant und wäre sehr erfreut darüber, wenn es weiter entwickelt wird. Leider stecke ich momentan nicht so richtig in BB drin, sodass ich das erstmal nur so von außen ansehen und vielleicht genaueres dazu sage, wenn ich wieder mehr damit mache. Trotzdem wünsche ich dir damit viel Erfolg und kann mich den anderen bisher nur anschließend: Sehr gut durchdacht sieht das aus und ich traue dir auch zu, dass du das fertig bringst... |
||
AvaGast |
Di, Aug 12, 2008 13:34 Antworten mit Zitat |
|
---|---|---|
Vielen Dank für eure netten Nachrichten! - da hat man doch direkt gleich wieder doppelt so viel Motivation!
Momentaner Stand der Dinge ist (nachdem ich mir am Wochenende erst einmal etwas Pause gegönnt habe ) ... ich habe begonnen, den Modul-Code zu kommentieren bzw. direkt zu dokumentieren (damit man direkt in BlitzMax die Hilfe zum Modul abrufen kann). Ansonsten bin ich zur Zeit erstmal wieder etwas mehr mit GunSheep beschäftigt (Grafiken und MapEditor basteln), aber da kann ich dann natürlich auch gleich die Engine bei weiter austesten, ausbessern und ergänzen ... als nächstes werde ich mich dann dem Animations-Editor widmen *ganz wichtige und notwendige Geschichte!* |
||
BladeRunnerModerator |
Di, Aug 12, 2008 13:37 Antworten mit Zitat |
|
---|---|---|
Schön zu hören. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Blackside |
Di, Aug 12, 2008 15:33 Antworten mit Zitat |
|
---|---|---|
Ich bin echt begeisterst was du so auf die Beine stellst, erst GunSheep
und jetzt machst du auch noch deine "Engine" öffentlich. Deine GFX-Engine sieht echt grandios aus Ich denke dass, das Feedback nicht so viel ist, weil es hier um Bmax geht...Vergleiche mal die Bmax-Threads mit den BB-Threads MFG Blackside |
||
Hier sollte eigentlich eine Signatur stehen! |
AvaGast |
Di, Aug 12, 2008 15:41 Antworten mit Zitat |
|
---|---|---|
Ach, zur Zeit bin ich mehr als zufrieden, was das Feedback betrifft.
Das Worklog wird nun allerdings sicher erstmal ein Weilchen im Sleep-Mode verbringen, da das ganze Drumherum um die Animationen doch recht aufwendig ist .. und ich das nicht unnötig dokumentieren will. *g* |
||
Gehe zu Seite Zurück 1, 2, 3, 4, 5, 6, 7, 8, 9 Weiter
Übersicht Sonstiges Projekte
Powered by phpBB © 2001 - 2006, phpBB Group