move_Entity2Entity
Übersicht BlitzBasic Codearchiv
SparxBetreff: move_Entity2Entity |
Di, Feb 10, 2004 15:28 Antworten mit Zitat |
|
---|---|---|
Diese functionen bewegen ein entity punktgenau zum naechsten in einer vorher angegebenen Zeit. Es verändert x,y,z,pitch,yaw und roll.
[EDIT] Man könnte die sz.b. bei eienr art 7th Guest spiel verwenden.[/EDIT] Code: [AUSKLAPPEN] Type Entitymove
Field Entity% Field time% Field long% Field Entity1X# Field Entity1Y# Field Entity1Z# Field Entity1Pitch# Field Entity1Yaw# Field Entity1Roll# Field Entity2X# Field Entity2Y# Field Entity2Z# Field Entity2Pitch# Field Entity2Yaw# Field Entity2Roll# End Type Function update_Entitymove() Local temp# For e2e.Entitymove = Each Entitymove If MilliSecs()-e2e\time > e2e\long%-500/fps ;hier die gloable variable fps PositionEntity e2e\Entity,e2e\Entity2X,e2e\Entity2Y,e2e\Entity2Z RotateEntity e2e\Entity,e2e\Entity2Pitch,e2e\Entity2Yaw,e2e\Entity2Roll Delete e2e.Entitymove Else temp# = Float(MilliSecs()-e2e\time)/e2e\long ; muss nicht sein, spart aber zeit PositionEntity e2e\Entity,e2e\Entity1X+(e2e\Entity2X-e2e\Entity1X)*temp,e2e\Entity1Y+(e2e\Entity2Y-e2e\Entity1Y)*temp,e2e\Entity1Z+(e2e\Entity2Z-e2e\Entity1Z)*temp RotateEntity e2e\Entity,e2e\Entity1Pitch+(e2e\Entity2Pitch-e2e\Entity1Pitch)*temp,e2e\Entity1Yaw+(e2e\Entity2Yaw-e2e\Entity1Yaw)*temp,e2e\Entity1Roll+(e2e\Entity2Roll-e2e\Entity1Roll)*temp End If Next End Function Function new_Entity2Entity(Entity1%,Entity2%,long%) e2e.Entitymove = New Entitymove e2e\Entity = Entity1% e2e\time = MilliSecs() e2e\long = long e2e\Entity1X = EntityX(Entity1%) e2e\Entity1Y = EntityY(Entity1%) e2e\Entity1Z = EntityZ(Entity1%) e2e\Entity1Pitch = EntityPitch(Entity1%) e2e\Entity1Yaw = EntityYaw(Entity1%) e2e\Entity1Roll = EntityRoll(Entity1%) e2e\Entity2X = EntityX(Entity2%) e2e\Entity2Y = EntityY(Entity2%) e2e\Entity2Z = EntityZ(Entity2%) e2e\Entity2Pitch = EntityPitch(Entity2%) e2e\Entity2Yaw = EntityYaw(Entity2%) e2e\Entity2Roll = EntityRoll(Entity2%) End Function[/syntax] und hier noch ien lauffähiges Beispiel: [syntax="bb"]Graphics3D 800,600,16,2 SetBuffer BackBuffer() Global oldtime%,fps# Type Entitymove Field Entity% Field time% Field long% Field Entity1X# Field Entity1Y# Field Entity1Z# Field Entity1Pitch# Field Entity1Yaw# Field Entity1Roll# Field Entity2X# Field Entity2Y# Field Entity2Z# Field Entity2Pitch# Field Entity2Yaw# Field Entity2Roll# End Type camera=CreateCamera() light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() cube2=CreateCube() RotateEntity cube,20,50,50 PositionEntity cube,0,0,5 PositionEntity cube2,20,20,50 frames new_entity2entity(cube,cube2,3000) Delay 200 frames While Not KeyHit(1) update_entitymove() RenderWorld frames Flip Wend Function frames() If oldtime=MilliSecs() Then Delay(1) fps = 1000.0/Float((MilliSecs()-oldtime)) oldtime = MilliSecs() Text 0,0,"fps="+Int(fps) Text 0,10,Int(MouseX()/32) Text 0,20,Int((MouseY()-50)/32) End Function Function update_Entitymove() Local temp# For e2e.Entitymove = Each Entitymove If MilliSecs()-e2e\time > e2e\long%-500/fps ;hier die gloable variable fps PositionEntity e2e\Entity,e2e\Entity2X,e2e\Entity2Y,e2e\Entity2Z RotateEntity e2e\Entity,e2e\Entity2Pitch,e2e\Entity2Yaw,e2e\Entity2Roll Delete e2e.Entitymove Else temp# = Float(MilliSecs()-e2e\time)/e2e\long ; muss nicht sein, spart aber zeit PositionEntity e2e\Entity,e2e\Entity1X+(e2e\Entity2X-e2e\Entity1X)*temp,e2e\Entity1Y+(e2e\Entity2Y-e2e\Entity1Y)*temp,e2e\Entity1Z+(e2e\Entity2Z-e2e\Entity1Z)*temp RotateEntity e2e\Entity,e2e\Entity1Pitch+(e2e\Entity2Pitch-e2e\Entity1Pitch)*temp,e2e\Entity1Yaw+(e2e\Entity2Yaw-e2e\Entity1Yaw)*temp,e2e\Entity1Roll+(e2e\Entity2Roll-e2e\Entity1Roll)*temp End If Next End Function Function new_Entity2Entity(Entity1%,Entity2%,long%) e2e.Entitymove = New Entitymove e2e\Entity = Entity1% e2e\time = MilliSecs() e2e\long = long e2e\Entity1X = EntityX(Entity1%) e2e\Entity1Y = EntityY(Entity1%) e2e\Entity1Z = EntityZ(Entity1%) e2e\Entity1Pitch = EntityPitch(Entity1%) e2e\Entity1Yaw = EntityYaw(Entity1%) e2e\Entity1Roll = EntityRoll(Entity1%) e2e\Entity2X = EntityX(Entity2%) e2e\Entity2Y = EntityY(Entity2%) e2e\Entity2Z = EntityZ(Entity2%) e2e\Entity2Pitch = EntityPitch(Entity2%) e2e\Entity2Yaw = EntityYaw(Entity2%) e2e\Entity2Roll = EntityRoll(Entity2%) End Function |
||
User posted image |
Wild-Storm |
Di, Feb 10, 2004 20:22 Antworten mit Zitat |
|
---|---|---|
sehr schön! (jetzt wo ich's ausprobiert habe ) | ||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Übersicht BlitzBasic Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group