GLBasic forum

Other languages => GLBasic - de => Topic started by: HeikoJ on 2007-Sep-10

Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo,

ich habe ein Problem mit Font.

Ich schreibe gerade ein Spiel.
Dazu habe ich mir einen 128-Font ( 32x32 ) erstellt und die Buchstaben durch Bilder
ersetzt.

Nun habe ich gesehen, das es auch 256 - Font gibt. Da schon abzusehen ist das die 128
Zeichen nicht ausreichen habe ich einen neuen Font mit 256 Zeichen erstellt, auch 32x32.

Dann habe ich denn alten in denn neuen Font kopiert.

Nun wird aber bei der Ausgabe nicht auf die ersten 128 Zeichen zurückgegriffen sondern
die Zeichen  ab 129 angezeigt.

Habe ich was Übersehen ? Gibt es noch einen Trick ??

Danke und Gruß

Heiko.

PS: wie kann ich Bilder in meinen Beitrag einbinden die sich lokal auf meinem Rechner
befinden ?
Title: Font Frage
Post by: WPShadow on 2007-Sep-10
Bilder lokal gar nicht! Aber du kannst sie bei http://www.imageshack.us/ hochladen und den link reinstellen.

Wegen den Fonts weiß ich leider auch nicht weiter... :(
Title: Font Frage
Post by: Kitty Hello on 2007-Sep-10
Frage: Warum willst Du 256 bilder als Font machen? Ich mein - Willst Du eine Tile-Engine machen? Dann niimm bitte Polyvector:
http://www.glbasic.com/forum/viewtopic.php?id=244
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo Gernot,

vielleicht ist PolyVektor besser, muß ich erstmal schecken.

Die Frage bleibt aber trotzdem. Warum werden nicht die richtigen "Zeichen" angezeigt ?

Auch wenn ich den Orgibal Font mit 256 Zeichen nehme, werden falsche Zeichen angezeigt.

Wenn ich Umlaute darstellen will, brauche ich doch auch den 256-Font?!?!

Gruß Heiko
Title: Font Frage
Post by: Kitty Hello on 2007-Sep-10
Lad' mal den Font hoch. Er muss höher als Breit sein, OK?
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo,

also jetzt mal ganz normal :

LOADFONT "Constantia_32X32X256.bmp",1
SETFONT 1
PRINT "Hallo äöü",10,10
SHOWSCREEN
MOUSEWAIT

Das Programm gibt nur Sch* aus.

Warum ??

Den Font habe ich ordentlich mit Zeichensatz-Creator erstellt, aber eben mit 256 Zeichen .

Gruß Heiko
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo Gernot,

die Charakter sind 32x32 und die BMP ist 512x512 Pixel groß.
Wie soll ich denn Font den hochladen ?

Gruß Heiko
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo Gernot,

die Datei befindet sich :

http://www.zshare.net/image/357207887dc9a1/

Gruß Heiko
Title: Font Frage
Post by: Kitty Hello on 2007-Sep-10
Ha! 512x512 - Da ist die Höhe nicht größer als die Breite. Dann meint er das ist eine alte Datei (128 chars).
Nimm den PSprite Befehl, den ich gemacht habe im Link oben.
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo Gernot,

wird das Problem mal behoben werden ?

Wenn nicht, sollte man in der Hilfe einen Hinweis dazu aufnehmen.

Gruß Heiko
Title: Font Frage
Post by: Schranz0r on 2007-Sep-10
Code (glbasic) Select
FUNCTION Loadsprites: name$, Tilesize, Startsprite
LOCAL XX, YY, TSize, AnzX, AnzY, num  // Locale Vars setzen

LOADSPRITE name$, 0 //Tilebild auf 0 laden

TSize = Tilesize //Tilesize setzen

GETSPRITESIZE 0, XX, YY //Breite und höhe des Bildes

AnzX = XX / TSize // Tiles per X
AnzY = YY / TSize // Tiles per Y

INC PictureCount, AnzX*AnzY // Bilder zählen!


SPRITE  0,0,0 // Sprite zeichen
num = Startsprite // Bildnummer auf Startsprite setzen

FOR x = 0 TO AnzX -1
FOR y = 0 TO AnzY -1
GRABSPRITE num, x*TSize, y*TSize, TSize, TSize   // Sprite Graben
INC num, 1 //Nummer erhöhen
NEXT
NEXT

num = 0 // Bildnummer auf 0 setzen für nächsten durchlaub
BLACKSCREEN // Bildschirm löschen
GRABSPRITE 0,0,0,0,0
ENDFUNCTION
sowas in der art?
Title: Font Frage
Post by: HeikoJ on 2007-Sep-10
Hallo Schranz0r,

ich weiß wie man das mit Sprite macht.

Mir gefällt bloß die Möglichkeit mit "Print" zu arbeiten statt mit Sprite.

Das geht auch sehr gut und einfach, eben nur nicht mit Fonts die 256 Charakter enthält und
quadratisch sind/ist.

Gruß Heiko
Title: Font Frage
Post by: Schranz0r on 2007-Sep-10
meine Meinung:

Viel zu umständlich!
Title: Font Frage
Post by: Kitty Hello on 2007-Sep-10
Schließe mich Schranz0r an. Polyvector ist das schnellste und beste.
Um kompatibel mit alten Fonts zu bleiben, habe ich die 128er Fonts breiter als hoch und umgekehrt gemacht. Oder so... o_O
Title: Font Frage
Post by: HeikoJ on 2007-Sep-11
Hallo Gernot,

nach Deiner Methode muß ich folgendes schreiben :

a$ = "Hello PSprite"

FOR i=0 TO LEN(a$)-1
    // See mx, my ->it's the sprite's x/y pos
    // I simply add the i'th width of a character for each one
    PSprite(0, ASC(MID$(a$, i, 1)), 17,22, i*17+mx, my)
NEXT

SHOWSCREEN

nach meiner Methode mache ich nur ein Print "...".

Ist da der Print-Befehl nicht schneller ???


- zur Tile MAP:

Ich habe z.B. eine MAP mit 100*70 Tile. Also definiere ich mir ein Array zb:
MAP[0] = "aaabbbccc..."
MAP[1] = "dddeeefff...."

In meinem geladenen Font habe ich die Buchstaben durch Bilder ersetzt. Nun reicht
ein einfacher Print-Befehl  um meine MAP-zu zeichnen.

Was ist daran umständlich ?

Gruß Heiko
Title: Font Frage
Post by: Kitty Hello on 2007-Sep-11
Irgs! Für Texte natürlich PRINT. Hast Du den Font mit dem Fontmaker gemacht? Der achtet eigentlich darauf, dass das Verhältnis passt... Wenn ja, bitte nochmal machen und dabei versuchen eben die Höhe>Breite zu bekommen.
PSprite ist für Tilemaps. Ganz klar. map[0] = "abc" geht nicht, das muss map$