Schwerkraft

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

fire

Betreff: Schwerkraft

BeitragDo, Apr 19, 2007 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo leute,
ich hab ein schwerkraft problem, ich hab mal gesucht und auch was gefunden, aber irgendwie funzt es nicht.
Hier is mal der betreffende codeausschnitt:

terrain=loadterrain("high.bmp")
scaleentity terrain,5,300,5
...
...
while not keyhit(1)

...
If Not EntityCollided (camera,terrain) Then TranslateEntity camera,0,-1,0
...
updateworld
renderworld
flip
wend
end



anstatt mit 'If Not EntityCollided (camera,terrain) Then TranslateEntity camera,0,-1,0' hab ich es auch schon mit 'TranslateEntity camera,0,-1,0' versucht, aber irgendwie fällt die camera immer durch das terrain durch

hoffe das ihr mir helfen könnt
1 Lichtjahr = 9.454.254.955.488.000 m

Tankbuster

BeitragDo, Apr 19, 2007 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
EntityCollided

Hast du völlig falsch angewendet!
Ich weiß noch nicht mal, ob es bei nem terrain funzt!^^
Aber du musst das Entity angeben, und dahinter den Collisions Type, den du mit EntityType bestimmt hast, und nicht das terrain xDDD
Twitter
Download Jewel Snake!
Windows|Android

fire

BeitragDo, Apr 19, 2007 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
so hab es eben geändert, aber es funzt trotzdem nicht.
hat vllt noch jemand ne idee?
1 Lichtjahr = 9.454.254.955.488.000 m

biggicekey

BeitragDo, Apr 19, 2007 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
"collisions" richtig ausgeführt?
dem spieler und ddem terrain auch einen entitytype zugeordnet.

wenn das richtig ist dann würdest du niemals durchfallen.
und bei der prüfung müsstest halt noch darauf achten das du auf den richtigen entitytype prüfst und auch mal in anderer reinfolge probieren.

wenns eine von diesen ursachen war zurück auf los und tuts machen.
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

fire

BeitragDo, Apr 19, 2007 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den fehler gefunden!
hab die collisions überprüft, ich hatte nur den falschen entitytype verwendet Embarassed

danke für eure schnellen antworten
1 Lichtjahr = 9.454.254.955.488.000 m
 

Darkbyte

BeitragDo, Apr 19, 2007 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, wie geht das denn jetzt richtig, da ich anfänger bin interesiert mich das ^^. bzw. wie wird die Collsison richtig geschrieben?

NightPhoenix

BeitragDo, Apr 19, 2007 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
terrain=loadterrain("xxx.abc")
entitytype terrain,ter_type

Spieler=.....
entitytype spieler,spi_type

collisions spi_type,ter_type,2,3

while not keyhit(1)

if entitycollided(spieler,ter_type) then translateentity(spieler,0,0,0) else translateentity(spieler,0,-1,0)

updateworld
renderworld
flip
wend
end


habs nicht getestet, hoffe es funzt Wink
 

Darkbyte

BeitragDo, Apr 19, 2007 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
und was ist wenn ich das mit der Camera machen möchte ?
Schonmal danke für die Antwort

the FR3AK

BeitragDo, Apr 19, 2007 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Kamera hat eigentlich keine Kollision sondern der Pivot an dem die Kamera befestigt ist...

Tankbuster

BeitragDo, Apr 19, 2007 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
einfach^^
Zitat:
Spieler=Createcamera()
Twitter
Download Jewel Snake!
Windows|Android
 

Darkbyte

BeitragDo, Apr 19, 2007 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs ausprobiert mit der Camera:
Code: [AUSKLAPPEN]

EntityType camera,spi_type

EntityType Terrain,ter_type


Collisions spi_type,ter_type,2,3
While Not KeyHit(1)

If EntityCollided(camera,ter_type) Then
 TranslateEntity(camera,0,0,0)
 Else
 TranslateEntity(camera,0,-1,0)
EndIf

und es geht nicht.

the FR3AK

BeitragDo, Apr 19, 2007 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich logisch...weil die Kamera ja kein "Mesh" ist...es hat 0 Polygone und kann deshalb auch nicht kollidieren...oder?

Tankbuster

BeitragDo, Apr 19, 2007 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
oh^^ das hatte ich nicht bedacht =)
Aber du könntest mit TerrainY die Höhe des Terrains messen, und die Camera dann immer auf der Höhe+2 oder so plazieren =)
Twitter
Download Jewel Snake!
Windows|Android

Lunatix

BeitragDo, Apr 19, 2007 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Freak, bitte denken bzw. wissen vorm posten... natürlich kann eine Kamera mit etwas anderem Kollidieren Rolling Eyes
Darum heisst es ja auch nicht "MeshCollided" sondern "EntityCollided"
Das hat mit den Polygonen sogut wie garnix zu tun, sondern mit dem Radius.

Zum problem, ich schätz mal, das die Kamera vorher nciht positioniert wird? Dann könnte es sein, das die Kamera nähmlich unter oder in dem Boden-Entity liegt und sie logischerweise nicht mit diesem Kollidieren kann...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Darkbyte

BeitragDo, Apr 19, 2007 21:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein die Kamera liegt über dem Terrain. Die Kamera bewegt sich komsicher weise die ganze Zeit nach unten, durch das Terrain und dann immer weiter.(Ne halt das soll ja so sein glaube ich oder? Die künstliche schwerkraft glaubei ich ^^)

the FR3AK

BeitragDo, Apr 19, 2007 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mal ein Beweis gecodet das es klappt^^

Code: [AUSKLAPPEN]
Graphics3D 600,600,32,2
SetBuffer FrontBuffer()

Const cam_col=1,boden_col=2


cam=CreateCamera()
PositionEntity cam,0,1000,0
EntityType cam,cam_col


boden=CreatePlane()
EntityType boden,boden_col


Collisions cam_col,boden_col,2,1


While Not KeyHit(1)


TranslateEntity cam,0,-1,0

UpdateWorld
RenderWorld

Flip
Wend


Das ist doch mal was^^ xD

Cool

Lunatix

BeitragDo, Apr 19, 2007 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Also du solltest doch wissen, was es machen soll Oo

Aber die variablen "spi_type" und "terr_type" hast du doch wohl deklariert oder ?
Const spi_type = 1
Const terr_type = 2
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...
 

Darkbyte

BeitragDo, Apr 19, 2007 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein hatte ich vorher icht, aber es geht trotzdem nicht auch wenn ichs mit Const ... mache.

fire

BeitragSa, Apr 21, 2007 8:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ich wollte nur mal sagen, daws man einen teil des codes noch vereinfachen kann:
Code: [AUSKLAPPEN]

If EntityCollided(camera,ter_type) Then
 TranslateEntity(camera,0,0,0)
 Else
 TranslateEntity(camera,0,-1,0)
EndIf

so ist es etwas einfacher:
Code: [AUSKLAPPEN]

If not EntityCollided(camera,ter_type) then TranslateEntity(camera,-1,0)
[/code]
1 Lichtjahr = 9.454.254.955.488.000 m

NightPhoenix

BeitragSa, Apr 21, 2007 10:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

graphics3d 800,600,32,2
setbuffer backbuffer()

terrain=loadterrain("xxx.abc")
entitytype terrain,ter_type

Spieler=CreateCamera()
entityradius Spieler,1
entitytype spieler,spi_type

collisions spi_type,ter_type,2,3

while not keyhit(1)

if entitycollided(spieler,ter_type) then
translateentity(spieler,0,0,0)
else
translateentity(spieler,0,-1,0)
endif

updateworld
renderworld
flip
wend
end



das muss funktionieren...

du musst für jedes objekt den "entitytype" und für den Spieler einen Radius oder eine box deklarieren (siehe in der befehlsliste "entitybox", "entityradius")
dann noch collisions mit den vom entitytype deklarierten objekten und noch ein "updateworld" am ende des codes und alles muss funzen


es ist meines erachtens nach besser zu schreiben:

Code: [AUSKLAPPEN]
if entitycollided(spieler,ter_type) then
translateentity(spieler,0,0,0)
else
translateentity(spieler,0,-1,0)
endif


weil man hinter den then und else vielleicht noch andere dinge ausdrücken will, wie z.b. hinter "then" mit Sounds, oder Kamera-Lauf-Bewegung arbeiten will .... Dinge die nicht sein sollten wenn die Figur in der Luft schwebt und runter fällt...
Deswegen diese gestapelte Version


MfG.

Gehe zu Seite 1, 2  Weiter

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group