Wieso geht die Bewegung nicht?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Megamag

Betreff: Wieso geht die Bewegung nicht?

BeitragFr, Dez 05, 2008 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich habe diesen Code:
Code: [AUSKLAPPEN]
Graphics3D 1024, 768, 32, 1
AppTitle "School Survival"
SetBuffer BackBuffer()

Global ms=20
Global cx#
Global cy#

Const links = 30
Const rechts = 32
Const hoch = 17
Const runter = 31

Global player=CreateCube()
PositionEntity player, 0, 0, -10
EntityRadius player,1.8
EntityType player,1

Global campiv=CreateCamera()
PositionEntity campiv,EntityX(player),EntityY(player),EntityZ(player)

Global cam=CreateCamera(campiv)
PositionEntity cam,EntityX(player),EntityY(player)+3,EntityZ(player)

light = CreateLight(2)
PositionEntity light, 0, 20, 0
LightRange light,35

scene = LoadMesh("data\Models\Test.b3d")
PositionEntity scene, 0, -5, 35

;----------------------------------------------------------------------------;

While Not KeyHit(1)

If KeyDown(hoch) MoveEntity campiv,0,0,0.3
If KeyDown(hoch) MoveEntity player,0,0,0.3

mouse()
PositionEntity cam,EntityX(player),EntityY(player)+3,EntityZ(player)-5
UpdateWorld
RenderWorld
Text 0,0,EntityYaw(campiv)
Rect 472,344,40,40,False
Flip
Wend
End

;----------------------------------------------------------------------------;

Function mouse()
mxs=MouseXSpeed()*ms ;(20)
mys=MouseYSpeed()*ms ;(20)

cx#=EntityPitch(cam)+mys*0.01
cy#=EntityYaw(campiv)-mxs*0.01

If cx#>89 Then cx#=89
If cx#<-89 Then cx#=-89

;If cy#>50 Then cy#=50
;If cy#<-50 Then cy#=-50

RotateEntity cam,cx,0,0
RotateEntity campiv,0,cy,0

Y1#=EntityYaw(campiv)
Y2#=EntityYaw(player)
Y#=Y1#-Y2#
Y#=Y#/1
TurnEntity player,0,Y#,0


MoveMouse 400,300
End Function

Ersetzt mal 'scene' durch eine Plane und startet das Ding.
Dann drückt ihr W und steuert mit der Maus. Es ist vollkommen
diffus, wie sich die Kamera dann bewegt. Ich möchte, dass man
die Kamera ganz normal drehen kann, so wie am Anfang, nur dass man mit W in die Richtung laufen kann, in die der Block guckt. Was habe
ich falsch gemacht?

Xeres

Moderator

BeitragFr, Dez 05, 2008 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Am Anfang kann man die Kamera nur hoch und runter bewegen... Was für eine Steuerung möchtest du denn erreichen? Warum erzeugst du 2 Kameras? (1x CreatePivot?)
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Megamag

BeitragFr, Dez 05, 2008 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man nicht.
Du kannst sie in alle richtungen drehen.
Und wenn du W drückst und mit der maus steuerst,
dann bewegt sich die Cam ganz komisch.

EDIT:
Häh, wieso habe ich zwei Kameras erzeugt?
Das mit campiv sollte eigentlich CreatePivot() sein^^


EDIT 2:
Ok ich hab's hinbekommen.
PositionEntity cam,EntityX(player),EntityY(player)+3,EntityZ(player)-5
musste weg, dann geht's. Danke trotzdem!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group