Tach alle,
ich habe mal wieder mit 3D gespielt, nun zickt das Programm/.exe.
1. Ich setze eine Textur auf Cubes, die werden aber nur in Gr?n dargestellt?!
Da bin ich als 3D noop etwas ratlos :)
2. Dr?ckt man mit der Mouse auf Minus bei Cam.z um die Camera heran zu fahre,
beendet das Programm das aus der IDE im debugmodus gestartet ist, ca. bei bei dem Wert 26.**** ??
3. Ohne Textur l?uft das Programm (einfach X_SETTEXTURE 0,1 auskommentieren)
4. Mit Textur l?uft es ohne Debug garnicht.
Fehlermeldung:
Quote
szAppName: what does,if one___for 3D
szAppVer: 0.0.0.0
szModName: hungapp
szModVer: 0.0.0.0
offset: 00000000
Hier gibts den Projektordner:
http://www.deuteriumoxid.com/glbasic/what does, if one...for 3D.zip (http://www.deuteriumoxid.com/glbasic/what%20does,%20if%20one...for%203D.zip)
Und hier mal nur den Code:
// --------------------------------- //
// Project: what does, if one...for 3D
// Start: Sunday, August 09, 2009
// IDE Version: 7.073
SYSTEMPOINTER TRUE
AUTOPAUSE TRUE
DRAWRECT 0,0,60,30,RGB(0xff, 0xff, 0xff)
DRAWRECT 1,1,28,28,RGB(0x00, 0x00, 0xff)
DRAWRECT 31,1,28,28,RGB(0x00, 0x80, 0x40)
PRINT "-",8,2
PRINT "+",36,2
GRABSPRITE 99,0,0,60,30
BLACKSCREEN
GLOBAL mx%,my%,b1%,b2%
GLOBAL Make3d AS Tvar
GLOBAL Cam AS Tvar
GLOBAL Roto AS Tvar
GLOBAL DrawOpj AS Tvar
GLOBAL Ambient AS Tvar
LOADSPRITE "tex.png",0
CreateCube(0,1,RGB(0x00, 0xff, 0x40))
CreateCube(1,1,RGB(0x00, 0xff, 0x40))
CreateCube(2,1,RGB(0x00, 0xff, 0x40))
Cam.z = 50
WHILE TRUE
KeyHitUpdate()
MOUSESTATE mx,my,b1,b2
X_MAKE3D .1, 1000, 45 // switch to 3D mode
mycam()
X_SETTEXTURE 0,1
X_DRAWOBJ 0,0
X_MOVEMENT -10,0,-10
X_DRAWOBJ 1,0
X_MOVEMENT 10,0,10
X_DRAWOBJ 2,0
X_DRAWAXES 0,0, 0
//-------------------------
X_MAKE2D
PRINT "what does, if one...for 3D",10,10
mycamdata()
SHOWSCREEN
WEND
FUNCTION mycam:
X_CAMERA Cam.x, Cam.y, Cam.z, Cam.xx, Cam.yy, Cam.zz // set the 3D camera
ENDFUNCTION
FUNCTION mycamdata:
LOCAL i%
DRAWRECT 0,690,1024,78,RGB(0x62, 0x1e, 0x2c)
PRINT "X_CAMERA " +Cam.x+"," + Cam.y+","+ Cam.z+","+ Cam.xx+","+ Cam.yy+","+ Cam.zz,10,710
PRINT "X_CAMERA Cam.x,Cam.y,Cam.z,Cam.xx,Cam.yy,Cam.zz",10,740
FOR i = 0 TO 5
DRAWSPRITE 99,800,500+30*i
NEXT
IF mx > 800 AND mx < 830 AND my > 500 AND my < 530 AND b1 THEN DEC Cam.x,0.1
IF mx > 830 AND mx < 860 AND my > 500 AND my < 530 AND b1 THEN INC Cam.x,0.1
IF mx > 800 AND mx < 830 AND my > 530 AND my < 560 AND b1 THEN DEC Cam.y,0.1
IF mx > 830 AND mx < 860 AND my > 530 AND my < 560 AND b1 THEN INC Cam.y,0.1
IF mx > 800 AND mx < 830 AND my > 560 AND my < 590 AND b1 THEN DEC Cam.z,0.1
IF mx > 830 AND mx < 860 AND my > 560 AND my < 590 AND b1 THEN INC Cam.z,0.1
IF mx > 800 AND mx < 830 AND my > 590 AND my < 620 AND b1 THEN DEC Cam.xx,0.1
IF mx > 830 AND mx < 860 AND my > 590 AND my < 620 AND b1 THEN INC Cam.xx,0.1
IF mx > 800 AND mx < 830 AND my > 620 AND my < 650 AND b1 THEN DEC Cam.yy,0.1
IF mx > 830 AND mx < 860 AND my > 620 AND my < 650 AND b1 THEN INC Cam.yy,0.1
IF mx > 800 AND mx < 830 AND my > 650 AND my < 680 AND b1 THEN DEC Cam.zz,0.1
IF mx > 830 AND mx < 860 AND my > 650 AND my < 680 AND b1 THEN INC Cam.zz,0.1
PRINT "Cam.x",870,500
PRINT "Cam.y",870,530
PRINT "Cam.z",870,560
PRINT "Cam.xx",870,590
PRINT "Cam.yy",870,620
PRINT "Cam.zz",870,650
ENDFUNCTION
TYPE Tvar
x#
y#
z#
xx#
zz#
yy#
phi#
angel#
r%
g%
b%
ENDTYPE
// ------------------------------------------------------------- //
// -=# CREATECUBE #=-
// ------------------------------------------------------------- //
FUNCTION CreateCube: num, sz, col
// Diese Variablen sind als LOCAL definiert:
// num, sz,
X_AUTONORMALS 1 // For a cube, hard edges
sz=sz/2
X_OBJSTART num
// Front Face
X_OBJADDVERTEX sz, -sz, sz, 1, 0, col
X_OBJADDVERTEX -sz, -sz, sz, 0, 0, col
X_OBJADDVERTEX sz, sz, sz, 1, 1, col
X_OBJADDVERTEX -sz, sz, sz, 0, 1, col
X_OBJNEWGROUP
// Back Face
X_OBJADDVERTEX -sz, sz, -sz, 1, 1, col
X_OBJADDVERTEX -sz, -sz, -sz, 1, 0, col
X_OBJADDVERTEX sz, sz, -sz, 0, 1, col
X_OBJADDVERTEX sz, -sz, -sz, 0, 0, col
X_OBJNEWGROUP
// Top Face
X_OBJADDVERTEX -sz, sz, sz, 0, 0, col
X_OBJADDVERTEX -sz, sz, -sz, 0, 1, col
X_OBJADDVERTEX sz, sz, sz, 1, 0, col
X_OBJADDVERTEX sz, sz, -sz, 1, 1, col
X_OBJNEWGROUP
// Bottom Face
X_OBJADDVERTEX sz, -sz, -sz, 0, 1, col
X_OBJADDVERTEX -sz, -sz, -sz, 1, 1, col
X_OBJADDVERTEX sz, -sz, sz, 0, 0, col
X_OBJADDVERTEX -sz, -sz, sz, 1, 0, col
X_OBJNEWGROUP
// Right face
X_OBJADDVERTEX sz, sz, -sz, 1, 1, col
X_OBJADDVERTEX sz, -sz, -sz, 1, 0, col
X_OBJADDVERTEX sz, sz, sz, 0, 1, col
X_OBJADDVERTEX sz, -sz, sz, 0, 0, col
X_OBJNEWGROUP
// Left Face
X_OBJADDVERTEX -sz, -sz, sz, 1, 0, col
X_OBJADDVERTEX -sz, -sz, -sz, 0, 0, col
X_OBJADDVERTEX -sz, sz, sz, 1, 1, col
X_OBJADDVERTEX -sz, sz, -sz, 0, 1, col
X_OBJNEWGROUP
X_OBJEND
ENDFUNCTION // sz
Danke schonmal recht viel und herzlich :)
Hmmm,
mit -1 gehts, aber es ist immer noch nicht farbig?
Wie mach ich das?
Hier noch ein zitat aus der Hilfe:
QuoteBenutzt eine Sprite-Grafik, das vorher mit LOADSPRITE geladen wurde, als aktuelle Textur f?r 3D-Objekte.
-1 gibt an, dass keine Textur verwendet werden soll.
Bin nun etwas verwirrt :S
Und die Textur steht kopf, was muss ich da beachten?
Das kopfstehen kommt von der Cubefunktion.
Da hat Gernot die Texturcoordinaten vertauscht :)