panzersteuerung
Übersicht

![]() |
SYSThernBetreff: panzersteuerung |
![]() Antworten mit Zitat ![]() |
---|---|---|
also hab bei meinem anderen spiel battlpark einen bug entdeckt
und zwar habe ich so eine steuerung wie bei einen panzer wenn ich den lauf (wo dei rakete rauskommt) drehe dann schießt er auch in die richtung aber wenn ich dann den grundkörper des panzers drehe dreht sich die rakete auch und der schuss geht daneben code: Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1 SetBuffer BackBuffer() ;laden der Daten ;modelle grundteil=LoadMesh ("grundteil1.b3d") teildreh=LoadMesh ("teil1dreh.b3d",pivot) reifenvorne=LoadMesh ("reifenvorn1.b3d") reifenhinten=LoadMesh ("reifenhinten1.b3d") cargun=LoadMesh ("cargun.b3d") Global park = LoadMesh("carpark1.b3d") wasser=LoadMesh("wasser1.b3d") ;bilder texturen ;variablen Local ms=20 Local cx# Local cy# Type schuss Field kugel End Type Global s.schuss ;camera camera=CreateCamera() MoveEntity camera,0,10,-20 CameraRange camera ,0.01,1000 ;licht licht=CreateLight() RotateEntity licht,0,90,0 ;park PositionEntity park,0,-3,0 EntityType park,1 ;wasser PositionEntity wasser,0,-1,0 ;car ScaleEntity grundteil,0.5,0.5,0.5 ScaleEntity teildreh ,0.5,0.5,0.5 ScaleEntity reifenvorne ,0.5,0.5,0.5 ScaleEntity reifenhinten ,0.5,0.5,0.5 ScaleEntity cargun,0.5,0.5,0.5 EntityType grundteil,2 EntityRadius grundteil,6.2 While Not KeyHit(1) EntityParent teildreh,grundteil EntityParent reifenvorne,grundteil EntityParent reifenhinten,grundteil EntityParent cargun,teildreh EntityParent camera,teildreh EntityParent camera,cargun HidePointer mxs=MouseXSpeed()*ms ;(20) mys=MouseYSpeed()*ms ;(20) cx#=EntityPitch(camera)+mys*0.01 cy#=EntityYaw(teildreh)-mxs*0.01 If cx#>50 Then cx#=50 If cx#<-50 Then cx#=-50 MoveMouse 512,384 ;bewegen RotateEntity teildreh,0,cy,0 RotateEntity camera,cx,0,0 If KeyDown( 32 )Then TurnEntity grundteil,0,-1,0 If KeyDown( 30 )Then TurnEntity grundteil,0,1,0 If KeyDown( 31 )Then MoveEntity grundteil,0,0,-1 EndIf If KeyDown( 17 )Then MoveEntity grundteil,0,0,.5 EndIf If KeyDown( 57) Then MoveEntity grundteil,0,1,0 ;schießen If MouseHit(1) Then ;Schuss abfeuern s.schuss = New schuss s\kugel = CreateSphere() EntityColor s\kugel ,255,0,0 EntityType s\kugel,3 RotateEntity s\kugel,EntityPitch(teildreh), EntityYaw(teildreh),0 PositionEntity s\kugel ,EntityX(grundteil),EntityY (grundteil),EntityZ(grundteil) Else If MouseHit(1) =False Then EndIf ;Alle schüsse abfragen For s.schuss = Each schuss MoveEntity s\kugel, 0, 0, 5 Next ;zoom Local zoom#=1 If MouseDown(2) Then zoom#=2 Else If Not MouseDown(2) Then zoom#=1 EndIf CameraZoom camera,zoom# ;phisik ;gravitation MoveEntity grundteil,0,-0.5,0 ;collision Collisions 2,1,2,2 AntiAlias 1 UpdateWorld RenderWorld Flip Wend ~EDITIERT~ Bitte benutze in Zukunft die code-Tags für deine Quelltexte. hamZta |
||
Tpro |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn das so dein orginal Quelltext ist solltest du dich definitiv mal zu Unterprogrammtechniken informieren ( Funktionen etc) das machte das ganze auch besser zu lesen und damit leichter Fehler zu finden!
so kannst du z.B auch einfach eine Function machen : Code: [AUSKLAPPEN] Function schiessen() ;hier neuen s\kugel usw End function if mousehit(1) then schiessen() Das ist erstens leichter zu lesen und zu verstehen, und auserdem könnte es sogar sein das das deinen Fehler behebt! Auserdem solltest du die s\kugel-entitys auch irgendwann wieder freigeben! |
||
Der Optimist: "Das Glas ist halb voll"
Der Pessimist: "Das Glas ist halb leer" Der Ingenieur: "Das Glas ist doppelt so groß wie es sein müsste" |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group