Fragen/Probleme/achwasweissich zu "Ballrennen"

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

The_Nici

Betreff: Fragen/Probleme/achwasweissich zu "Ballrennen"

BeitragSo, März 25, 2007 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Moinsens.

Ich und noch jemand versuchen gerade ein Ball-Roll-Rennen zu proggen, da hat es so einige Probleme.

1.) Die Kamera dreht sich dank EntityPoint immer zum Ball. leider sieht sie so immer von oben. kann man die Kamera auch mit EntityPoint mit 70 grad auf den ball blicken lassen?
2.) Seit einer kleinen Physik-Modifizierung rollt usner Ball nichtmehr. ich habs, wie unten im Source gezeigt versucht, geht aber nicht
3.) Wenn der Ball Kollidiert, soll die Cam auch anhalten. Tut sie aber leider nicht. Sie fliegt weiter
4.) Wie unten ebenfalls gezeigt habe ich versucht, Schwerkraft zu simulieren, indem ich YPos immer 0.1 abgezogen habe. Funktioniert nicht.

Sourcecode:
Code: [AUSKLAPPEN]
Const FPS=50
period=1000/FPS
time=MilliSecs()-period


Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Kamera=CreateCamera()
PositionEntity Kamera, 0,0,-7
EntityType Kamera, 10



Ball=CreateSphere(20)
PositionEntity Ball, 0,0,0
balltextur=LoadTexture ("Balltextur.jpg")
EntityTexture Ball, balltextur
EntityType Ball, 10

Hindernis=CreateCube()
PositionEntity Hindernis, 0,0,10
EntityType Hindernis, 20

Boden=CreateCube()
ScaleEntity Boden, 50,1,50
PositionEntity Boden, 0,5,0
EntityColor Boden, 100,100,100
EntityType Boden, 20

XPos#=0
ZPos#=0
YPos#=0
XGes#=0
YGes#=0
ZGes#=0


While Not KeyHit(1)


   If KeyDown(208)=1 Then
   ZGes=ZGes+.01
;   pitch#=pitch#+ZGes+10
   End If
   If KeyDown(200)=1 Then
   ZGes=ZGes-.01
;   pitch#=pitch#-ZGes+10
   End If
   If KeyDown(203)=1 Then
   XGes=XGes-.01
;   roll#=roll#-XGes+10
   End If
   If KeyDown(205)=1 Then
   XGes=XGes+.01
;    roll#=roll#+XGes+10
End If

   ;Rollwiederstand
   XGes=XGes/1.01
   ZGes=ZGes/1.01

   ;Positionierung
   XPos=XPos+XGes
   ZPos=ZPos+ZGes
   
   ,Versuch, Schwerkraft zu erzeugen >.<
   PositionEntity Ball,XPos,YPos-0.1,ZPos

   PositionEntity Kamera,XPos,YPos-15,ZPos
   ;versuch, rollen zu lassen. :/
   RotateEntity Ball,XGes,0,ZGes
   PointEntity Kamera, Ball
   Collisions 10,20,2,2
   UpdateWorld
   RenderWorld
   Flip
Wend

End

NightPhoenix

BeitragSo, März 25, 2007 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
- das mit der kamera solltet ihr mit entityparent lösen
- das mit der gravitation entweder mit einem richtungsvektor oder einem pivot
- dass der ball rollt macht ihr durch gefaktes rollen ^^ ganz einfach

- dank entityparent hält die kamera auch an

MfG.

The_Nici

BeitragSo, März 25, 2007 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
1.) Jetzt ist 1. alles gedreht, 2. liegt die Kamera jetzt im Ball
2.) Gibt es dazu ein Beispiel?
3.) Wie gefaktes rollen. was meinst du damit?
4.) Siehe 1.

Tankbuster

BeitragSo, März 25, 2007 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
1.Du musst die Kamera erst plazieren, und dann an die Kamera hängen!
2. Das einfachste wäre wohl, einfach den Ball immer nach unten zu bewegen..."MoveEntity Ball,0,-1,0"
3. Einfach den Ball rotieren lassen^^
MFG: TAnk
Twitter
Download Jewel Snake!
Windows|Android

The_Nici

BeitragSo, März 25, 2007 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
1.) EDIT: versursacht Probleme, siehe oben...
2.) hab ich ja gemacht, geht aber nicht
3.) hab ich ja gemacht, geht aber nicht

NightPhoenix

BeitragSo, März 25, 2007 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn er moveenity ball macht und er den ball richtig drehen lässt, dann wird sich die moveenity y-achse auch drehen -> ball wirbelt herum...

Code: [AUSKLAPPEN]
ball=createsphere()
kamera=createcamera(ball)
positionentity kamera,0,5,-10


fertig

The_Nici

BeitragSo, März 25, 2007 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Moveentity dreht aber der ball um eine Achse die irgendwo inner scheisse ist...

Und wieviel mal muss ichs noch sagen: wenn ich die Kamera an den ball hänge, und umgekehrt, dann ist alles verkehrt, die Steuerung ist komisch und wenn der Ball sich danach dreht wird die Cam auch drehen -_-

Tankbuster

BeitragSo, März 25, 2007 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
OH! stimmt.... da hab ich wohl nicht richtig nachgedacht *wiesooft*
Zitat:
dann ist alles verkehrt

Wie? steht die ganze Welt am Kopf, oder was?
Wenn ja, erst die Kamera Rotieren, und dann an den Ball hängen. Du kannst die Kamera auch immer an die Position des Balles verschieben, dann ein bisschen hoch verschieben, und ein bisschen zurück. Dann mit PointEntity auf den Ball ausrichten.
Dann läuft die Cam zwar hinter dem Ball her, aber dreht sich nicht mit, wenn der Ball sich dreht!
Twitter
Download Jewel Snake!
Windows|Android

biggicekey

BeitragSo, März 25, 2007 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ich gebe einen hinweis zur schwerkraft.
es gibt auch noch "translateentity" da is die drehung des balles egal.
sonst mit nem pivot mahen wie schon gesagt.

der rest der fragen ist so lächerlich das er 1. in beginner gehört und 2. durch nen paar tutorials und forensuche etc selbst erarbeitet werden kann. Rolling Eyes
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

biggicekey

BeitragSo, März 25, 2007 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
EDIT sry 2 mal abgeschickt
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Markus2

BeitragMo, März 26, 2007 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach PointEntity kann man noch RotateEntity benutzen


PointEntity cam,ball
RotateEntity cam, DeinWinkel ,entityyaw(cam),entityroll(cam)

Tankbuster

BeitragMo, März 26, 2007 13:47
Antworten mit Zitat
Benutzer-Profile anzeigen
PointEntity könntest du dann auch weglassen, da es keinen Sinn ergeben würde Wink
Twitter
Download Jewel Snake!
Windows|Android

The_Nici

BeitragMi, März 28, 2007 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
@tankbuster: Es wird einen Sinn ergeben.
Ich hab jetzt die ratschläge mit der Cam befolgt...jetzt siehts (immernoch) so aus, auch mit rotateentity.
user posted image

Hab die Cam annen Ball gehängt.

Tankbuster

BeitragMi, März 28, 2007 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Und du hast die Cam wirklich richtig rotiert?? mach das mal ohne das EntityParent. Wenn die Cam dann am Anfang falschrum ist, hast dus falsch gemacht.
Twitter
Download Jewel Snake!
Windows|Android

The_Nici

BeitragDo, März 29, 2007 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
-_- ich hab sie rotiert, z um 180°, und ohne parententity gehts. War ja klar, oder?

Tankbuster

BeitragDo, März 29, 2007 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine ja nur: Vielleicht hast du's ja immernochnet richtig.
Wenn dus schon so hattest, poste ma bidde den code^^

Das funzt:
Zitat:

rotateentity kamera,0,5,-10
cam an ball hängen


Das funzt NICHT:
Zitat:

cam an ball hängen
rotateentity kamera,0,5,-10


*EDIT~
Ich kanns mir einfach net erklären........................................
Twitter
Download Jewel Snake!
Windows|Android

Markus2

BeitragDo, März 29, 2007 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier was zum spielen Smile

Müßt ihr nur die Texturnamen einstellen
Code: [AUSKLAPPEN]

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Global Piv=CreatePivot()
Global Ball=CreateSphere(20,Piv)
ScaleMesh Ball, 0.5,0.5,0.5
PositionEntity Piv, 0,0,0
EntityType Piv, 10
Radius#=0.5
EntityRadius Piv,Radius

balltextur=LoadTexture("StainGlass.jpg")
EntityTexture Ball, balltextur
ScaleTexture balltextur ,1/4.0,1/2.0
EntityAlpha Ball,0.6

Global Kamera=CreateCamera()
PositionEntity Kamera,0,2,-10
EntityType Kamera, 10

AmbientLight 24,24,24

Global Light=CreateLight(2)
LightRange Light,250
LightColor Light,255,255,240

Hindernis=CreateCube()
ScaleMesh Hindernis, 0.5,0.5,0.5
PositionEntity Hindernis, 0,0.5,10
EntityType Hindernis, 20

Bodentextur=LoadTexture("cc200155.jpg")
Boden=CreateCube()
ScaleMesh Boden, 0.5,0.5,0.5
ScaleMesh Boden, 100,1,100
PositionEntity Boden, 0,-0.5,0
;EntityColor Boden, 100,100,100
EntityType Boden, 20
EntityTexture Boden, Bodentextur
ScaleTexture Bodentextur,1/50.0,1/50.0

XB#=0
YB#=0
ZB#=0
Xg#=0
Yg#=0
Zg#=0
z#=0
w#=0


Local t1 ;Zeitmessung

Collisions 10,20,2,2

While Not KeyHit(1)

 t1=MilliSecs()

 Xb=Xb*0.85
 Zb=Zb*0.85

 z=z*0.9
 If KeyDown(200)=1 Then Z=Z-0.01 ;vor
 If KeyDown(208)=1 Then Z=Z+0.01 ;zurück
 If KeyDown(203)=1 Then EntityParent Kamera,Piv:TurnEntity Piv,0, 1.0*(-z*25.0+1.5),0:EntityParent Kamera,0
 If KeyDown(205)=1 Then EntityParent Kamera,Piv:TurnEntity Piv,0,-1.0*(-z*25.0+1.5),0:EntityParent Kamera,0
 If CameraZuBall()<3 And z>0 Then z=0 ;nicht auf die Kamera zu

 w=WinkelZurKamera()
 Xb=Xb+Sin(w)*z
 Zb=Zb+Cos(w)*z

 z=Limit(z,-0.5,0.5)
 xb=Limit(xb,-1,1)
 zb=Limit(zb,-1,1)

 Local XAngleAdjust#
 Local ZAngleAdjust#
 XAngleAdjust# = (xb# / Radius#) * (180.0/Pi)
 ZAngleAdjust# = (zb# / Radius#) * (180.0/Pi)       
 TurnEntity Ball,ZAngleAdjust#,0,-XAngleAdjust#,True       

 PositionEntity Piv,EntityX(Piv)+xb,Radius,EntityZ(Piv)+zb
 
 UpdateWorld
 RenderWorld

 ;Text 0,0,z

 While Abs(t1-MilliSecs())<10
 Wend

 Flip

Wend
End

Function CameraZuBall#()

 Local dx#=EntityX(Kamera)-EntityX(Piv)
 Local dz#=EntityZ(Kamera)-EntityZ(Piv)

 Local e#=Sqr(dx*dx + dz*dz)

 ;nah langsam klein
 ;weit schnell groß

 If e>4.0 Then
  dx=dx-(dx/e)*4.0
  dz=dz-(dz/e)*4.0
  PositionEntity Kamera,EntityX(Kamera)-dx/10.0,2,EntityZ(Kamera)-dz/10.0
 EndIf
 PointEntity Kamera, Piv ,0
 If EntityPitch(Kamera)>45 Then RotateEntity Kamera,45,EntityYaw(Kamera),0 ;Winkel der Kamera begrenzen
 
 ;Licht dahin wo Kamera nur höher
 PositionEntity Light,EntityX(Kamera),10,EntityZ(Kamera)
 PointEntity Light, Piv ,0

 Return e

End Function

Function Limit#(v#,mi#,ma#)

 If v<mi Then Return mi
 If v>ma Then Return ma
 Return v

End Function

Function WinkelZurKamera#()

 Local dx#=EntityX(Kamera)-EntityX(Piv)
 Local dz#=EntityZ(Kamera)-EntityZ(Piv)

 Return ATan2(dx,dz)

End Function

The_Nici

BeitragFr, März 30, 2007 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
@Markus: juchu danke! Jetzt kann ich weiterarbeiten. Werd mich mal durch den Code lesen. =)

Markus2

BeitragFr, März 30, 2007 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@The_Nici
jup,
wenn du daran was nicht verstehst frag Wink

The_Nici

BeitragFr, März 30, 2007 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, jetzt, Frage:
Wenn ich Schwerkraft will, muss ich dann den Pivot runter bewegen, oder? Habs versucht, hat aber nicht geklappt. :/

Tipps?

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group