Schüsse in einem 3d Firstpersonshooter
Übersicht

![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, irgendwie Blick ich da nicht ganz durch ![]() Du hast die If Mousehit(1) und For each Schleife ja gar nicht in der Hauptschleife deines Programms (falls ich das richtig gesehen habe). Grundprinzip ist eigentlich fast immer: Code: [AUSKLAPPEN] Grafikmodus einstellen Daten laden und initialisieren Hauptschleife des Programms Tastatur, Maus oder Joystick abfragen Verarbeitung von Daten und Objekte Bewegen Ausgabe (Bilder,Text usw. Zeichnen,Rendern) Ende der Hauptschleife Programm Ende Und die Abfrage if mousehit(1) fällt da ganz Klar in die Kategorie Maus abfragen in der Hauptschleife. Wobei die For each Schleife wahrscheinlich in die Kategorie Verarbeitung gehört ![]() Natürlich muss niemand strikt nach dem vorgehen, aber Dinge die ja jedes Frame abgefragt werden müssen sollten schon in die Programm Hauptschleife ![]() Das behebt aber wahrscheinlich deinen Fehler immer noch nicht.. Wenn die Meldung kommt sollte der Cursor ja eigentlich in der Zeile sein wo der Fehler ist. (Vorausgesetzt du bist im Debugmodus). Vielleicht kommst du dann darauf was falsch ist. Ansonsten müsste ich die Models usw. auch alle haben, kann es sonst schlecht debuggen. |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Funktioniert immer noch nicht!Es kommt immer noch der Variabelenfehler.Heute habe ich keine Zeit mehr aber Morgen lade ich mal alles hoch | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So hier ist jetzt die exe der Quellcode und alles was man brauch,allerdings habe ich aus der exe den Teil mit dem Schuss entfernt weil nicht funktionsfähig der Teil ist nur im Sourcecode enthalten.
http://home.arcor.de/the_fuzzy/Test3d.zip |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du den Debugmodus nicht an?
Bei mir kam nämlich sofort die Meldung das die Segmentanzahl bei der Sphere mit dem Himmel nicht richtig ist. 120 ist wohl zu gross. Wo ich es auf 32 gemacht hab ging es. Also CreateSphere(32) Dann kommt bei mir aber noch ein anderer Fehler, die Grastextur die du als text1 speicherst kann irgendwie nicht geladen werden. Wo ich dann die Sachen mit der Grastextur auskommentiert habe hat das ganze einwandfrei funktioniert. Ich weiss aber nicht genau wieso er die Textur nicht laden kann, vielleicht wärs besser wenn du die Quadratisch machst mit Standardgrössen wie 128x128 oder 256x256 usw. |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Funktionier bei dir auch das mit dem Schuss wenn du alles erklärte machst.Weil wenn ich den Teil fürs scjiesen rauslasse geht alles perfekt auc wenn der Sky 120 Polygonen hat.Code: [AUSKLAPPEN] Graphics3D 800,600,0,1
AppTitle "Rammjäger" HidePointer SetBuffer BackBuffer() Global pivot ;Laden der Texturen und Meshs terrain=LoadTerrain("f:\Grassclip.bmp") text1=LoadTexture("f:\Gras.jpg") metallpyramide=LoadMesh("f:\pyramide.x") Gebaude=LoadMesh("f:\house.x") Burg=LoadMesh("f:\Burg.x") himmel=LoadTexture("f:\himmel2.jpg") Baumstumpf=LoadMesh("f:\Baumstumpf.x") Baumstumpf1=LoadMesh("f:\Baumstumpf.x") Baumstumpf2=LoadMesh("f:\Baumstumpf.x") Baumstumpf3=LoadMesh("f:\Baumstumpf.x") cockpit=LoadImage("f:\rearcockpit1.bmp") Fadenkreutz=LoadImage("f:\Fadenkreutz.bmp") bulletsprite = LoadSprite("f:\bullet.jpg") HideEntity bulletsprite Type bullet Field obj,lifetime End Type ;Objekt richtig drehen ;Erstellen eines Pivot für die Kollision sky=CreateSphere(120) FlipMesh sky ScaleEntity sky,7000,9000,7000 PositionEntity sky,6500,1000,6800 ;Metallpyramide PositionEntity metallpyramide,5000,20,7800 PositionEntity Baumstumpf,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf1,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf2,Rand(-2000,6000),20,Rand(-1000,9000) PositionEntity Baumstumpf3,4200,20,9000 ; PositionEntity Burg,5000,-5,8000 ;Das Terrain erstellen und Texturieren pivot=CreatePivot() EntityRadius pivot,0.2 EntityTexture terrain,text1,0,0 ScaleEntity terrain,50,60,50 ScaleTexture text1,20,20 ;Spielfigur posizionieren TerrainDetail terrain,8000,True ;Position der Hand ;Position des Hauses PositionMesh Gebaude,9000,-250,-9000 ;Die Textur des Hauses bearbeiten und verwenden EntityTexture sky,himmel RotateMesh Gebaude,180,0,0 ;;;;;;;;;;;;;;;;;;;;;;;;;;------Die Eintsellung der Kamera auf Firstpersonsicht sicht ;; ;; ;Kameravoreinstellungen cam=CreateCamera() PositionEntity cam,5100,2050,8075 ; CameraRange cam,1,80000 light=CreateLight() LightRange light,80000 TurnEntity light,45,45,45 EntityParent light,cam ;Einstellungen für die Sicht TurnEntity cam,10,106,0 PositionEntity cam,3007,1025,5845 TurnEntity cam,270,0,270 ;Kollisionsabfrage EntityType terrain,2 EntityType cam,1 EntityType Burg,3 EntityType metallpyramide,4 EntityType sky,5 Collisions 1,2,2,1 Collisions 1,3,2,1 Collisions 1,4,2,1 Collisions 1,5,2,1 EntityOrder sky,1 ;Steuerung des Spieler und der Cam ;;;;;;;;;;;;;;;;;;;;-------Hauptschleife While Not KeyHit(1) ; For bullet.bullet Each bullet MoveEntity bullet\obj,0,0,25.0 Next ;Mausabfrage RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 If Not KeyDown(200)=1 Then MoveEntity cam,0,-50,0 If KeyDown(200)=1 Then MoveEntity cam,0,0,20 If KeyDown(203)=1 Then MoveEntity cam,-20,0,0 If KeyDown(205)=1 Then MoveEntity cam,20,0,0 If KeyHit(35)=1 Then SaveBuffer BackBuffer(),"screenshots.bmp" EndIf If KeyDown(1) Then End UpdateWorld RenderWorld MaskImage cockpit,128,128,255 DrawImage Fadenkreutz,370,250 DrawImage cockpit,0,380 Flip Wend ClearWorld End Mit diesem Code ohne dem zeugs mit dem scjiesen funktioniert bei mi alles super! |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit segmentanzahl 120 hat der Sky mehrere tausende polygone...
du wirst aber den unterschied zwischen 32 und 120 überhaupt nicht sehen können... |
||
Norweger...
Spreche aber verdammt gut 8086 |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Gut überzeugt mache ich einfach 32 aber das löst mein Schussproblem nichr. | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jolinah ich habe jetzt den debugger angemacht und die Feheler mit der Sphere entfernt.Jetzt funktioniert das Programm auch mit dem schusscodeteil doch scjiesen kann ich immer noch nicht.Und wenn ich jetzt diesen code einstze um die Schüsse zu bewegen kommt wieder der Fehler Expecting Variable asiggment und das obwohl ich den Debugger an habe und die Spheren Segmente auf 31 gestellt und die Highmap auf 256*256 gestelt habe warum?
Code: [AUSKLAPPEN] For bullet.bullet Each bullet
MoveEntity bullet\obj,0,0,1 Next |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Expecting Variable asiggment
Der Compiler erwartet eine Zuweisung eines Wertes/Inhaltes zu einer Variablen. Der Zuweisungsoperator ist "=". Code: [AUSKLAPPEN] For bullet.bullet Each bullet
Könnte hier etwas fehlen ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: For bullet.bullet = Each bullet
MoveEntity bullet\obj,0,0,25.0 * frametime_sec# If now >= bullet\destroy - 2000 Then bullet\alpha# = bullet\alpha# -0.01 EntityAlpha bullet\obj,bullet\alpha# ElseIf now >= bullet\destroy Then FreeEntity bullet\obj Delete bullet EndIf Next Ach daran lags.. hab ich auch übersehen, aber wie du siehst hatte ich es richtig geschrieben ![]() |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke die Fehler sind jetzt weg aber sehe immer noch keinen schuss und der Bewegt sich auch nicht? | ||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hast du meine Geschwindigkeiten übernommen, bei mir wurde das alles mit einem Zeitfaktor multipliziert (Dauer eines Schleifendurchganges in Sekunden).
Der Faktor hat natürlich die Geschwindigkeit enorm gebremst. Deshalb ist 25 für den Schuss vielleicht ein bisschen viel bei dir. Versuch es vielleicht mal mit 1.0 oder so. Falls du es schon tiefer hattest könnte es höchstens wieder an einem fehlenden ShowEntity bullet\obj liegen oder der Schuss fliegt vielleicht in die falsche Richtung so das du ihn nicht siehst. |
||
sven123 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hatest recht ich habe das showentity vergessen.Jetzt habe ich es hinzugefügt,die bewegung auf 1.0 gemach und mit -1.0 habe ich auch einen Test gestartet trotzdem sehe ich keinen Schuss.
Code: [AUSKLAPPEN] While Not KeyHit(1)
If MouseHit(1) Then bullet.bullet = New bullet bullet\obj = CopyEntity(bulletsprite,cam) ShowEntity bullet\obj PositionEntity bullet\obj,EntityX#(cam),EntityY#(cam),EntityZ#(cam) EndIf For bullet.bullet=Each bullet MoveEntity bullet\obj,0,0,-1.0 Next |
||
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group