Schwerkraft
Übersicht

![]() |
fireBetreff: Schwerkraft |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
"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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab den fehler gefunden!
hab die collisions überprüft, ich hatte nur den falschen entitytype verwendet ![]() danke für eure schnellen antworten |
||
1 Lichtjahr = 9.454.254.955.488.000 m |
Darkbyte |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, wie geht das denn jetzt richtig, da ich anfänger bin interesiert mich das ^^. bzw. wie wird die Collsison richtig geschrieben? | ||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
Darkbyte |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und was ist wenn ich das mit der Camera machen möchte ?
Schonmal danke für die Antwort |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine Kamera hat eigentlich keine Kollision sondern der Pivot an dem die Kamera befestigt ist... | ||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
einfach^^
Zitat: Spieler=Createcamera()
|
||
Twitter
Download Jewel Snake! Windows|Android |
Darkbyte |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eigentlich logisch...weil die Kamera ja kein "Mesh" ist...es hat 0 Polygone und kann deshalb auch nicht kollidieren...oder? | ||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Freak, bitte denken bzw. wissen vorm posten... natürlich kann eine Kamera mit etwas anderem Kollidieren ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein hatte ich vorher icht, aber es geht trotzdem nicht auch wenn ichs mit Const ... mache. | ||
![]() |
fire |
![]() Antworten mit Zitat ![]() |
---|---|---|
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) |
||
1 Lichtjahr = 9.454.254.955.488.000 m |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group