Mesh stoppen und wieder nach oben
Übersicht

lukasimgruetBetreff: Mesh stoppen und wieder nach oben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mein Problem ist, ich möchte das ein Mesh auf der y achse nach unten fährt, und auf einer bestimmten höhe wieder nach oben geht, kann mir bitte jemand helfen?
Code: [AUSKLAPPEN] Graphics3D 1600,900,0,2 SetBuffer BackBuffer() Global Cam = CreateCamera() MoveEntity Cam,0,20,0 CameraRange cam,1,40000 Global camera Global light terrain = LoadMesh("berg.3ds") PositionEntity terrain, 0,0,0 ScaleMesh terrain, 0.1,0.1,0.1 TurnEntity terrain,0,0,0 terrain_tex= LoadTexture("texture.bmp") EntityTexture terrain, terrain_tex haus = LoadMesh("haus.3ds") PositionEntity haus,1000,2,450 ScaleEntity haus,0.004,0.004,0.004 haus2 = LoadMesh("haus2.3ds") PositionEntity haus2,700,2,170 ScaleEntity haus2,0.02,0.02,0.02 haus3 = LoadMesh("haus.3ds") PositionEntity haus3,800,2,350 ScaleEntity haus3,0.004,0.010,0.004 RotateEntity haus3,0,90,0 haus4 = LoadMesh("haus.3ds") PositionEntity haus4,1100,2,350 ScaleEntity haus4,0.004,0.020,0.004 haus5 = LoadMesh("haus.3ds") PositionEntity haus5,950,2,350 ScaleEntity haus5,0.008,0.004,0.008 RotateEntity haus5,0,180,0 droid = LoadMesh("droid.3ds") PositionEntity droid,1000,2,500 ScaleEntity droid,1,1,1 RotateEntity droid,0,180,0 xwing = LoadMesh("media/x wing.3ds") PositionEntity xwing, 1050,2,500 ScaleEntity xwing,0.75,0.75,0.75 corvette = LoadMesh("media/corvette.3ds") PositionEntity corvette,0,2000,0 ScaleEntity corvette,1,1,1 würfel= CreateCube() PositionEntity würfel, 0,300,0 ScaleEntity würfel,1,1,1 skytex = LoadTexture("sky2.jpeg",1+8+16+32) sky = CreateSphere(64) FlipMesh sky ScaleEntity sky,24000,18000,24000 EntityTexture sky,skytex MoveEntity sky,0,0,0 Light = CreateSphere(5) Spot = CreateLight(2,Light) ScaleEntity Light,10,10,10 EntityColor Light,225,225,0 PositionEntity Light,0,2000,1000 Repeat If KeyDown(205) = 1 Then TurnEntity cam, 0, - 1, 0 If KeyDown(203) = 1 Then TurnEntity cam, 0, 1, 0 If KeyDown(208) = 1 Then MoveEntity cam, 0, 0, - 2 If KeyDown(200) = 1 Then MoveEntity cam, 0, 0, 2 If KeyHit(57) = 1 Then enable = 1 - enable WireFrame enable MoveEntity corvette,0,-1,0 If EntityY#(corvette)=300 Then MoveEntity corvette,0,500,0 UpdateWorld RenderWorld Text 0,0,"BETA V.0.1 TEST " Text 0,20,"Trisrendered: " + TrisRendered() Text 0, 40, "X Position: " + EntityX#(cam) Text 0, 60, "Y Position: " + EntityY#(cam) Text 0, 80, "Z Position: " + EntityZ#(cam) Flip 0 Forever Das einzige was geschieht ist das der Mesh zittert mehr nicht. |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar weil du "MoveEntity corvette,0,-1,0" immer aufrufst!
Hier ein Pseudocode, sollte dir erklären wies geht ![]() mfg Code: [AUSKLAPPEN] y#=0 status=0 While Not KeyHit(1) Cls If status=0 y#=y#+0.1 Else y#=y#-0.1 EndIf If y#>300 status=1 EndIf If y#<0 status=0 EndIf Text 0,0,y# Flip 60 Wend |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
versteh ich nicht ganz^^ | ||
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ganz einfach: Du legst eine zusätzliche Variable namens "status" an. Wenn status=1 ist, fährt das Ding nach unten. Wenn die Y-Koordinate dann kleiner als -300 ist, änderst du den status auf 0.
Dann ist der status 0 und solange er das ist, fährt das Mesh nach oben. Ist die Y-Koordinate dann größer als 300, wird der status wieder auf 1 zurückgesetzt und das ganze wiederholt sich. |
||
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beitrag | ||
- Zuletzt bearbeitet von lukasimgruet am Do, Apr 13, 2023 12:26, insgesamt einmal bearbeitet
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein für das Mesh machst du eine Variable namens Status, der Code ist doch schon da oben ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das einzige was geschieht ist, der bildschirm ist schwarz und links oben stehen zahlen. | ||
mDave |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist ja auch nur ein Pseudocode. | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Code zeigt dir nur wie man eine Variable in dem Range 0 -300 rauf und runter fahren lässt.
Dies nun in deinem Code einzubauen ist dein Teil, sonst lernst du ja nichts ![]() Vorallem weil niemand dein Code ausführen kann, da man mühsam deine Models zusammensuchen müsste um es zu testen. edit: 2500er Beitrag *<: D |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
lukasimgruet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beitrag | ||
- Zuletzt bearbeitet von lukasimgruet am Do, Apr 13, 2023 12:26, insgesamt einmal bearbeitet
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat nichts mit dumm zu tun, ist ja relativ das Ganze.
Mein Tipp an dich, arbeite diverse Tutorials durch, dann setzt dich wieder drann ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
PacMani |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Global NachUntenBewegen = True
Repeat If KeyDown(205) = 1 Then TurnEntity Cam, 0, - 1, 0 If KeyDown(203) = 1 Then TurnEntity Cam, 0, 1, 0 If KeyDown(208) = 1 Then MoveEntity Cam, 0, 0, - 2 If KeyDown(200) = 1 Then MoveEntity Cam, 0, 0, 2 If KeyHit(57) = 1 Then enable = 1 - enable WireFrame enable If NachUntenBewegen=True Then MoveEntity corvette,0,-1,0 Else MoveEntity corvette,0,1,0 End If If EntityY#(corvette)=300 Then NachUntenBewegen=False If EntityY(corvette)=500 Then NachUntenBewegen=True UpdateWorld RenderWorld Text 0,0,"BETA V.0.1 TEST " Text 0,20,"Trisrendered: " + TrisRendered() Text 0, 40, "X Position: " + EntityX#(Cam) Text 0, 60, "Y Position: " + EntityY#(Cam) Text 0, 80, "Z Position: " + EntityZ#(Cam) Flip 0 Forever Ich würde übrigens bei weitem keine so riesigen Werte nehmen wie momentan... CameraRange x,40000 ist doch etwas übertrieben o_O Und: Kann man sich "ScaleEntity corvette,1,1,1" nicht sowieso sparen? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group