Collision + Entity X,Y,Z spinnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

onkelz89

Betreff: Collision + Entity X,Y,Z spinnen

BeitragFr, März 18, 2011 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Abend,

ich habe eine Minecraftähnliche aus Würfel bestehende Welt.
In jedem Frame wird per CamX = Entityx(Cam,True) ... die Position der Kamera gespeichert.

Es gibt einen Type bomb, dies verwende ich aktuell als Granate

Folgender Ablauf:

BlitzBasic: [AUSKLAPPEN]
For gr.bomb = Each bomb

gr\x=EntityX(gr\obj)
gr\y=EntityY(gr\obj)
gr\z=EntityZ(gr\obj)

PositionEntity gr\obj,gr\x,gr\y-.8,gr\z
MoveEntity gr\obj,0,0,gr\schub
gr\schub=gr\schub*.93

gr\time=gr\time-1
If gr\time<0 Then

px=gr\x/BSize
py=gr\y/BSize
pz=gr\z/BSize
Felder( px, py, pz)\feldwert=0

For xxx=0 To Size*(MSize+1)-1
For yyy=0 To Size*(MSize+1)-1
For zzz=0 To Size*(MSize+1)-1

If dist(px,py,pz,xxx,yyy,zzz)<=2 And Rand(2)=1 Then Felder( xxx, yyy, zzz)\feldwert=0

Next
Next
Next

Mx=Px/Size
My=Py/Size
Mz=Pz/Size

Check(Mx,My,Mz)

FreeEntity gr\obj
Delete gr.bomb
EndIf
Next

;G - Granate
If KeyHit(34) Then

gr.bomb = New bomb
gr\obj = CreateCube()
gr\x = CamX
gr\y = CamY
gr\z = CamZ
EntityRadius gr\obj,.01,.01
ScaleEntity gr\obj,.2,.2,.2
EntityType gr\obj,1
EntityColor gr\obj,30,30,30
PositionEntity gr\obj,gr\x,gr\y,gr\z
TurnEntity gr\obj,EntityPitch(cam,True),EntityYaw(cam,True),EntityRoll(cam,True)
gr\time = 150
gr\schub = 2

EndIf


Wenn ich EntityType weg nehme fällt die Granate natürlich durch mein Level - logo - aber das folgende Problem ist ebenfalls weg.


Problem
Je nachdem wo ich mich befinde (zB in einem geschlossenen - jedoch großen - Raum) wird die Kameraposition ignoriert. Sogar auf einer riesigen leeren Fläche sehe ich ab einem gewissen Punkt die Granaten an einer ganz anderen Stelle auftauchen.
Es ist jedoch nichts zwischen dem Spieler (der Kamera) und der Granate - einfach nichts steht im Weg...

Das Level welches aus 16x16x16 Blöcken besteht ist 3x3x3 "Megablocks" groß. Mir fällt auf dass dieses Problem oft eintritt wenn ich Blöckeübergreifend werfe... jedoch kollidiert die Kamera auch nicht i-wo im nichts, da diese den gleichen EntityType nutzt...

Kennt noch Jemand dieses Problem und viel wichtiger eine Lösung?

Vielen Dank

Xeres

Moderator

BeitragFr, März 18, 2011 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Jedes Entity wird an Position 0,0,0 erstellt - mit Kollision kommt es nicht am Zielort an.
Arrow ResetEntity oder HideEntity, Bewegen, ShowEntity.
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)
 

onkelz89

BeitragFr, März 18, 2011 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe beide Varianten und eine Kombi ausprobiert - das Problem besteht noch immer.

ZaP

BeitragFr, März 18, 2011 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Vertausch halt EntityType und PositionEntity.
Starfare: Worklog, Website (download)
 

onkelz89

BeitragFr, März 18, 2011 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Rolling Eyes oftmals ist es doch einfacher als man denkt...

Dachte nicht daran, dass es etwas ändern könnte, da UpdateWorld ja erst viel später kommt...

Nunja - vielen Dank, nun geht es Smile

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group