Funktionen ersetzen. Aber wie?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Suco-X

Betreff: Funktionen ersetzen. Aber wie?

BeitragFr, Mai 06, 2005 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Ich habe ein großes Problem. Ich habe das Max2D Imagefont Zeug und ich habe meine eigene Lib. Über Framework und Import will ich mir aussuchen können welche Lib ich benutzen will. Praktischerweise haben die beiden Libs auch noch gleiche Funktionsnamen. Somit müsste ich auch den Code nicht sonderlich verändern wenn ich bei den Libs umherschalte.
BlitzMax sagt mir aber :
Duplicate identifier 'DrawText' in moduls 'pub.xyz' and 'brl.max2d'
Ich dachte er ersetzt die Funktionen einfach nach der Reihenfolge der Imports z.b.

import brl.max2d
import pub.xyz

Die Funtkionen wie z.b. DrawText sollten jetzt aus pub.xyz genommen werden. Ist aber nicht der fall. Aber direkt in meinem Code kann ich die Funktionen überschreiben, ohne gemecker. Imports machen aber Probleme. Ich sehe da keine Möglichkeit da die Bmax ImageFont Lib so sehr mit dem Max2D Modul verkeilt ist. Weiss jemand die Lösung? Dank im vorraus.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

TheShadow

Moderator

BeitragFr, Mai 06, 2005 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
man kann evtl. funktionpointer nehmen - mußt aber gleich viele parameter haben...

andersrum wird man das nur schwer ändern können denke ich, weil es sehr ins system verzahnt ist... z.B. FontLoader benutzt auch images oder du mußt die module ändern die dieses modul importieren...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Dreamora

BeitragFr, Mai 06, 2005 16:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du deine eigenen Klassen von denen von FontLib erben lassen?
Dann sollte das eigentlich kein Problem sein, dass du überschreibst, was du anders haben willst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Suco-X

Betreff: ........

BeitragSa, Mai 07, 2005 0:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.
Ich habe eine eigene Klasse für meine FontLib geschrieben. Also nichts was sich in die Bmax Module einfügt(Blick auch ehrlich gesagt nicht wie das am besten gemacht wird).
In meinem Spielcode kann ich die Bmax Funktionen überschreiben. Z.b. habe ich mittlerweile
Code: [AUSKLAPPEN]

Function DrawText(Txt:String,x:Float,y:Float)
   DCDrawText(Txt,x,y)
End Function


Function TextWidth:Float(Txt:String)
   Return DCTextWidth(Txt)
End Function


Function TextHeight:Float(Txt:String)
   Return DCTextHeight(Txt)
End Function



Meine Fontlib Befehle bisschen umbenannt und dann im Hauptcode die max2d Funktionen überschrieben. Klappt ohne Probs. Deshalb verstehe ich auch nicht wieso das nicht auch mit Modulen klappt....
Irgendwie bekomm ich im Englischen Board auch keine passenden Anregungen.
Muss doch irgendeinen passenden Weg geben.
@Dreamora : Versteh nicht ganz wie du das meinst.
@TheShadow : Ansich keine schlechte Idee mit den Funktionspointern. Klappt aber leider nicht wie gewollt. Das die Fontsachen mit dem Max2D Modul so verkeilt sind ist auf den ersten Blick echt schade(Ka obs da tieferen Sinn gibt). Mir wäre ein Max2D und ein MaxFont2D Modul lieber. Aufteilen könnte ich es selber. Ziehe es aber vor so zu Programmieren das es auch andere Leute benutzen können.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

TheShadow

Moderator

BeitragSa, Mai 07, 2005 11:22
Antworten mit Zitat
Benutzer-Profile anzeigen
und wofür machst du genau neue text-routinen?
verstehe ich nicht so ganz... die vorhandene ist doch gut
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Suco-X

Betreff: ........

BeitragSa, Mai 07, 2005 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Die jetzige ist doch nicht für das Laden von bmp Fonts ausgelegt. Oder habe ich da was verpasst?
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

TheShadow

Moderator

BeitragSa, Mai 07, 2005 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab selbst nur ttf-fonts geladen - aber ich weiß noch, daß ich gelesen habe, dass einer png-fonts mit alpha geladen hat und diese dann ganz normal darstellte - weil die fonts werden sowieso als images gespeichert...

es gibt da so eine standard-schrift in bbmax. diese schrift ist eine 1-bit-image-datei (blitz.fon) in module ordner... musst nur gucken wie das gemacht wurde... an sich muss man so ein type erstellen und dann mit daten füllen... dann setfont anwenden und fertig
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

Suco-X

Betreff: .......

BeitragDi, Mai 10, 2005 5:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, TTF Fonts gehen ja wunderbar. Ist auch eigenes Format mit eigenen Informationen. Ich wüsste aber jetzt nicht wie ich die Daten von meinem Format da einfügen könnte. Abgesehen davon kann ich mit dem Bmax 1 Bit Format da nichts anfangen. Bitmap Fonts sollen ja schön Bunt sein.
Habe mich jetzt mal gründlich im Modul Ordner bei den Fonts umgeschaut und muss gestehen, Häääh?
Ich verstehe nicht wirklich wie ich dort meinen Font Code am besten einfügen könnte. Denke aber das diese Module gerade für solche Zwecke ausgelegt sind(z.b. fand ich AddFontLoader). Wenn jemand noch irgendwelche Informationen dazu hat, her damit.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group