| |
|
|
| Ich verstehe ogl print und ogl locate nicht! Wie es für mich aussieht funktioniert beides bei mir irgendwie nicht richtig. KompilierenMarkierenSeparieren {$cleq}
include oglhelper.inc
cls
ogl("init",hwnd,0,0,0,0)
ogl("clear")
var oglFnt&:=ogl.createfont("courier new",20,true)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end
proc ogl.createfont
parameters fontName$,size&,big%
var fnt&:=create("font",fontName$,size&,0,big%,0,0)
var oglfnt&:=ogl("BitmapFont",fnt&)
deleteobject fnt&
return oglfnt&
endproc
a) Warum wird hallo welten (nur bei mir?!) nicht angezeigt? b) Warum, wenn ich vor die Prints ein ogl locate schreibe, wird (nur bei mir?!) garkein Text angezeigt? c) in der Hilft ist leider nicht beschrieben wie die Parameter für ogl locate zu interpretieren sind.
Kann mir jemand helfen? Bei den 3D-Fonts hingegen funktioniert alles so wie es soll.
<offtopic> Der original-Xpse Source: KompilierenMarkierenSeparieren!{$cleq}
//include oglhelper.inc
cls
ogl("init",hwnd,0,0,0,0)
ogl("clear")
long oglFnt:=ogl.createfont("courier new",20,true)
ogl("print",oglfnt,"hallo welt")
ogl("print",oglfnt,"hallo welten")
ogl("show")
waitkey
end
ogl.createfont (string fontName,long size,bool big) {
long fnt:=create("font",fontName,size,0,big,0,0)
long oglfnt:=ogl("BitmapFont",fnt)
deleteobject fnt
return oglfnt
}
</offtopic> |
|
|
| |
|
|
|
Jörg Sellmeyer | Was soll man dabei denn jetzt testen? XPSE oder den Code? XPSE habe ich nicht und den Code erst umschreiben, damit er läuft ist doch nicht Sinn der Sache, oder? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.01.2007 ▲ |
|
|
|
|
| Es gibt keinen Code umzuschreiben - es geht auch nicht um XPSE. Es geht um den o.G. Code - der ist reines XProfan. Das Problem ist beschrieben - verstehe nicht worum es Dir geht?!
Ich schrieb das ogl print und locate mir Probleme bereitet. xpse braucht niemand für mich testen. |
|
|
| |
|
|
|
| Ohne umschreiben gibts nur Fehler KompilierenMarkierenSeparierencls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end
proc ogl.createfont
parameters fontName$,size&,big%
var fnt&=create("font",fontName$,size&,0,big%,0,0)
var oglfnt&=ogl("BitmapFont",fnt&)
deleteobject fnt&
return oglfnt&
endproc
Unten link erscheint: hallo welt, mehr nicht. |
|
|
| |
|
|
|
RGH | [quote:c4654f04d2=iF]Es geht um den o.G. Code - der ist reines XProfan[/quote:c4654f04d2] Leider eben nicht, was dazu führt, daß jemand ohne XPSE den Code ohne Änderungen nicht verwenden kann!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 15.01.2007 ▲ |
|
|
|
|
| Stimmt - ich habe := vergessen zu ersetzen!
Der Code funzt trotzdem nicht wie zu erwarten? KompilierenMarkierenSeparierencls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("print",oglfnt&,"hallo welt")
ogl("print",oglfnt&,"hallo welten")
ogl("show")
waitkey
end
proc ogl.createfont
parameters fontName$,size&,big%
var fnt&=create("font",fontName$,size&,0,big%,0,0)
var oglfnt&=ogl("BitmapFont",fnt&)
deleteobject fnt&
return oglfnt&
endproc
|
|
|
| |
|
|
|
RGH | Hallo David, Dein Code kann nicht funktionieren (zumindest nicht richtig), und zwar aus zwei Gründen:
1. Es fehlt der Origin-Befehl. Bei Bitmap-Fonts gibt es keine räumliche Tiefe, d.h. sie werden auf der Z-Achse an Position 0 gezeichnet. Um etwas an Position 0 zu sehen, muß der Betrachter einen Schritt zurückgehen, bzw. der zu betrachtende Gegenstand zurück in den Raum geschoben werden.
2. Es fehlt der Locate-Befehl. Ohne Locate-Befehl ist die Darstellungsposition für den Print-Befehl (wohlgemerkt, es geht hier nur um OGL) unbestimmt. Die Koordinaten des Locate-Befehles entsprechen den üblichen X- und Y-Koordinaten in OpenGL, d.h. 0,0 ist exakt in der Mitte und wo genau auf dem Bildschirm 1,1 ist hängt von der Größe des Z-Wertes im Origin-Befehl ab.
Man kann sich das also so vorstellen, daß in der mit Z eingestellten Entfernung, also am Ursprungspunkt der OGL-Welt, eine 2D-Fläche ist, auf die geschrieben wird. Vor jedem Schreiben mit Print muß die Schreibposition eingestellt werden. (Gleiches gilt für die Darstellung von 2D-Bitmaps.)
So funktioniert Dein Beispiel: KompilierenMarkierenSeparierencls
ogl("init",%hwnd,0,0,0,0)
ogl("clear")
oGL("Origin", 0, 0, -6)
var oglFnt&=ogl.createfont("courier new",20,1)
ogl("locate", 0, 0)
ogl("print",oglfnt&,"+ (0,0)")
ogl("locate", 1, 1)
ogl("print",oglfnt&,"+ (1,1)")
ogl("locate", -1, 1)
ogl("print",oglfnt&,"+ (-1,1)")
ogl("locate", 1, -1)
ogl("print",oglfnt&,"+ (1,-1)")
ogl("locate", -1, -1)
ogl("print",oglfnt&,"+ (-1,-1)")
ogl("locate", 2, 2)
ogl("print",oglfnt&,"+ (2,2)")
ogl("locate", -2, 2)
ogl("print",oglfnt&,"+ (-2,2)")
ogl("locate", 2, -2)
ogl("print",oglfnt&,"+ (2,-2)")
ogl("locate", -2, -2)
ogl("print",oglfnt&,"+ (-2,-2)")
ogl("show")
waitkey
end
proc ogl.createfont
parameters fontName$,size&,big%
var fnt&=create("font",fontName$,size&,0,big%,0,0)
var oglfnt&=ogl("BitmapFont",fnt&)
deleteobject fnt&
return oglfnt&
endproc
Experimentiere ein wenig mit dem z-Wert im Origin-Befehl und dir wird sofort klar, was ich oben umständlich zu erklären versuche!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 15.01.2007 ▲ |
|
|
|
|
| Jau - super Erklärung! Ab damit in die Hilfe - dort fehlt diese! |
|
|
| |
|
|