flackerndes mesh!?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

ZaRaK

Betreff: flackerndes mesh!?

BeitragFr, Mai 14, 2004 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich mein mesh auf dem terrain bewege, mit einem klick, dann sieht alles gut aus, aber sobald es zum stehen kommt beginnt das zu flackern wie bekloppt und... das wendet sich immer blitzschnell um 180°... ca 10x in einer sekunde...

also es flackert im stillstand halt ungemein und der kopf ist mal vorne und mal hinten zu sehen...

woran könnte das liegen?
 

Dreamora

BeitragFr, Mai 14, 2004 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Fehler beim ausrichten der cam ... hast du ein rotateentity in der loop drin das immer wieder dreht? oder ein point entity

ohne code is das immer schwer zu sagen

Jan_

Ehemaliger Admin

BeitragFr, Mai 14, 2004 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
an Drogen eindeutig!

ansonsten, irgendwas gewurzelt oder ² ?
es gibt nen befehl, das Mesh umzudrehen, hasst du den drin,
ist dein CameraRange auf 0.01 bis 1000 ?
between angels and insects
 

ZaRaK

BeitragFr, Mai 14, 2004 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

PointEntity mesh,pivot
 If EntityX(mesh)<>EntityX(pivot) Or EntityY(mesh)<>EntityY(pivot) Or EntityZ(mesh)<>EntityZ(pivot) Then
  MoveEntity mesh,0,0,0.5
 EndIf

 If MouseDown(1) Then
  CameraPick(cam,MouseX(),MouseY())
  PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
 EndIf
 

ZaRaK

BeitragFr, Mai 14, 2004 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
aaaach.. das flackert weil der sich auf pivot richtet, und weil das beides auf einem punkt liegt, weiss das mesh nicht, wohin es genau guggn soll???
 

Dreamora

BeitragFr, Mai 14, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
exakt
 

ZaRaK

BeitragFr, Mai 14, 2004 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
und wie genau kann ich das problem jetzt beheben?
ich hab schon einiges versucht, aber ich komm nich ganz dahinter...
 

Dreamora

BeitragFr, Mai 14, 2004 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
dafür sorgen dass nicht beides am gleichen punkt is bzw.

if entitydistance( player, pivot ) > 1 then pointentity player, pivt



dadurch verhinderst du dass er sich auch aufs pivot ausrichtet wenn er schon zu nahe dran steht
 

ZaRaK

BeitragFr, Mai 14, 2004 14:55
Antworten mit Zitat
Benutzer-Profile anzeigen
damit sag ich ja nur das er pointen soll wenn die entfernung grösser als 1 ist...

dadurch weiss der aber nicht das er bei geringerer distance nicht pointen soll...

also es flackert immernoch..
 

Dreamora

BeitragSa, Mai 15, 2004 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
erm warum sollts noch flackern?
du musst einfach das normale pointentity raus nehmen und nur noch das drin haben.
dann pointet er auch nimmer wenn er zu nahe dran is. so einfach is das Smile
 

ZaRaK

BeitragSa, Mai 15, 2004 11:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hm...

Code: [AUSKLAPPEN]

If EntityDistance(mesh,pivot) > 1 Then PointEntity mesh,pivot

 If EntityX(mesh)<>EntityX(pivot) Or EntityY(mesh)<>EntityY(pivot) Or EntityZ(mesh)<>EntityZ(pivot) Then
  MoveEntity mesh,0,0,0.5
 EndIf

 If MouseDown(1) Then
  CameraPick(cam,MouseX(),MouseY())
  PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
 EndIf


jetz hüpft das mesh immer vor und zurück, wenn am pivot steht...
 

Dreamora

BeitragSa, Mai 15, 2004 12:27
Antworten mit Zitat
Benutzer-Profile anzeigen
jo du musst ja auch nicht mit <> testen sondern mit < Entityx() + movedistanz > Entityx() - movedistanz

ein <> oder auch ein = wird direkt niemals funktionieren
 

Omenaton_2

BeitragSa, Mai 15, 2004 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
So ein Flackern kann auch dann auftreten, wenn eine Fläche zu dicht über dem Boden ist. Zum Beispiel wenn der Boden eines Hauses zu dicht über der Landschaft ist, kann es manchmal durchscheinen. Dann muß man den GebäudenBoden ein ganz wenig anheben.
 

Dreamora

BeitragSa, Mai 15, 2004 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
er meinte nicht z-fighting Smile

hier noch der komplette code falls meine erklärung unlogisch gewesen sein sollte

MoveDist# = 0.5
If EntityDistance(mesh,pivot) > 1 Then PointEntity mesh,pivot

If EntityX(mesh)<EntityX(pivot) +MoveDist/2 or entityx(mesh)>entityx(pivot)-MoveDist/2 Or EntityY(mesh)<EntityY(pivot)+MoveDist/2 or EntityY(mesh)>EntityY(pivot)-MoveDist/2 Or EntityZ(mesh)<EntityZ(pivot)+MoveDist/2 or EntityZ(mesh)>EntityZ(pivot)-MoveDist/2 Then
MoveEntity mesh,0,0,MoveDist
EndIf

If MouseDown(1) Then
CameraPick(cam,MouseX(),MouseY())
PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
EndIf
 

ZaRaK

BeitragSa, Mai 15, 2004 14:44
Antworten mit Zitat
Benutzer-Profile anzeigen
also das teil hüpft immernoch vor und zurück...

hier kannste ma die problem.zip downloaden

und dann siehst du evtl auch schon mein 2. problem.. wenn ich hinter einen berg klicke.. also angenommen

o__/\__ <-- das o is das mesh, vor nem berg... dann bewegt sich das nicht über den berg wenn ich klick, sondern
__/o\__ .... ich kriegs net hin, das das immer direkt auf dem terrain läuft.. das läuft immer direktem weg zum pivot Sad
 

Dreamora

BeitragSa, Mai 15, 2004 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
na dann mach doch einfach

positionentity player, x, terrainy(terrain,x,y,z), z
 

ZaRaK

BeitragSa, Mai 15, 2004 15:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ahhh.. das isses schon wieder...
wo soll ich das denn einbauen?
ich hab im gesamten code kein positionentity für mein mesh... das geht alles über das erstellte pivot mit picked()....

hab ma den code genommen den du gesagt hattest, aber der klappt auch net.. kannst dir ja ma die file downloaden die ich oben genannt habe und es dir ma anschauen...

Code: [AUSKLAPPEN]

MoveDist# = 0.5
If EntityDistance(mesh,pivot) > 1 Then PointEntity mesh,pivot

If EntityX(mesh)<EntityX(pivot) +MoveDist/2 or entityx(mesh)>entityx(pivot)-MoveDist/2 Or EntityY(mesh)<EntityY(pivot)+MoveDist/2 or EntityY(mesh)>EntityY(pivot)-MoveDist/2 Or EntityZ(mesh)<EntityZ(pivot)+MoveDist/2 or EntityZ(mesh)>EntityZ(pivot)-MoveDist/2 Then
MoveEntity mesh,0,0,MoveDist
EndIf

If MouseDown(1) Then
CameraPick(cam,MouseX(),MouseY())
PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
EndIf


wo/wie kann ich da das Code: [AUSKLAPPEN]
positionentity player, x, terrainy(terrain,x,y,z), z
einbauen?
 

Dreamora

BeitragSa, Mai 15, 2004 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ach das is der gesammte code

na dann halt so


Code: [AUSKLAPPEN]


MoveDist# = 0.5
If EntityDistance(mesh,pivot) > 1 Then PointEntity mesh,pivot

If EntityX(mesh)<EntityX(pivot) +MoveDist/2 or entityx(mesh)>entityx(pivot)-MoveDist/2 Or EntityY(mesh)<EntityY(pivot)+MoveDist/2 or EntityY(mesh)>EntityY(pivot)-MoveDist/2 Or EntityZ(mesh)<EntityZ(pivot)+MoveDist/2 or EntityZ(mesh)>EntityZ(pivot)-MoveDist/2 Then
MoveEntity mesh,0,0,MoveDist
positionentity mesh, entityx(mesh), terrainy(terrain,entityx(mesh), entityy(mesh),entityz(mesh)),entityz(mesh)
EndIf

If MouseDown(1) Then
CameraPick(cam,MouseX(),MouseY())
PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
EndIf

 

ZaRaK

BeitragSa, Mai 15, 2004 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
super, jetz klappts... jetz dreht sich das mesh bloss noch um 90-180° wenns stehn bleibt.. so genau kann ich das nich erkennen weil mein mesh momentan noch ne kugel is
 

Dreamora

BeitragSa, Mai 15, 2004 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
da hat ich doch glatt noch was vergessen. deswegen glei nochma dieses mal komplett ...


Code: [AUSKLAPPEN]
MoveDist# = 0.5
If EntityDistance(mesh,pivot) > 2*MoveDist Then PointEntity mesh,pivot

If EntityX(mesh)<EntityX(pivot) +MoveDist/2 or entityx(mesh)>entityx(pivot)-MoveDist/2 Or EntityY(mesh)<EntityY(pivot)+MoveDist/2 or EntityY(mesh)>EntityY(pivot)-MoveDist/2 Or EntityZ(mesh)<EntityZ(pivot)+MoveDist/2 or EntityZ(mesh)>EntityZ(pivot)-MoveDist/2 Then
MoveEntity mesh,0,0,MoveDist
positionentity mesh, entityx(mesh), terrainy(terrain,entityx(mesh), entityy(mesh),entityz(mesh)),entityz(mesh)
EndIf

If MouseDown(1) Then
CameraPick(cam,MouseX(),MouseY())
PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ()
EndIf

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group