Child Problem bei Turnentity
Übersicht

![]() |
FirstdeathmakerBetreff: Child Problem bei Turnentity |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich bastel gerade an einem kleinen Weltraumshooter (aus Lernzwecken) und baue gerade die möglichkeit ein, Schüsse abzugeben. Um die Erscheinungsposition der Schüsse festzulegen habe ich einfach an das Raumschiffmesh 3 leere Meshes gehängt, welche sozusagen die Erscheinungspositionen beeinhalten. Wenn ich jetzt einen Schuss erscheinen lassen will, gebe ich jetzt einfach
Code: [AUSKLAPPEN] PositionEntity schuss\mesh,EntityX(player\schussr,0),EntityY(player\schussr,0),EntityZ(player\schussr,1) an.
schussr ist in diesem Fall das leere Mesh welches ich an das Raumschiff Mesh angehängt habe. So lange ich das Raumschiff mesh mit moveentity in z Richtung nach vorne bewege geht auch alles gut, aber sobald ich das Raumschiff drehe verschieben sich die leeren Meshes nicht mehr mit und die Schüsse erscheinen an unlogischen Stellen. Hier der Code: Code: [AUSKLAPPEN] Const SCREEN_X=1024
Const SCREEN_Y=768 Graphics3D SCREEN_X,SCREEN_Y,16,2 SetBuffer BackBuffer() Type player Field Mesh Field camera Field Name$ Field schubkraft# Field aktuell_speed# Field max_speed# Field schussh Field schussr Field schussl End Type Global player.player Type planet Field Mesh Field turnspeed# Field turnspeed2# End Type Global planet.planet Type schuss Field Mesh Field Speed# Field livetime# End Type SeedRnd MilliSecs() player.player=New player player\Mesh=LoadMesh("Meshes\Fighter3.X") player\camera=CreateCamera(player\Mesh) CameraRange player\camera,0.1,10000 CameraFogMode player\camera,1 CameraFogRange player\camera,1000,10000 PositionEntity player\camera,0,1,-3 player\name="Christian" player\schubkraft=0.01 player\max_speed=10 player\schussh=CreateMesh(player\mesh) PositionEntity player\schussh,0,0,0.1 player\schussr=CreateMesh(player\mesh) PositionEntity player\schussr,1,0,-1 player\schussl=CreateMesh(player\mesh) PositionEntity player\schussl,-1,0,-1 anzahl_planeten=6 Dim planet_tex(anzahl_planeten) For i=0 To anzahl_planeten-1 planet_tex(i)=LoadTexture("GFX\planet"+Rand(1,anzahl_planeten)+".jpg") Next For i=0 To 10 dimension=5000 planet.planet=New planet planet\Mesh=CreateSphere (20) scalefactor#=Rnd(50,100) EntityTexture planet\mesh,planet_tex(Rand(0,anzahl_planeten-1)) ScaleEntity planet\mesh,scalefactor,scalefactor,scalefactor PositionEntity planet\mesh,Rnd(-dimension,dimension),Rnd(-dimension,dimension),Rnd(-dimension,dimension) planet\turnspeed=Rnd(0.01,0.1) planet\turnspeed2=Rnd(0.001,0.01) Next BG_music=PlayMusic("Music\game"+Rand(1,4)+".mp3") AmbientLight 255,255,255 While ende=0 ;Steuerung player=First player If KeyDown(42) And player\aktuell_speed<player\max_speed player\aktuell_speed=player\aktuell_speed+player\schubkraft If KeyDown(29) And player\aktuell_speed>0 player\aktuell_speed=player\aktuell_speed-player\schubkraft If KeyDown(200) TurnEntity player\Mesh,1,0,0 If KeyDown(208) TurnEntity player\Mesh,-1,0,0 If KeyDown(203) TurnEntity player\Mesh,0,0,1 If KeyDown(205) TurnEntity player\Mesh,0,0,-1 If KeyDown(74) MoveEntity player\Camera,0,0.1,-0.3 If KeyDown(78) MoveEntity player\Camera,0,-0.1,0.3 If KeyHit(57) createshuss() MoveEntity player\mesh,0,0,player\aktuell_speed For schuss.schuss=Each schuss MoveEntity schuss\mesh,0,schuss\speed,0 schuss\livetime=schuss\livetime-0.1 If schuss\livetime<0 FreeEntity schuss\mesh Delete schuss.schuss EndIf Next For planet.planet=Each planet TurnEntity planet\mesh,0,planet\turnspeed,planet\turnspeed2 Next RenderWorld() Text 10,10,player\aktuell_speed Flip Wend Function createshuss() schuss.schuss=New schuss schuss\mesh=CreateCylinder() EntityColor schuss\mesh,255,255,0 ScaleEntity schuss\mesh,0.05,0.05,0.05 TurnEntity schuss\mesh,EntityPitch(player\mesh),EntityYaw(player\mesh),EntityRoll(player\mesh) TurnEntity schuss\mesh,90,0,0 PositionEntity schuss\mesh,EntityX(player\schussh,0),EntityY(player\schussh,0),EntityZ(player\schussh,1) schuss\speed=player\aktuell_speed+1 schuss\livetime=10 schuss.schuss=New schuss schuss\mesh=CreateCylinder() EntityColor schuss\mesh,255,255,0 ScaleEntity schuss\mesh,0.05,0.05,0.05 TurnEntity schuss\mesh,EntityPitch(player\mesh),EntityYaw(player\mesh),EntityRoll(player\mesh) TurnEntity schuss\mesh,90,0,0 PositionEntity schuss\mesh,EntityX(player\schussr,0),EntityY(player\schussr,0),EntityZ(player\schussr,1) schuss\speed=player\aktuell_speed+1 schuss\livetime=10 schuss.schuss=New schuss schuss\mesh=CreateCylinder() EntityColor schuss\mesh,255,255,0 ScaleEntity schuss\mesh,0.05,0.05,0.05 TurnEntity schuss\mesh,EntityPitch(player\mesh),EntityYaw(player\mesh),EntityRoll(player\mesh) TurnEntity schuss\mesh,90,0,0 PositionEntity schuss\mesh,EntityX(player\schussl,0),EntityY(player\schussl,0),EntityZ(player\schussl,1) schuss\speed=player\aktuell_speed+1 schuss\livetime=10 End Function |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Benutz erstmal anstatt CreateMesh() die schonendere CreatePivot()-Function | ||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, geändert. Aber das Problem besteht immer noch. | ||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group