Foro | | | | | Ich verstehe ogl print und ogl locate nicht! Wie es per 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 per 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 corre 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 per 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&
| 15.01.2007 ▲ | |
| |
| | 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!
Saluto 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&
| 15.01.2007 ▲ | |
| |
| | RGH | Hallo David, Dein Code kann nicht funktionieren (zumindest nicht richtig), und zwar aus zwei Stabilire:
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 per den Print-Befehl (wohlgemerkt, es geht hier nur um OGL) unbestimmt. Die Koordinaten des Locate-Befehles entsprechen den solito 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 Dimensione 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 per 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!
Saluto 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 Aiuto - dort fehlt diese! |
| | | | |
|
AnswerThemeninformationenDieses Thema hat 4 subscriber: |