mesh bewegen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

*GHOST*

Betreff: mesh bewegen

BeitragDo, Apr 07, 2005 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
hab ne frage, hab ich auch schonmal gefragt, hab auch die suche verwendet aber find es leider nich mehr....

also, ich habe ein mesh (entity)

das steht auf der position,5,0,5

jetzt will ich, dass es sich langsam auf 5,0,10 bewegt, dann dreht und wieder zurück auf 5,0,5 geht, dann wieder dreht usw.

wie kann ich das am besten machen?

mit moveentity hab ichs schon probiert, aber dann bewegt sich das objekt viel zu schnell und unendlich weit...

bitte helft mir, danke!! Smile

Ornos

BeitragDo, Apr 07, 2005 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm doch moveentity musst halt einen kleinen wert nehmen z.b: "0.6"
und wenn er einen bestimmen punkt erreicht hat, oder wenn eine bestimme zeit vergangen ist, dann turnentity und wieder moveentity
 

*GHOST*

BeitragDo, Apr 07, 2005 12:40
Antworten mit Zitat
Benutzer-Profile anzeigen
k, danke, werds ausprobieren... Wink
 

*GHOST*

BeitragDo, Apr 07, 2005 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich aber moveentity nehme, wie soll ich dann prüfen, wann das objekt den punkt erreicht hat?

Ornos

BeitragDo, Apr 07, 2005 12:44
Antworten mit Zitat
Benutzer-Profile anzeigen
versuch das mal mit entityx....entityy und entityz

edit:

Code: [AUSKLAPPEN]

 if entityx(deinmesh) = entityx(deinmesh) + 10 then
 moveentity 0,0,0
 turnentity 0,2,0
 endif


irgendwie so in der art habe aus dem kopf geschrieben
also können fehler drinne sein[/syntax]
  • Zuletzt bearbeitet von Ornos am Do, Apr 07, 2005 12:50, insgesamt einmal bearbeitet
 

*GHOST*

BeitragDo, Apr 07, 2005 12:46
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, die befehle kannte ich gar nicht... dankeschön Very Happy
 

*GHOST*

BeitragDo, Apr 07, 2005 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
posz=EntityZ (robot1)

MoveEntity robot1,0,0,0.1
If posz=10 Then MoveEntity robot1,0,0,-0.1
If posz=3 Then MoveEntity robot1,0,0,0.1


das hab ich jetzt gemacht, aber wenn er dann auf der z=10 ist, dann bleibt er stehen, obwohl er ja eigentlich zurück laufen sollte...

PS: das ganze befindet sich in einer hauptschleife mit while -> wend


edit: jetz hab ichs raus: das moveentity von vorhin ist immernoch aktiv, und das andere (in die andere richtung) auch, also bleibt das objekt stehen, weil es nicht in beide richtungen kann. aber wie kann man das problem lösen?

Ornos

BeitragDo, Apr 07, 2005 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

posz=EntityZ (robot1)


If posz<>10 MoveEntity robot1,0,0,0.1
Else If posz=3 Then MoveEntity robot1,0,0,0.1
Else Then MoveEntity robot1,0,0,-0.1

versuch das mal
 

*GHOST*

BeitragDo, Apr 07, 2005 12:59
Antworten mit Zitat
Benutzer-Profile anzeigen
dann kommt aber fehler: expecting end of line in der 2. zeile, außerdem fehlt da ein then... Confused

edit: schon geregelt, move entity war auseinander... Laughing


jetzt kommt aber else without if...

Ornos

BeitragDo, Apr 07, 2005 13:14
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Global a=0.1

posz=EntityZ (robot1)
If posz<10 And posz>3 Then MoveEntity robot1,0,0,a
Else a=a*(-1)
EndIf

 

*GHOST*

BeitragDo, Apr 07, 2005 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
dann kommt wieder else without if... Confused

Ornos

BeitragDo, Apr 07, 2005 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hab mich vertan
BlitzBasic: [AUSKLAPPEN]


Global a=0.1

posz=EntityZ (robot1)

If posz<10 And posz>3 Then
MoveEntity robot1,0,0,a
Else
a=a*(-1)
MoveEntity robot1,0,0,a
EndIf
 

*GHOST*

BeitragDo, Apr 07, 2005 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
dann tut sich aber garnix... Confused

Ornos

BeitragDo, Apr 07, 2005 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ohne debugger kann man schon mal ein paar sachen übersehen
versuch jetzt das mal
BlitzBasic: [AUSKLAPPEN]


Global a#=0.1

posz=EntityZ (robot1)

If posz<=10 And posz>=3 Then
MoveEntity robot1,0,0,a
Else
a=a*(-1)
MoveEntity robot1,0,0,a
EndIf


edit: probiere ein bissel rum, es soll ja nur ein anstoß sein und nicht ein ausmertzen von syntaxfehler
 

BIG BUG

BeitragDo, Apr 07, 2005 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt auch noch Animationen. Damit kann man sowas einfach erschlagen:

BlitzBasic: [AUSKLAPPEN]

Graphics3D 800,600,32,2
SetBuffer BackBuffer()


tex=CreateTexture( 64,64 )
SetBuffer TextureBuffer( tex )
Color 255,0,0:Rect 0,0,32,32:Rect 32,32,32,32
Color 255,128,0:Rect 32,0,32,32:Rect 0,32,32,32
SetBuffer BackBuffer()
Color 255,255,255

cone=CreateCone(16)

;set animation keys
RotateEntity cone,0,0,-90
PositionEntity cone,0,0,0
SetAnimKey cone,0

RotateEntity cone,0,0,90
PositionEntity cone,10,0,0
SetAnimKey cone,60

RotateEntity cone,0,0,270
PositionEntity cone,0,0,0
SetAnimKey cone,120

;create animation sequence 0
AddAnimSeq cone,120

Animate cone, 1

camera=CreateCamera()
PositionEntity camera,5,3,-10

light=CreateLight()
TurnEntity light,45,45,0

FlushKeys


While Not KeyHit(1)

UpdateWorld
RenderWorld

Flip 1
Wend

End
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group