Figur soll stehen bleiben

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

ToeB

Betreff: Figur soll stehen bleiben

BeitragSo, Mai 18, 2008 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich wollte für mein 3D-Jumpnrun einen Block machen, der immer hin und her bewegt wird, wo man drauf springen kann. Kollision und bewegung klappt auch schon. Wie mach ich haber, das der player immer auf dem Block drauf stehen bleibt, auch wenn dieser sich bewegt ? Also das man sich trotzdem noch darauf bewegen kann ?

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaymar

ehemals "Cgamer"

BeitragSo, Mai 18, 2008 17:44
Antworten mit Zitat
Benutzer-Profile anzeigen
prüf ob der player oben-drauf steht und setze für den player solange den Pivot auf den Block. Sollte funktionieren
Warbseite

ToeB

BeitragSo, Mai 18, 2008 17:48
Antworten mit Zitat
Benutzer-Profile anzeigen
hä... ?

Check ich net... Was soll ich denn mit nem Pivot ?

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Mr.Keks

BeitragSo, Mai 18, 2008 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
entweder arbeitest du in den code des blocks ein, dass bei dessen verschiebung auch der player verschoben wird.

oder du setzt den block als entityparent des spielers.
MrKeks.net

Xaymar

ehemals "Cgamer"

BeitragSo, Mai 18, 2008 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
die beiden Mistdinger verwechsel ich immer wieder xD
ich meinte Parent auf den Block setzen solange er oben drauf steht
Warbseite

ToeB

BeitragSo, Mai 18, 2008 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
also praktisch :

Code: [AUSKLAPPEN]
If Kollision then EntityParent player,block


Aber wie heb ich das EntityParent wieder auf ?

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

The_Nici

BeitragSo, Mai 18, 2008 18:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Entityparent entity, 0

ToeB

BeitragSo, Mai 18, 2008 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay danke, ich hab jetzt folgendes Problem :

Code: [AUSKLAPPEN]
Repeat
   If FPS_MS < MilliSecs() Then FPS = FPS_COUNT:FPS_COUNT = 0:FPS_MS = MilliSecs()+999
   y = (KeyDown(200)-KeyDown(208))
   x = (KeyDown(203)-KeyDown(205))
   If KeyHit(57) And Sprung < 1 Then Sprung = Sprung + 1:fy# = 0.05
   If x Or y And Sprung = 0
      seq = lauf
   ElseIf x=0 And y=0 And Sprung = 0
      seq = steh
   EndIf
   If Sprung Or EntityY(lego) < -10
      If fy => 0 Then seq = spr1 Else seq = spr2
      fy# = fy# - 0.0005
      MoveEntity lego,0,fy#,0
      encol = 0
      For br.br = Each br
         If EntityCollided(lego,2) = br\m Then encol = 1
      Next
      If EntityCollided(lego,2)=map  encol = 1
      If encol And fy# < 0 Then Sprung = 0:grav# = 0
   EndIf
   If Sprung = 0
      encol = 0
      For br.br = Each br
         If EntityCollided(lego,2) = br\m Then encol = 1
      Next
      If EntityCollided(lego,2)=map  encol = 1
      If encol = 0 Then grav# = grav# - 0.0005 Else grav = 0
   EndIf
   MoveEntity lego,0,0,y/50
   TurnEntity lego,0,x/2,0
   cx=EntityX(campiv,True)-EntityX(cam)
   cy=EntityY(campiv,True)-EntityY(cam)
   cz=EntityZ(campiv,True)-EntityZ(cam)
   If EntityY(lego) > -10 TranslateEntity cam,cx*.03,cy*.03,cz*.03
   PointEntity cam,lego
   If seq <> AnimSeq(lego) Then
      If seq = steh modus = 0
      If seq = lauf modus = 1
      If seq = spr1 modus = 3
      If seq = spr2 modus = 3
      Animate(lego,modus,0.02,seq)
   EndIf
   If EntityY(lego) < -200 Then ResetEntity lego:PositionEntity lego,-16,5,16
   encol = 1
   For br.br = Each br
      br\way.way = Object.way(br\wp)
      PointEntity br\piv,br\way\piv
      MoveEntity br\piv,0,0,0.01
      PositionEntity br\m,EntityX(br\piv),EntityY(br\piv),EntityZ(br\piv)
      If KeyDown(28) MoveEntity br\m,0,0,0.001
      If EntityX(br\m) > EntityX(br\way\piv)-1 And EntityX(br\m) < EntityX(br\way\piv)+1
         If EntityY(br\m) > EntityY(br\way\piv)-1 And EntityY(br\m) < EntityY(br\way\piv)+1
            If EntityZ(br\m) > EntityZ(br\way\piv)-1 And EntityZ(br\m) < EntityZ(br\way\piv)+1
               br\way.way = After br\way.way
               If br\way.way = Null Then
                  br\way.way = First way
               EndIf
               br\wp = Handle(br\way.way)
            EndIf
         EndIf
      EndIf
      If EntityCollided(lego,2)=br\m Then
         If CountChildren(br\m) = 0 EntityParent lego,br\m:drauf = br\m
         encol = 0
      EndIf         
   Next
   If encol= 1 And EntityCollided(lego,2)<> drauf EntityParent lego,0
   If Sprung = 0 TranslateEntity lego,0,grav#,0
   UpdateWorld()
   RenderWorld()
   Text 1,1,"PFEILTASTEN zum Steuern benutzen"
   Text 1,13,"LEERTASTE zum Springen benutzen"
   Text 360,1,"FPS:"+FPS
   Text 1,26,"GRAV:"+GRAV
   Text 1,39,"ENCOL : "+encol+" / "+drauf+" / "+EntityCollided(lego,2)
   Flip 0
   FPS_COUNT = FPS_COUNT + 1
Until KeyHit(1)
End


Und zwar springt EntityCollided andauernd zwischen 0 und einer Mesh-ID Zahl hin und her... Warum ?

mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Puccini

BeitragMo, Mai 19, 2008 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
wei dein spieler ja bei einer collision "angehoben" wird um nicht mehr zu colidieren XD

das problem hatte ich auch, liegt daran das deine fallgeschwindigkeit zu gross ist...
es wird quasi berechnet das der spieler den block berüher und er kollidiert, und da er nicht durchfallen soll, muss er hochgesetzt werden, und das ist dann in etwa soviel wie er runterfällt. glaub ich XD
-=Achtung=-
Suche Hobby-Modelliere der hin und wieder bock hat ein kleines Objekt zu erstellen. Bei Interesse PM
www.ragesoft.de
Passwortmanager: http://ragesoft.de/index.php?o...;Itemid=39

ToeB

BeitragMi, Mai 21, 2008 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal an dich, puccini...

Habs probiert und es klappt wunderbar ! Nur hab ich jetzt das verfahren mit dem Draufstehen geändert : Ich prüfen einfach ob die X/Y/Z Koordinaten VOR oder HINTER dem Waypoint liegen und übergeb dann SpeedVariablen einen Wert (- oder +) und mit TranslateEntity wirds dann verschoben. Dieser Variable übergeb ich dann dem Spieler und beweg den dann auch mit TranslateEntity nach den SpeedVariablen. Das klappt wunderbar , nur dass der Z-Speed-Wert immer zwischen 0.01 und -0.01 umschaltet, die anderen werte tun das nicht...
Code: [AUSKLAPPEN]
For br.br = Each br
      If EntityX(br\m) < EntityX(br\way[br\wp])-br\speed br\sx = br\speed
      If EntityX(br\m) > EntityX(br\way[br\wp])+br\speed br\sx =-br\speed
      If EntityY(br\m) < EntityY(br\way[br\wp])-br\speed br\sy = br\speed
      If EntityY(br\m) > EntityY(br\way[br\wp])+br\speed br\sy =-br\speed
      If EntityZ(br\m) < EntityZ(br\way[br\wp])-br\speed br\sz = br\speed
      If EntityZ(br\m) > EntityZ(br\way[br\wp])+br\speed br\sz =-br\speed
      TranslateEntity br\m,br\sx,br\sy,br\sz
      If EntityX(br\m) > EntityX(br\way[br\wp])-(br\speed*2) And EntityX(br\m) < EntityX(br\way[br\wp])+(br\speed*2)
         If EntityY(br\m) > EntityY(br\way[br\wp])-(br\speed*2) And EntityY(br\m) < EntityY(br\way[br\wp])+(br\speed*2)
            If EntityZ(br\m) > EntityZ(br\way[br\wp])-(br\speed*2) And EntityZ(br\m) < EntityZ(br\way[br\wp])+(br\speed*2)
               br\wp = br\wp + 1
               If br\wp > br\anz Then br\wp = 1
                              
            EndIf
         EndIf
      EndIf
      If EntityCollided(lego,2)=br\m Then
         drauf = Handle(br.br)
         encol = 1
         abx = br\sx
         aby = br\sy
         abz = br\sz
      EndIf         
   Next


Warum ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group