Problem mit Maussteuerrung

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Ronon_Dex

Betreff: Problem mit Maussteuerrung

BeitragFr, Dez 02, 2011 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute,
Heute habe ich ein Problem mit folgendem Code:

BlitzBasic: [AUSKLAPPEN]
mouseXS = MouseXSpeed()
mouseYS = MouseYSpeed()
pitch# = EntityPitch(kamera) + (mouseYS*.2)
yaw# = EntityYaw(player) - (mouseXS*.2)
RotateEntity kamera,pitch,0,0
RotateEntity kamera,pitch,yaw,0
If pitch < -45
RotateEntity player,-45,0,0
EndIf
If pitch > 70
RotateEntity player,70,0,0
EndIf
bak=bak+1
If bak=5
bak=1
MoveMouse gs1/2,gs2/2
EndIf


Ich kann meine "Figur" bei diesem Code nach hinten und vorne bewegen, wärend ich nach oben und unten schauen kann.
Doch wenn ich versuche meine Maus nach Links oder rechts zu drehen, passiert nicht
d.h. das Bild ruckelt bleibt aber in der Mitte.

Doch eigentlich sollte sich dann der Spieler drehen und in die Mausrichtung laufen.

könnt ihr mir vllt helfen ?

Midimaster

BeitragFr, Dez 02, 2011 13:03
Antworten mit Zitat
Benutzer-Profile anzeigen
versuch mal mit TurnEntity() statt RotateEntity() zu arbeiten.

Dadurch dass du die Mauswerte immer wieder auf die Mitte setzt wird auch die Blickrichtung immer wieder auf 0 zurückgesetzt. RotateEntity() setzt fest Winkel, während TurnEntity() eine Weiterdrehung vom akt. Winkel erlaubt.
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Holzchopf

Meisterpacker

BeitragFr, Dez 02, 2011 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist, dass du den neuen Yaw-Wert (für die Kamera) aus dem EntityYaw-Wert des Spielers nimmst, diesen aber gar nie erst drehst.

Du musst also entweder EntityYaw(kamera) schreiben, oder den Spieler auch mal drehen.

mfG
Holzchopf
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Ronon_Dex

BeitragFr, Dez 02, 2011 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis nicht genau was ich mit TurnEntity besser machen könnte deshalb habe ich es mit der Variante von Holzchopf versucht und diese klappte einwandfrei ...
Danke euch beiden Smile

ps: könnte mir einer erklären wann und wesshalb TurnEntity oder RotateEntity ?
nicht unbedingt Nötig aber ich will es ja auch verstehen Wink

Holzchopf

Meisterpacker

BeitragFr, Dez 02, 2011 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
TurnEntity dreht um einen Winkel (relativ), RotateEntity dreht auf einen Winkel (absolut).
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

Ronon_Dex

Betreff: Problem mit Kollision

BeitragFr, Dez 02, 2011 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich wollte nicht extra ein neuen Thread für mein Anliegen erstellen und ich hoffe ich gehe euch nicht auf die Nerfen mit 3 Fragen am Tag.

Also wie der Titel schon sagt:
Bei dem nachfolgenden Code findet keine Kollision statt obwohl ich EntityType und Collisions verwendet habe.
Ich Poste einfach mal den kompletten Code, keine Angst er ist nicht all zu lang Smile

BlitzBasic: [AUSKLAPPEN]
Global gs1=1024,gs2=768
Global hoch=17,runter=31,rechts=32,links=30,shift=42,leertaste=57,khoch=200,krunter=208,krechts=205,klinks=203,pup=201,pdown=209
Graphics3D gs1,gs2,32,1
SetBuffer BackBuffer()

Global speed#=0.1

texture_boden = LoadTexture("gfx\boden.jpg")
texture_kiste = LoadTexture("gfx\kiste.jpg")


;Boden
boden = CreatePlane()
EntityTexture boden,texture_boden
;Player
player = CreatePivot()
PositionEntity player,0,0,-30
body = CreateCylinder()
EntityType body, 1
EntityColor body, 255, 0,0
PositionEntity body,0,0,-30
ScaleEntity body, 0.5, 1.25, 0.5
EntityParent body,player
;Kamera
kamera = CreateCamera(player)
PositionEntity kamera,0,1.25,0
;Kiste
kiste = CreateCube()
PositionEntity kiste,0,1,0
EntityTexture kiste,texture_kiste
ScaleEntity kiste,1,1,1
EntityType kiste,2

;Licht
licht = CreateLight()
RotateEntity licht,90,0,0

Collisions 1,2,2,2

While Not KeyHit(1)
If KeyDown(shift) Then
speed=0.2
Else speed=0.1
EndIf
If KeyDown(hoch) MoveEntity player,0,0,speed
If KeyDown(runter) MoveEntity player,0,0,-0.06
If KeyDown(rechts) MoveEntity player,0.05,0,0
If KeyDown(links) MoveEntity player,-0.05,0,0
If KeyDown(khoch) MoveEntity kiste,0,0,0.1
If KeyDown(krunter) MoveEntity kiste,0,0,-0.1
If KeyDown(krechts) MoveEntity kiste,0.1,0,0
If KeyDown(klinks) MoveEntity kiste,-0.1,0,0
If KeyDown(pup) MoveEntity kiste,0,0.1,0
If KeyDown(pdown) MoveEntity kiste,0,-0.1,0
mouseXS = MouseXSpeed()
mouseYS = MouseYSpeed()
pitch# = EntityPitch(kamera) + (mouseYS*.2)
yaw# = EntityYaw(player) - (mouseXS*.2)
RotateEntity kamera,pitch,0,0
RotateEntity player,0,yaw,0
bak=bak+1
If bak=5
bak=1
MoveMouse gs1/2,gs2/2
EndIf

x#=EntityX(player)
y#=EntityY(player)
z#=EntityZ(player)
kx#=EntityX(kiste)
ky#=EntityY(kiste)
kz#=EntityZ(kiste)
RenderWorld
Text 0,0,"Benutze die W;A;S;D tasten zum bewegen / Drücke Schift zum rennen (mit Pfeiltasten und PageUp/Down bewegst du die Kiste)"
Text 0,30,"X:"+x
Text 0,45,"y:"+y
Text 0,60,"z:"+z
Text 0,75,"Kiste:"
Text 0,90,"X:"+kx
Text 0,105,"y:"+ky
Text 0,120,"z:"+kz

Flip
Cls
Wend
End


Ich hoffe mal wieder auf eure Hilfe und vielleicht habt ihr auch noch etwas zum Verbessern vor zu schlagen

mfg
Ronon

Johannes´

BeitragFr, Dez 02, 2011 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Du bewegst innerhalb deines Programmes den Pivot player. Dieser hat jedoch keinen Kollisionstyp und wird also auch nicht kollidieren. Der Zylinder body wird wahrscheinlich kollidieren, jedoch hat das auch keine Auswirkungen auf die Kameraposition, da diese auch an player hängt.
Du kannst besser player einen Kollisionstypen zuweisen, hier kann auch der Befehl EntityRadius hilfreich sein.

Lakorta

BeitragFr, Dez 02, 2011 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich tippe eher darauf, dass in dem Code BlitzBasic: [AUSKLAPPEN]
UpdateWorld()
fehlt Wink
 

Ronon_Dex

BeitragSa, Dez 03, 2011 9:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke mal wieder Leute...
Beides zusammen von euch hat super geklappt Smile

Ich hoffe ich darf in nächster Zeit noch mehr fragen stellen ohne auf die nerfen zu gehen Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group