zwei Font´s auf dem GP2X möglich ? geht nicht ;-(

Previous topic - Next topic

xverbatim

Hallo,

ich habe gerade ein Problem festgestellt, was hoffentlich lösbar ist...

Ich benutze in meinem Programm für den GP2X zwei Fonts einer ist 30x30 groß der andere etwas kleiner,
nun ist das Problem, das der kleine Font NICHT ANGEZEIGT WIRD ;-(

ich lade normal beide Fonts über loadfont "font1.png",1 und loadfont "font2.png",2
und spreche diese dann über setfont 1 und setfont 2 an...
aber wie gesagt, setfont 2 wird NICHT ANGEZEIGT !!!

Warum nicht ?

In der IDE von GLBASIC läuft alles 1a...

Würde mich über Rückantwort freuen+Danke im Vorfeld
Gruß
Thomas

Schranz0r

1. kein Code/ files da!
2. können wir wegen 1. nichts machen
3. muss man wegen jeden kleinen Ding nen neuen Thread aufmachen? ( wenn ich mal so in die übersicht schau wirds mir ein wenig schlecht) Man sollte mal selber nach dem Fehler suchen, liegt meißt nicht an GLB. Ist zwar schön das du interesse am GLB zeigst, aber bitte unterlasse das gespamme.
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

xverbatim

Quote from: Schranz0r on 2008-Nov-16
1. kein Code/ files da!
2. können wir wegen 1. nichts machen
3. muss man wegen jeden kleinen Ding nen neuen Thread aufmachen? ( wenn ich mal so in die übersicht schau wirds mir ein wenig schlecht) Man sollte mal selber nach dem Fehler suchen, liegt meißt nicht an GLB. Ist zwar schön das du interesse am GLB zeigst, aber bitte unterlasse das gespamme.

hi

zu 1, ich habe doch geschrieben, das ich die fonts normal über setfont 1 und setfont 2 ansteuer, das danach die print ausgabe kommt, sollte eigentlich klar sein (GLBASIC IDE LÄUFT, GP2X F-200 läuft nicht)...also wozu code ?

zu 3, ??? ich dachte neues problem neuer thread, wenn ich alles in einen reinhauen soll, kann man das auch NETTER SAGEN ....(was solln das hier mit rumgespamme....??)

gruß thomas


Kosta

mein Spiel (fürs GP2X) nutzt 3 Fonts ... ich habe keine Darstellungsprobleme

Stimmt auch der Pfad (und ist auch der Filename richtig geschrieben worden) ?

Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

xverbatim

Hi,
danke für die Rückmeldung.

Ja, die Pfade stimmen alle...

ich habe die Sache nochmal getestet, wenn ich in einem Projekt (1 Projekt ohne ausgelagerte Functionen in einer Datei) 2 Font´s lade und anzeige wie in folgendem Beispiel, läuft alles 100% auf dem GP2X
Code (glbasic) Select

loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 1
print "TESTFONT1",100,100
setfont 2
  print "TESTFONT2",100,100
showscreen
wend

----------------------------

bei meinem Code, der 2 Fonts auf dem GP2X nicht anzeigt, habe ich ein Hauptprojekt+eine Datei, welche die Functionen enthält
Vielleicht sieht ja einer den Fehler ?

Ich weiß, der Code ist alles andere als Übersichtlich ist ;-)
*ich arbeite daran*

Die Zeilen, die evtl. von Bedeutung sind habe ich mit ################ unterlegt
und wie gesagt, ich habe eine Hauptdatei (das Hauptprojekt) und eine Datei, welche die Functionen enthält, keine Ahnung, ob das was zu sagen hat !

Der untere Code ist nicht 100% vollständig, aber enthält die Functionen, die mit Setfont arbeiten...

im Grunde macht das Programm folgendes:
es zeichnet über Sprites ein Ziffernfeld von 0-9, hat ein Löschfeld und ein Enterfeld
Ziffern werden angeklickt (die Ziffernfelder sind große Fonts) und die Zahl aus den einzelnen Ziffern wird links oben in kleinem Font ausgegeben
außerdem sind da noch 2 Button´s, wenn diese überfahren werden, ändern diese ihre Farbe.

und angezeigt wird mir nur FONT1, was ich nicht verstehe :'(

Über Tipps wäre ich sehr dankbar...
Gruß Tom


Code (glbasic) Select

// ####################### In der PROJEKTDATEI ##############################

SETSCREEN 320,240,0 // GPX2-AUFLÖSUNG

gpx2_init() // Font laden, Sprites laden und Hintergrund laden, Wichtig zum Laden des Fonts

LOADBMP "spielfeld2.bmp"

farbe=RGB(0,128,255)
klickfarbe=RGB(255,255,255)

WHILE KEY(57)=FALSE OR KEY(29)=FALSE

IF gpx2_button("BUTTON", 1,120,farbe,klickfarbe)
  SHOWSCREEN
  PRINT "BUTTON WURDE GEDRUECKT !",10,100
  SHOWSCREEN
  KEYWAIT
ENDIF

IF gpx2_button("Start", 2,170,farbe,klickfarbe)
SHOWSCREEN
PRINT "start WURDE GEDRUECKT !",10,100
SHOWSCREEN
KEYWAIT
ENDIF

MOUSESTATE x,y,b1,b2

SETFONT 2 //################# FONT WIRD AUF KLEIN GESTELLT ######################
PRINT zahl$,1,1
PRINT b$,1,40
  SETFONT 1       //############ FONT WIRD WIEDER AUF NORMAL GESTELLT ###############
     
// Keyboard zeichnen, Ziffer Prüfen etc.
     
gpx2_keyboard(180,32)         // Zeichnen des Ziffernkeyboard
a$=gpx2_pruefeKey(180,32)      // Ausgeben der eingetippten ziffern als Zahl
MouseHitUpdate(b1,b2)        // Abfrage welche Mousetasten überprüft werden sollen

// (1) = b1 | (2) = b2 gibt zurück 1 = MouseHit | 2 = MouseDown | -1 = release event | 0 = Nothing

IF mousehit(1) = 1

IF a$=-6

b$=zahl$ // ZAHL WIRD NACH ENTER IN B$ ÜBERNOMMEN
zahl$="";a$=""

ENDIF

    IF a$<>-1 THEN zahl$=zahl$+a$   // wenn im Feld dann ziffern überb

IF a$=-5 THEN zahl$="" // -5 = C TASTE GEDRÜCK, -6 = ENTER GEDRÜCKT

ENDIF

SHOWSCREEN

WEND
END


//########### IN EINER DATEI IM PROJEKT ##############################


// HIER WERDEN ERSTMAL DIE GANZEN FONTS GELADEN+TASTEN //
// ############################################################
FUNCTION gpx2_init:
LOADFONT "smalfont.png",1
LOADFONT "smalfont2.png",2

SYSTEMPOINTER TRUE // Mousezeiger an

// SPRITE LADEN
LOADSPRITE "taste00.bmp", 0 // Taste nicht gedrück
LOADSPRITE "taste01.bmp", 1 // Taste ist gedrückt
SETFONT 1 //########################################### UMSCHALTEN AUF NORMALEN FONT1
ENDFUNCTION


FUNCTION gpx2_pruefeKey: x, y
LOCAL flag

GETFONTSIZE fontx,fonty

// Mousepositionen x,y
MOUSESTATE x1,y1,b1,b2

breite=x+fontx+4
hoehe=y+fonty+4

// wenn mouse noch nicht richtig auf der taste ist, soll keine obere taste
// vor

IF y1=y+1 THEN GOTO ueberspringe

IF x1>x AND x1<breite AND y1>y AND y1<hoehe
flag=10
ENDIF

// 1
IF x1>x+36 AND x1<breite+36 AND y1>y AND y1<hoehe
flag=1
ENDIF

// 2
IF x1>x+36+36 AND x1<breite+36+36 AND y1>y AND y1<hoehe
flag=2
ENDIF

// 3
IF x1>x  AND x1<breite  AND y1>y+36 AND y1<hoehe+36+36
flag=3
ENDIF

// 4
IF x1>x+36 AND x1<breite+36 AND y1>y+36  AND y1<hoehe+36+36
flag=4
ENDIF

// 5
IF x1>x+36+36 AND x1<breite+36+36  AND y1>y+36  AND y1<hoehe+36+36
flag=5
ENDIF

// 6
IF x1>x  AND x1<breite  AND y1>y+36+36  AND y1<hoehe+36+36+36
flag=6
ENDIF

// 7
IF x1>x+36  AND x1<breite+36  AND y1>y+36+36  AND y1<hoehe+36+36+36
flag=7
ENDIF

// 8
IF x1>x+36+36  AND x1<breite+36+36  AND y1>y+36+36  AND y1<hoehe+36+36+36
flag=8
ENDIF

// 9
IF x1>x   AND x1<breite   AND y1>y+36+36+36  AND y1<hoehe+36+36+36+36
flag=9
ENDIF

drin=0

IF y1>y AND y1< y+ 4*36-4 AND x1>x AND x1<x+3*36
drin=1
ENDIF


// nichts leer unter 7 und 8 bzw. DELTASTE
IF  x1>x+36  AND x1<breite+36+36 AND y1>y+36+36+36   AND y1<hoehe+36+36+36+36
flag=-5
ENDIF

IF x1>x+36+36 AND x1<breite+36+36 AND y1>y+36+36+36  AND y1<hoehe+3*36

flag=-6

ENDIF

// nichts leer unter 9
IF x1>x  AND x1<breite+36 AND y1>y+36+36+36+36  AND y1<hoehe+36+36+36+36+36
flag=-50

ENDIF

IF flag<>0 AND flag<>-50 AND flag<>-1 AND drin=1

mx1=x1-MOD( x1,36)
my1=y1-MOD( y1,36)

      IF b1=1
IF flag=-5
ZOOMSPRITE 0,mx1,my1,1.2,1.2
PRINT "C",mx1+1,my1+2

ELSE

ZOOMSPRITE 0,mx1 ,my1 ,1.2,1.2

IF flag<>10
                      IF flag=-6
                        PRINT "=",mx1 ,my1
                    GOTO h1
      ENDIF

PRINT flag,mx1 ,my1
h1:
ELSE
flag=0

PRINT flag,mx1+1,my1+2
ENDIF

ENDIF

// ENTERTASTE

IF flag=-6

ZOOMSPRITE 0,mx1,my1,1.2,1.2
PRINT "=",mx1+1,my1+2
ENDIF

ENDIF

ELSE
flag=-1

ENDIF

RETURN flag

ueberspringe:
ENDFUNCTION // PRUEFEKEY

// ------------------------------------------------------------- //
// ---  GPX2_KEYBOARD  --- ZEICHNE KEYBOARD
// ------------------------------------------------------------- //
FUNCTION gpx2_keyboard: x, y
// hier steht X*y Größe der Fonts
GETFONTSIZE fontx,fonty

// DRAWSPRITE 0,x+i*36,y;DRAWSPRITE 0,x+i*36,y+1*36;DRAWSPRITE 0,x+i*36,y+2*36
// Sprite der Größes des Sprite Key´s anpassen

FOR i=0 TO 2

// 0 1 2
STRETCHSPRITE 0,x+i*36,y,fontx+4,fonty+4
    PRINT i,x+i*36+1,y+1
// 3 4 5
    STRETCHSPRITE 0,x+i*36,y+1*36,fontx+4,fonty+4
    PRINT i+3,x+i*36+1,y+1*36
// 6 7 8
    STRETCHSPRITE 0,x+i*36,y+2*36,fontx+4,fonty+4
    PRINT i+6,x+i*36+1,y+2*36

NEXT
i=0
// 9
    STRETCHSPRITE 0,x+i*36,y+3*36,fontx+4,fonty+4
    PRINT "9",x+i*36+1,y+3*36

// Deltaste erstellen
STRETCHSPRITE 0,x+1*36,y+3*36,fontx+4 ,fonty+4
PRINT "C",x+1*36+1 ,y+3*36

// Gleich erstellen
STRETCHSPRITE 0,x+2*36,y+3*36,fontx+4 ,fonty+4
PRINT "=",x+2*36+1 ,y+3*36
ENDFUNCTION // GPX2_KEYBOARD

// ------------------------------------------------------------- //
// ---  GPX2_BUTTON  ---
// ------------------------------------------------------------- //
FUNCTION gpx2_button: text$, x, y,farbe,klickfarbe
// Diese Variablen sind als LOCAL definiert:
// text$, x, y
STATIC flagbutton

SETFONT 2      //########################################### UMSCHALTEN AUF kleinen FONT2

MOUSESTATE xpos,ypos,b1,b2

GETFONTSIZE fontbreite,fonthoehe

breite=LEN(text$)  *fontbreite+2*fontbreite

// STRETCHSPRITE 0,x,y,breite,36

DRAWRECT x,y,breite,fonthoehe,farbe
PRINT text$,x+fontbreite,y

IF xpos>x AND xpos<x+breite AND ypos>y AND ypos<y+fonthoehe

farbe2=RGB(55,155,255)
DRAWRECT x,y,breite,fonthoehe,farbe2
PRINT text$,x+fontbreite,y
IF b1=1
imbutton=1
DRAWRECT x,y,breite,fonthoehe,klickfarbe
PRINT text$,x+fontbreite,y
ENDIF
ELSE
imbutton=0
ENDIF

SETFONT 1 //########################################### WIEDER UMSCHALTEN AUF NORMALEN FONT1

RETURN imbutton
ENDFUNCTION // GPX2_BUTTON





Moru

Sorry for english but I don't speak german though I still understand what the problem is.

Zip your whole project including fonts and pictures and upload so we can just try it out and see if we find the error somewhere. This makes helping much easier and so more people have the time to attempt helping you.

You could also try to slim down your project as much as possible to the point where the problem still shows up but doesn't contain so much code.

Kosta

> bei meinem Code, der 2 Fonts auf dem GP2X nicht anzeigt, habe ich ein Hauptprojekt+eine Datei, welche die Functionen enthält
&
>und wie gesagt, ich habe eine Hauptdatei (das Hauptprojekt) und eine Datei, welche die Functionen enthält, keine Ahnung, ob das was zu sagen hat !

Das ist kein Problem, habe auch eine externe Datei, bei der alles mögliche (Fonts, Bilder, usw) geladen wird....das sollte tun

3 Sachen meinerseits:

a) Probiere mal ob der Standardpfad vom gp2x richtig ist....mache mal sowas rein..zum testen ob er das findet....

existiert=DOESFILEEXIST("font2.png")    # Dein 2. Font der nicht dargestellt wird (den Namen am besten per cut-n-paste aus dem loadfont ziehn (zwecks Tippfehler)..
IF existiert
   PRINT "yuhuu",100,100
ELSE
   PRINT "Doooh!",100,100
ENDIF

oder sowas hier:

PRINT GETCURRENTDIR$(), 0, 0

b) dein o.g. Beispiel geht? (du benutzt aber Loadfont 0 und Loadfont 1 -> wechseln tust du mit setfont1 und setfont 2 ??????

c) Versuch mal setfont nur in der Datei zu benutzen, bei der du das loadfont benutzt hast (andere Funktion kein Problem).
Intel QuadCore, Geforce8600GT,512MB,4GB Ram, 26" TFT
HP nw8440 Schläppy
GP2X Mk2 (Firmware 3.0)

GLBASIC Blog:
http://www.glbasic.com/forum/index.php?blog=51.0

Schranz0r

Geht doch...

Also:

dein Code:
Code (glbasic) Select
loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 1
print "TESTFONT1",100,100
setfont 2
  print "TESTFONT2",100,100
showscreen
wend


kann ja schonmal net gehn 100,100 ;) Du zeichnest genau über die andere Schrift drüber ( wenn das der Fehler sein sollte)
Sonnst versuchs mal mit Kostas Code, wenn das alles OK ist, brauchen wir deine GLBasic Version + das Projekt+ Fonts !
Dann können das andere auch nachvollziehen.
Ich jedoch tippe schwer auf Firmwarefehler des GP2X ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

xverbatim

Hi,

erstmal Danke für die Antworten...

@Schranz0r
"kann ja schonmal net gehn 100,100 Wink Du zeichnest genau über die andere Schrift drüber ( wenn das der Fehler sein sollte)"
nee, war nicht der Fehler, hatte ich jetzt hier schnell reingetippt...immer diese Tippfehler ;-(


Ich glaube, das Problem gefunden zu haben.


Das Problem hat mit den Farben zu tun, wenn ich einen dunklen Zeichensatz; schwarz RGB(1,1,1) und png (bmp habe ich jetzt nicht getestet), wird mir dieser
NICHT auf dem GP2X angezeigt, auch nicht auf hellen Hintergrund...


Alle anderen Farben gehen soweit...

Den großen Font den ich hatte, war dunkelblau, der kleine Font war schwarz(1,1,1) und genau deshalb wurde er nicht angezeigt...


@Kosta

Falls Du Zeit hast, kannst Du das evtl. mal testen ?
würde mich interessieren, ich habe übrigens ein GP2X-F200 mit Firmware 4.1.1 + Touchscreen Fix

Gruß + nochmals Danke für die Mühe
Thomas

D2O

Der Code kann garnicht funktionieren zumindest nicht so wie vorgesehen:
Code (glbasic) Select
loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 1
print "TESTFONT1",100,100
setfont 2
  print "TESTFONT2",100,100
showscreen
wend


Du ladest die Font mit der Kennung 0 und 1
und sprichst sie mit 1 und 2 an ????

Code (glbasic) Select
loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 0
print "TESTFONT1",100,100
setfont 1
  print "TESTFONT2",100,100
showscreen
wend


I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

xverbatim

Quote from: D²O on 2008-Nov-17
Der Code kann garnicht funktionieren zumindest nicht so wie vorgesehen:
Code (glbasic) Select
loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 1
print "TESTFONT1",100,100
setfont 2
  print "TESTFONT2",100,100
showscreen
wend


Du ladest die Font mit der Kennung 0 und 1
und sprichst sie mit 1 und 2 an ????

Code (glbasic) Select
loadfont "font30x30.png",0
loadfont "font18x18.png",1

while key(57)=false
setfont 0
print "TESTFONT1",100,100
setfont 1
  print "TESTFONT2",100,100
showscreen
wend


Halt stopp, ja klar danke für die Rückmeldung,

den oberen Code hatte ich schnell hier reingetippt, getestet hatte ich natürlich mit 0,1 geladen und mit setfont 0,1 angesprochen, war ein tippfehler...übrigens hatte ich für dieses kurze beispiel auch andere farben hellorange und die gingen, wäre eine farbe davon schwarz rgb(1,1,1) würde er auf dem gp2x nicht angezeigt; jedenfalls bei mir...


DER CODE WAR NICHT DAS PROBLEM, SONDERN DIE FARBEN DES ZEICHENSATZES --> SCHWARZ RGB(1,1,1)/PNG FORMAT wird bei mir auf dem GP2X NICHT angezeigt


Gruß Tom

D2O

Alles klar, hab hier wohl etwas überflogen ;)
Ich würde es ja gerne bei mir Testen, aber mein kleiner ist gerade in der Reperatur bei ED.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell