hi alle!
ich wollte mal ein 3d shooter spiel erstellen und kamm nich weiter.
ich wollte die waffe einfügen aber sie wird nicht angezeigt :(
könnt ihr mir mal helfen?
währe nett^^
hier der code:
// --------------------------------- //
// Project: 3d shooter
// Start: Monday, January 21, 2008
// IDE Version: 5.055
// Steuerung mit W-A-S-D Tasten + Maus
SETSCREEN 800,600,FALSE
// Lade 3D Objekte-------------
X_LOADOBJ "ground.ddw", 0
X_LOADOBJ "skybox.ddw",1
//-----------------------------
// Lade DRAWSPRITEs/Texturen... Texturen müssen ^2 sein!
LOADSPRITE "crosshair.bmp",1
LOADSPRITE "weapon1.bmp",9 //!!!das ist die waffe!!!
//--------------------------------------------------
GLOBAL up_down_limit = 80 //gesammt 160°
GLOBAL WalkSpeed = 0.30
GLOBAL sprintspeed = 0.30
GLOBAL phiXZ = 90 // Startwinkel korregieren
GLOBAL anziehung = 0.15 // Erdanziehungskraft
Y = 3
WHILE TRUE
X_MAKE3D .1,1000,45 // sicht von 1 bis 1000, brennweite 45
X_CAMERA X, Y, Z, X+COS(phiXZ), Y+SIN(-phiXY), Z+SIN(phiXZ) // Die Cam erstellen
X_SPOT_LT 0,RGB(0xff, 0xff, 0xff),0,900,0,0,0,0,200 //Licht erstellen und in alle richtungen scheinen lassen (360)
X_DRAWOBJ 0,0
Coll = X_COLLISIONRAY(0,0,X,Y,Z,0,-1,0) // Collision mit Boden
INC Sky,0.1 // SkyBox-Winkel erhöhen
IF Sky > 359 THEN Sky = 0 //winkel begrenzen
X_ROTATION Sky,0,1,0 // rotation erstellen
X_DRAWOBJ 1,0 // Skybox zeichen
X_CLEAR_Z // Tiefenbuffer löschen
IF Coll > 1.5
DEC Y,anziehung // wenn "Spieler" in der luft dann Anziehung!
ENDIF
IF Coll < 1.4 // muss kleiner sein als
INC Y,0.1 // wenn erhöhung kommt dann höher setzen
IF Coll = 0 THEN DEC Y,anziehung // wenn keine Collision da ist spieler runterfallen lassen
ENDIF
INC phiXZ,MOUSEAXIS(0)/2 //links-rechts
INC phiXY,MOUSEAXIS(1)/2 //hoch runter
IF phiXZ > 359 THEN phiXZ = 0 //Winkel begrenzen
IF phiXZ < 0 THEN phiXZ = 359 //Winkel begrenzen
IF phiXY < -up_down_limit THEN phiXY = -up_down_limit //Winkel begrenzen
IF phiXY > up_down_limit THEN phiXY = up_down_limit //Winkel begrenzen
IF KEY(17) // forward -- W-KEY
INC Z,SIN(phiXZ)*WalkSpeed
INC X,COS(phiXZ)*WalkSpeed
ENDIF
IF KEY(31) // back -- S-Key
DEC Z,SIN(phiXZ)*WalkSpeed
DEC X,COS(phiXZ)*WalkSpeed
ENDIF
IF KEY(30) // left -- A-Key
INC Z,SIN(phiXZ-90)*WalkSpeed
INC X,COS(phiXZ-90)*WalkSpeed
ENDIF
IF KEY(32) // right -- D-Key
INC Z,SIN(phiXZ+90)*WalkSpeed
INC X,COS(phiXZ+90)*WalkSpeed
ENDIF
IF KEY(29) AND KEY(17)
INC Z,SIN(phiXZ)*sprintSpeed
INC X,COS(phiXZ)*sprintspeed
ENDIF
X_MAKE2D // auf 2D umschalten
GETSCREENSIZE XX, YY
ALPHAMODE 0.2 // Alpha anstellen
DRAWSPRITE 1, XX/2-10,YY/2-10 // crosshair mittig setzen
DRAWSPRITE 2, XX/2-10,YY/2-10
ALPHAMODE 0 // Alpha reseten
SHOWSCREEN
WEND
END
X_MAKE3D 1,100 // nicht so großen Bereich wählen.
Die Kamera ist auf position 0,3,0 am Anfang. Du zeichest das Objekt auf 0,0,0 (Kein X_MOVEMENT devor).
Die Kamera ist also genau _in_ Deinem Objekt.
Schieb die Kamera mal weiter weg:
X_CAMERA X,Y,-50, 0,0,0
Ich frag mich nur, wieso Leute immer als erstes ein 3D Shooter machen müssen oder ein RPG....?
Das ist doch mit das schwierigste überhaupt, grad für den Anfang!
Macht doch lieber erstmal kleine 2D Games, und wenn das dann so ziemlich ausgereizt ist, dann könnt ihr 3D machen.
So fallt ihr auf die Nase, und seid enttäuscht und nich mehr motiviert weiter zu machen....
WHILE KeineAhnung()
INC ProjektUnfang, 1000
WEND
IF Projektumfang > Hirn() THEN END
so in etwar :D
hi gernotfrisch!
was muss ich jetzt genau machen?
ich hab bei X_MAKE3D die hälfte weggenommen.
aber die waffe wird immer nochnicht angezeigt warum?? kannst du mal code geben?
Wurde doch schon gesagt!
Du hast die Cam genau in der Waffe, Nun kommt es noch auf die größe der Waffe an!
Mach doch erstmal die Waffe auf 0,0,0 und die Cam auf 0,0,10, 0,0,0
X_MAKE3D 1,1000,45