Mesh stoppen und wieder nach oben
Übersicht
BlitzBasic
Blitz3D
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
BlitzBasic
Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group
