Collisions-Problem

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Merier

Betreff: Collisions-Problem

BeitragMi, Apr 22, 2009 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute!

Hab mal ne Frage:

Ich weiß echt nicht wieso dieser code nicht klappt, könnt ihr euch den mal angucken?
Immer wenn ich die Collision 3,4,2,2 anstelle sieht man nurnoch den Panzer und keine Welt mehr.
Danke

Code: [AUSKLAPPEN]


Graphics3D 1024,768
SetBuffer BackBuffer()



Spieler = LoadMesh("Modelle\warrior.3ds")
ScaleEntity Spieler,0.1,0.1,0.1
EntityType Spieler,3
PositionEntity Spieler,100,100,100
EntityRadius Spieler,0.0001
Camera = CreateCamera()
PositionEntity camera,100,10,100
EntityRadius Camera,3
EntityType Camera,1
 terrain = LoadTerrain("Modelle\hmap.png")
EntityType terrain,2
 TerrainDetail terrain, 4000, True
 ScaleEntity terrain, 1, 50, 1
 grass_tex = LoadTexture("Modelle\th_Grass201.JPG")
EntityTexture terrain,grass_tex, 0, 1

Spieler2 = LoadMesh("Modelle\warrior.3ds")
ScaleEntity Spieler2,0.1,0.1,0.1
EntityType Spieler2,4
PositionEntity Spieler2,100,100,120
EntityRadius Spieler2,0.0001

target=CreatePivot( Spieler )
PositionEntity target,0,10,-100

Repeat

MoveEntity Spieler2,0,-0.2,0
MoveEntity Spieler,0,-0.2,0
Collisions 1,2,2,2
Collisions 1,3,2,2
Collisions 3,1,2,2
Collisions 3,2,2,2
Collisions 4,2,2,2
Collisions 3,4,2,2


dx#=EntityX( target,True )-EntityX( camera )
      dy#=EntityY( target,True )-EntityY( camera )
      dz#=EntityZ( target,True )-EntityZ( camera )
      TranslateEntity camera,dx*.1,dy*.1,dz*.1
If KeyDown(200)=True Then MoveEntity Spieler,0,0,0.2
If KeyDown(208)=True Then MoveEntity Spieler,0,0,-0.2
If KeyDown(205)=True Then TurnEntity Spieler,0,-3,0
If KeyDown(203)=True Then TurnEntity Spieler,0,3,0
    PointEntity camera,Spieler
UpdateWorld()
RenderWorld()
Text 1,1,"X: "+c1+"Y: "+c2+"Z: "+c3
c1 = dx#
c2 = dy#
c3 = dz#

Flip
Cls

Until KeyHit(1)
End

 

coolerj

BeitragMi, Apr 22, 2009 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin zwar ein anfänger aber in der hilfe sehe ich keine 4
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/
 

mDave

BeitragMi, Apr 22, 2009 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Muss man Collisions nicht _vor_ der Hauptschleife bestimmen?
Probier es mal aus ob es dann klappt.
Ansonsten entdecke ich keinen Fehler im Code.


Mfg md
 

Merier

BeitragMi, Apr 22, 2009 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähmm ich weiß nicht was du mit der 4 meinst.
 

coolerj

BeitragMi, Apr 22, 2009 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ne sry 4 existiert probiere mal was metaldave sagt ich glaube das könnte es sein.
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/
 

Merier

BeitragMi, Apr 22, 2009 17:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab das Collisions vor die schleife gestellt und es funktioniert immer nocht net.
 

coolerj

BeitragMi, Apr 22, 2009 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kann dir mal mein ausschnitt geben das könnte dir helfen.

Edit:
soll die kammera nicht spieler berühren können oder andersherum??
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/
  • Zuletzt bearbeitet von coolerj am Mi, Apr 22, 2009 17:39, insgesamt einmal bearbeitet
 

Merier

BeitragMi, Apr 22, 2009 17:38
Antworten mit Zitat
Benutzer-Profile anzeigen
ja bitte wenn du das machen würdest
 

coolerj

BeitragMi, Apr 22, 2009 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

;Graphics setzen
Graphics3D 1280, 1024, 1
;Name setzen
AppTitle "BlitzBall"
;SetBuffer
SetBuffer BackBuffer()
;Load Texturen
gras = LoadTexture("gras.bmp")
pyramide = LoadTexture("pyramide.bmp")
ball = LoadTexture("ball.bmp")
;cubet = LoadTexture("Mauer.bmp")
;Objekte erstellen
;Camera wird erstellt und konfiguriert
camera = CreateCamera()
;Light wird erstellt und konfiguriert
light = CreateLight()
;Spiel Ball wird erstellt und konfiguriert
cone = CreateSphere(32)
EntityType cone, 1
EntityTexture cone, ball
;Hintergrund wird erstellt und konfiguriert
cube = CreateCube()
EntityType cube, 2
PositionEntity cube, 3, 0.5, 10
ScaleEntity cube, 2, 1.5, 2
;EntityTexture cube, cubet
;Boden wird erstellt und konfiguriert
b = CreateCube()
PositionEntity b, 2, -1, 10
EntityTexture b, gras
ScaleMesh b, 10,0.05,10
;Variablen setzen
x# = 0
y# = 0
z# = 10
sprunggeschwindigkeit = 3
zaehler = 0
sprunghoehe = 0
faktor = 4
apw$ = "abccba"

While Not KeyHit(1)
;Wenn sprunghohe unter 0 ist dann wird sie zu 0
sprunghoehe=sprunghoehe-sprunggeschwindigkeit
If sprunghoehe < 0 Then sprunghoehe = 0
   ;Über prüfen ob Kugel über Rand ist
   ;X Abfrage
   If x# >= 11 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      y# = 0
   End If
   If x# <= -9 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   ;Z Abfrage
   If z# >= 20 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   If z# <= -0 Then
      Print "Sie sind über den Rand"
      Delay 500
      x# = 0
      z# = 10
   End If
   ;Über prüfen ob irgendeine Taste gedrücht wird
   If KeyDown(203) = 1 Then x# = x# - 0.1 ;Pfeil nach links cone nach links
   If KeyDown(1) = 1 Then End ;ESC Beenden
   If KeyDown(205) = 1 Then x# = x# + 0.1 ;Pfeil nach rechts cone nach rechts
   If KeyDown(208) = 1 Then z# = z# - 0.1 ;Pfeil nach unten cone nach unten
   If KeyDown(200) = 1 Then z# = z# + 0.1 ; Pfeil nach oben cone nach oben
   If KeyDown(32) = 1 Then TurnEntity camera, 0, - 1, 0 ;D camera nach rechts
   If KeyDown(30) = 1 Then TurnEntity camera, 0, 1, 0 ;A camera nach links
   If KeyDown(17) = 1 Then MoveEntity camera, 0, 0, 0.05 ;W camera nach vorne
   If KeyDown(31) = 1 Then MoveEntity camera, 0, 0, - 0.05 ;S camera nach hinten
   If KeyDown(16) = 1 Then MoveEntity camera, 0,0.05, 0 ;Q camera nach oben
   If KeyDown(18) = 1 Then MoveEntity camera, 0, - 0.05, 0 ;E camera nach unten
   If KeyDown(29) And KeyDown(46) Then ;Str C cheats eingeben
      ;Starte Cheat Dialog
      cheat$ = Input$ ("Bitte Cheat Code eingeben:")
      Print cheat$
      If cheat$ = 1 Then
         faktor = 4
         Print "Faktor erfolgreich auf 4 gesetzt"
      End If
      If cheat$ = 3 Then
         sprunggeschwindigkeit = 5
         Print "Sprunggeschwindigkeit erfolgreich auf 5 gesetzt"
      End If
      If cheat$ = 4 Then
         sprunggeschwindigkeit = 4
         Print "Sprunggeschwindigkeit erfolgreich auf 4 gesetzt"
      End If
      If cheat$ = 5 Then
         Print "Admin PW:" + apw$
      End If
      Delay 1000
   End If
   If KeyDown(29) And KeyDown(50) = 1 Then ;Str M Musikabspielen
   ;Musikspieler
   track = Input$ ("Wähle einen Musiktrack aus von der CD(0 zum abbrechen):")

   chnCD = PlayCDTrack (track,2)
 
   End If
   If KeyDown(60) = 1 Then ;F2 für ProHilfe
      ;Ausgabe ProHilfe und Beedinung
      pw$ = Input$ ("PW:")
     If pw$ = apw$ Then
      stellung = Input$ ("1 für Tastenerklärung, 2 für kurze Hilfe, 3 für faktor:, 4 für geschkeit. :")
      If stellung = 3 Then
        faktor = Input$ ("1 für klein, 2 für mittel, 3 auch mittel(aber größer), 4 groß:")
     End If
      If stellung = 4 Then
        sprunggeschwindigkeit = Input$ ("1 - 5(3 standard):")
        If sprunggeschwindigkeit < 1 Or sprunggeschwindigkeit > 5 Then
        Repeat
       sprunggeschwindigkeit = 3
       sprunggeschwindigkeit = Input$ ("1 - 5(3 standard):")
       Until sprunggeschwindigkeit < 1 Or sprunggeschwindigkeit > 5
       End If
     End If
     End If
   End If
   If KeyDown(59) = 1 Then ;F1 für NormHilfe
      ;Ausgabe NormHilfe und Beedinung
      stellung = Input$ ("1 für Tastenerklärung, 2 für kurze Hilfe, 3 für Credits und Beenden:")
      If stellung = "1" Then
         Print "W:Kamera nach vorne"
         Print "A:Kamera nach links"
         Print "S:Kamera nach hinten"
         Print "D:Kamera nach rechts"
         Print "Cursorrasten:Steuerung der Kugel"
         Print "Str C:Cheats"
         Print "F1:NormHilfe"
         Print "F2:ProHilfe(benötigt Admin PW)"
         Print "Str M:Musik abspielen aus einer CD"
         Print "Drücke eine Taste um weiter zuspielen."
         WaitKey
      End If
   End If
   If KeyDown(57) = 1 Then sprunghoehe = 180 ;Leertaste für Springen
   Collisions 1, 2, 2, 2
   UpdateWorld
   RenderWorld
   ;Über prüfen ob Spielerball auf balla ist
   ;If z# = zballa# Then
   ;   Print "Balla getroffen"
   ;   Delay 10000
   ;End If
   PositionEntity cone, x#, y#+(Sin(sprunghoehe) * faktor ), z# ;cone wird auf die Richtige Posi gesetzt
   Flip
Wend
End

Schaue noch mal den Edit von oben an.
MfG
coolerj

Meine Website: http://blitzbasicprojeckte.de.tl/
 

mDave

BeitragMi, Apr 22, 2009 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Es könnte auch daran liegen, dass sich die Modelle gegenseitig blockieren.
Einst hatte ich denselben Fehler.
Dann habe ich einfach die EntityType Zeilen kurz vor der Hauptschleife hinplatziert und schon hat es geklappt.

Ob das nun Zufall ist, kann ich dir nicht sagen.
Allerdings kannst du es ja mal ausprobieren. Falls es nicht klappt, wird die Community die schon weiterhelfen.


Mfg md
 

Merier

BeitragDo, Apr 23, 2009 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke jetzt klapts!
Laughing Very Happy Laughing

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group