GLBasic forum

Other languages => GLBasic - de => Topic started by: knut on 2008-Aug-01

Title: einen string auslesen?
Post by: knut on 2008-Aug-01
wie mach ich das?

es geht um folgendes.

ich möchte eine punktzahl, als einen score mit bildern darstellen.

also sagen wir die punktzahl beträgt  46

dann hat die 4 ein seperates bild und die 6 ein seperates bild.

will einen score im comicstil machen.
Title: Re: einen string auslesen?
Post by: D2O on 2008-Aug-01
Hi, das musst Du nicht so kompliziert machen.
GLB ladet eh schon Bitmap fonts, erstell Dir einen Font mit dem in der IDE integrierten Tool
und bearbeite das ganze mit einem Paint Programm.
So kannst Du das ganze ganz normal als Font nützen.

Oder Du lädst das ganze als Tileset mit loadanim.
Dann sprichst Du die Frames einfach beim zeichnen direct an, frame 0 = zahl 0, frame 1 = zahl 1.

Ich würde aber zur ersten variante zurückgreifen.
Die Grafik musst Du eh erstellen.

Ich mach mal schnell eine Code beispiel, bis gleich.
Edit:
So, hier das beispiel und der font.
Code (glbasic) Select
LOADFONT "comicfont.png",0

SETFONT 0

a = 500

LOADANIM "comicfont.png",0,36,43

WHILE TRUE
MOUSESTATE mx,my,b1,b2

PRINT a,10,10


DRAWANIM 0,53,mx,my
DRAWANIM 0,48,mx+36,my
DRAWANIM 0,48,mx+72,my

SHOWSCREEN
WEND

(http://www.deuteriumoxid.com/glbasic/comicfont.png)
Title: Re: einen string auslesen?
Post by: knut on 2008-Aug-02
Code (glbasic) Select
FUNCTION graphtxt: txt$, x, y
FOR i = 1 TO LEN(txt$)
asciicode = ASC(MID$(txt$, i, 1))
IF asciicode > 47 AND asciicode < 58
fontframe = asciicode-48
ENDIF
DRAWANIM 0,fontframe, x, y
x=x+32
NEXT
ENDFUNCTION


irgendwie zeichnet es aber immer das selbe zeichen.
also statt der zahl 59 steht dann eben 99 da.
mmm


edit

so funktioniert es, kann mir das jemand bei dem
Code (glbasic) Select
FOR i = 0 TO LEN(txt$)-1 erklären?
Code (glbasic) Select

FUNCTION graphtxt: txt$, x, y
FOR i = 0 TO LEN(txt$)-1
buchstabencode = ASC(MID$(txt$, i, 1))
IF buchstabencode > 47 AND buchstabencode < 58
fontframe = buchstabencode-48
ENDIF
DRAWANIM 0,fontframe, x, y
x=x+32
NEXT
ENDFUNCTION



Title: Re: einen string auslesen?
Post by: D2O on 2008-Aug-02
Len gibt dir den  wert 5 zurück( 1,2,3,4,5)

Du fängst aber mit I = 0 an zu zählen (0,1,2,3,4,5) das sind 6 zahlen/schleifen und nicht 5.

Bei drawanim fängt alles bei 0 an, daher Len()-1.

Sorrry, bin noch nicht ganz wach ;)
Title: Re: einen string auslesen?
Post by: Schranz0r on 2008-Aug-02
schwachsinn... :)

einfach:

Code (glbasic) Select
LOADFONT "comicfont.png", 1

SETFONT 1

Score = 1234567890



WHILE TRUE

PRINT Score,10,10


SHOWSCREEN
WEND
END

Title: Re: einen string auslesen?
Post by: D2O on 2008-Aug-02
genau Schranz0r, das ist die einfachste und bessere Methode.
Title: Re: einen string auslesen?
Post by: Schranz0r on 2008-Aug-02
Ausser er will alle Buchstaben einzeln bewegen.. dann muss er es natürlich anders machen :D
Title: Re: einen string auslesen?
Post by: Kitty Hello on 2008-Aug-04
Code (glbasic) Select

score$ = score
FOR i = 0 to LEN(score$)-1
   char$ = MID$(score$, i,1)
   PRINT char$, i*16, (SIN(i*180)+1)*64
NEXT
SHOWSCREEN
MOUSEWAIT

Title: Re: einen string auslesen?
Post by: Schranz0r on 2008-Aug-04
Quote from: Kitty Hello on 2008-Aug-04
Code (glbasic) Select

score$ = score
FOR i = 0 to LEN(score$)-1
   char$ = MID$(score$, i,1)
   PRINT char$, i*16, (SIN(i*180)+1)*64
NEXT
SHOWSCREEN
MOUSEWAIT



Genau ^^