Ego-Shooter Steuerung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

juse4pro

Betreff: Ego-Shooter Steuerung

BeitragFr, Aug 28, 2009 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi leute:

habe folgendes problem:
ich möchte meine kamera wie bei einem ego-shooter bewegen, aber bisjetzt sind alle lösungsansätze von mir fehlgeschlagen

die steuerung soll der von Half-Life ähneln

meine ansätze:
da moveentity zu unpassend ist:
BlitzBasic: [AUSKLAPPEN]
Global pxs#,pys#,pzs#
x=320
y=240
count=0
While Not KeyHit(1)
Local MXS# = -MouseXSpeed()*0.25
Local MYS# = MouseYSpeed()*0.25
If MouseDown(1)
MoveMouse(GFX_WIDTH/2, GFX_HEIGHT/2)
TurnEntity cam,MYS#,0,0
RotateEntity cam,EntityPitch(cam),EntityYaw(cam)+MXS,EntityRoll(cam)
EndIf

pxs=0
pzs=0
move=0
If KeyDown(17)
angle#=EntityYaw(cam)
angle=angle+90:move=1
ElseIf KeyDown(31)
angle#=EntityYaw(cam)
angle=angle-90:move=1
EndIf
If KeyDown(30)
angle#=EntityYaw(cam)
angle=angle-180:move=1
ElseIf KeyDown(32)
angle#=EntityYaw(cam)
angle=angle:move=1
EndIf

If move=1
pxs#=Cos(angle)*2
pzs#=Sin(angle)*2
EndIf

If KeyHit(57) And CountCollisions(pivot)>0 Then pys=2

pys=pys-0.1


TranslateEntity cam,pxs, pys, pzs

UpdateWorld:RenderWorld
WaitTimer(FpsTimer)
Text 1,1,"pxs: "+pxs
Text 1,15,"pzs: "+pzs
Flip:CalcFPS():Cls


jedenfalls tritt hier das problem an dieser stelle auf:
BlitzBasic: [AUSKLAPPEN]
	If KeyDown(17)
angle#=EntityYaw(cam)
angle=angle+90:move=1
ElseIf KeyDown(31)
angle#=EntityYaw(cam)
angle=angle-90:move=1
EndIf
If KeyDown(30)
angle#=EntityYaw(cam)
angle=angle-180:move=1
ElseIf KeyDown(32)
angle#=EntityYaw(cam)
angle=angle:move=1
EndIf

so kann ich NIE nach vorn und zur seite gleichzeitig laufen...

hat wer ne bessere idee?

gruß: mortus
Portfolio |LinkedIn |XING

Blackside

BeitragFr, Aug 28, 2009 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso sollte MoveEntity unpassend sein?
der Trick ist nur, dass du deinen Player Pivot nur per Yaw drehst und die Cam per Pitch.
Und dann einfah per Moveentitydein Player Pivot auf der Z achse für Vorne/hinten und auf der X Achse für links/rechts bewegen.
also dreht sich der Player Pivot nur nach links und rechts und deine Cam in alle Richtungen.
Ich gehe davon aus das dein Problem war, dass sich der Player immer nach oben bewegt hat wenn du nach oben geschaut hast? oder hab ich das falsch verstanden?


P.s. Die Cam muss natürlich parent vom Player Pivot sein. und der Player Pivot hat Collisionen und die Cam net, dann kannst du die Cam einfach nen bischen über den Player Pivot machen.
Hier sollte eigentlich eine Signatur stehen!

juse4pro

BeitragFr, Aug 28, 2009 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
ja das war mein problem, aber deine lösung sollte die beste sein, danke Wink
Portfolio |LinkedIn |XING

Mr.Keks

BeitragSa, Aug 29, 2009 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
klassisch sollte das so aussehen: oberkörper hängt an unterkörper. waffe hängt an oberkörper. kamera hängt an oberkörper. jedes davon sollte nen eigenes entity haben, damit du voll funktionsfähige egoshooter-figuren erhälst.

wenn du kamera und spieler zu sehr vermischst, wird das früher oder später zu problemen führen.
MrKeks.net

juse4pro

BeitragSa, Aug 29, 2009 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ja hab ich auch grade bemerkt, irgentwie spinnt die kamera bei der kollision, naja wenn man das nun trennt ist das ok, jetzt funzt es, danke nochmal
Portfolio |LinkedIn |XING

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group