First Person Shoter Frage

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

First Person Shoter Frage

Beitrag von kob »

Hallo ich möchte einen FPS Schreiben bin auch schon weit , nur bei der entscheidenen frage gibt es ein problem . ich habe mir im internet ein beispiel angesehen , das erleutern soll , wie man eine kugel in die richtung "fliegen" lassenkann , in die die kammera greade schaut , problem bei mir funktionirt das nicht hat jemand eine antwort für micht ? ober sogar ein paar proceduren ? das währe nett Thanks
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Zeig uns das Beispiel doch mal und erkläre uns, warum das bei Dir nicht funktioniert bzw. wie das bei Dir dann abläuft.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Also auf Anhieb würde ich nun auf Vektorrechnung oder Trigonometrie zurückgreifen, falls sich das nicht mit integriertem Funktionen der Engine bewerkstelligen lässt.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

problem bei mir funktionirt das nicht hat jemand eine antwort für micht ?
Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Ok

Beitrag von kob »

Ich kann ja mal die proceduren rinstellen , sind aber etwas groß und undurchsichtig , ist neues land für mich sowas , nicht 3D algemein , nur das mir der kamera also hier die proceduren :

Code: Alles auswählen



Structure Shot
ID.l
EntityID.l
X.f
Y.f
Z.f
MoveX.f
MoveY.f
MoveZ.f
Speed.f
Damage.l
EndStructure

Global PiOver180 = (ATan(1)*4)/180

Global NewList Shot.Shot()


Procedure AndY_AddShot(ID,Entity,x,y,z,MoveX.f,MoveY.f,MoveZ.f,Speed)

AddElement(Shot())
Shot()\ID = ID
Shot()\EntityID = Entity
Shot()\X = X
Shot()\Y = Y
Shot()\Z = Z
Shot()\MoveX = MoveX
Shot()\MoveY = MoveY
Shot()\MoveZ = MoveZ
Shot()\Speed = Speed

EndProcedure

Procedure AndY_ExamineShot()
If CountList(Shot()) => 1
ForEach Shot()

Shot()\X + ( Shot()\MoveX * 3 )
Shot()\Y + ( Shot()\MoveY * 3 ) 
Shot()\Z + ( Shot()\MoveZ * 3 )

EntityLocate(Shot()\EntityID,Shot()\X,Shot()\Y,Shot()\Z)

Next 
EndIf
EndProcedure

Procedure AndY_DeleteShot(ID)
If CountList(Shot()) => 1
ForEach Shot()

If Shot()\ID = ID
DeleteElement(Shot())
EndIf

Next 
EndIf
EndProcedure

und in der Main :

Code: Alles auswählen


InitAndYEngine()
AndY_Con_Init()

CreateCamera(1,0,0,100,100)
CameraLocate(1,1000,0,0)
CameraLookAt(1,0,0,0)

Repeat
ClearScreen(#Black)
ExamineMouse()
ExamineKeyboard()
AndY_ExamineJump()
AndY_ExamineShot()

If KeyboardReleased(#PB_Key_Add)
AndY_SetHUDSprite(#Sprite_HUD_ScopeM4A1)
ElseIf KeyboardReleased(#PB_Key_Subtract)
AndY_SetHUDSprite(#Sprite_HUD_ScopeNorm)
EndIf

If KeyboardPushed(#PB_Key_W)
CameraMoveZ = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_S)
CameraMoveZ = #CameraSpeed
Else
CameraMoveZ = 0
EndIf

If KeyboardPushed(#PB_Key_A)
CameraMoveX = -#CameraSpeed
ElseIf KeyboardPushed(#PB_Key_D)
CameraMoveX = #CameraSpeed
Else
CameraMoveX = 0
EndIf

If KeyboardPushed(#PB_Key_LeftControl)
PlayerHeight = 150
Else
PlayerHeight = 270
EndIf

If KeyboardReleased(#PB_Key_Space)
AndY_Jump(230,10)
EndIf

If MouseButton(#PB_MouseButton_Left) = 1
BewegX.f                  = -Sin(CamrotY*piover180)
BewegY.f                  =  Sin(CamrotX*piover180)
BewegZ.f                  = -Cos(CamrotY*piover180)

AndY_Con_DebugText(Str(BewegX))
AndY_Con_DebugText(Str(BewegY))
AndY_Con_DebugText(Str(BewegZ))

AndY_AddShot(1,#SR71_Shell,CameraX(1),CameraY(1),CameraZ(1),BewegX.f,BewegY.f,BewegZ.f,2)
EndIf

MouseX = -MouseDeltaX()/10 
MouseY = -MouseDeltaY()/10
camrotx + Mousey
camroty + Mousex
If camrotx > 360 : camrotx - 360 : EndIf 
If camroty > 360 : camroty - 360 : EndIf 
If camrotx < 0   : camrotx + 360  : EndIf 
If camroty < 0   : camroty + 360  : EndIf

CameraLocate(1,CameraX(1),PlayerY+PlayerHeight,CameraZ(1))
MoveCamera(1,CameraMoveX,0,CameraMoveZ)
RotateCamera(1,MouseX,MouseY,RollZ)

RenderWorld()
AndY_DrawHUD()
AndY_Con_DrawBack()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(10,10,Str(Engine3DFrameRate(#PB_Engine3D_Current)),RGB(255,255,255))
DrawText(10,25,Str(CountRenderedTriangles()),RGB(255,255,255))

DrawText(10,50,Str(camrotx),#White)
DrawText(10,75,Str(camroty),#White)

AndY_Con_DrawConsole()

StopDrawing()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
Ja ich weis . das mit AndY_ ist meine engine heisst so , danke für die schnelle hilfe weiter so .
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Hast du auch etwas was ausführbar ist? Du solltest versuchen das Problem auf den Kern zu reduzieren.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Klar

Beitrag von kob »

Klar habe ich was ausfürbares , das sind nur 35MB , mit den sorces , daten , texturen und so , kann ich ja man irgendwie hochladen . Lade es bei rapideshare hoch , send dan den link , bitte die daten vertraulich behandel , und nicht verändern , sind auserdem ein paar "geklaute" :roll: meshes drin , ein bin ich greade am modeln .
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also ganz grundsätzlich musst du einen 3D-Vektor berechnen, in dessen Richtung die Cam zeigt.
dieser Vektor auf eine Grundlänge reduziert ist dann der bewegungsvektor für deine Geschosse.

ein problem was ich bei dir sehe ist, dass du eine gewisse camrotx/y berechnest,
aber die camera nach MouseX/Y rotierst.

aber ganz grundsätzlich ist es wirklich hilfreich, wenn du einen ausführbaren code postest.
das bedeutet nicht, dass du dein ganzes projekt posten sollst,
sondern nur ein bisschen extra-code, der demonstriert wo das problem liegt.
und natürlich auch eine ausführliche erklärung, also mehr als drei sätze.

die 35MB werde ich nicht runterladen, um mich durch tonnen fremden code zu kämpfen.
investiere doch bitte etwas zeit und schreibe ein beispiel, das das problem zeigt.

sorry, aber wenn man ein komplexes problem hat, muss man sich
nunmal etwas mühe geben das darzulegen, wenn man hilfe braucht.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Is Oben

Beitrag von kob »

Hier ist der link :
http://rapidshare.de/files/40077622/SHOTER.zip.html

bitte vertraulich behandel , und bitte beeilt euch danke !!! :allright:
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Ok'e werde ich mal machen

Beitrag von kob »

danke für die antwort , habe sie leiber erst gelesen als ich das archiv schon hochgeladen hatte , werde jetzt ein beispiel schreiben , lasse den link aber aktiv
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Antworten