Hi ich hab ein kleines Problem.
Ich habe gerade angefangen mich bissl in DelphiX einzuarbeiten.
Dazu möchte ich ein kleines Shooter-Spiel programmieren, ein Raumschiff das halt Gegner abschiessen kann.
Die Steuerung des Schiffes bewerkstellige ich über DXInput und das funktioniert auch fehlerfrei, jetzt möchte ich aber noch schiessen können.
Dafür habe ich zuerst onkeydown benutzt und die Taste auf Control gelegt, aber immer wenn ich schiesse bleibt das Schiff solange stehen bis der Schuss (wie ich es haben wollte) von der Karte verschwunden ist.
Dann habe ich zu Testzwecken weil ich nur isUp,isRight,isDown,isLeft kenne schiessen zusätzlich auf isLeft gelegt, aber hier bleibt das Schiff nach'm schiessen stehen und lässt sich nicht mehr bewegen
Hier die Prozedur zum bewegen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer); begin DXDraw1.Surface.Fill(0); DXInput1.Update;
If isUp in Form1.DXInput1.States Then strave := strave -10;
If isDown in Form1.DXInput1.States Then strave := strave + 10;
If isLeft in Form1.DXInput1.States Then begin up := up -10; DXTimer2.Enabled:=true; end;
If isRight in Form1.DXInput1.States Then up := up +10;
IF up<=-100 Then up:=688; If up>=788 Then up:=-100; If strave<=-100 Then strave:=453; If strave>=553 Then strave:=-100; DXImageList1.Items[0].Draw(DXDraw1.Surface,up,strave,0); DXDraw1.Flip; end; |
Und hier die zum schiessen (mit DXInput auf isLeft):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.DXTimer2Timer(Sender: TObject; LagCount: Integer); begin DXInput1.Update; If isLeft in Form1.DXInput1.States Then begin upfire:=up+25; stravefire:=strave; repeat DXDraw1.Surface.Fill(0); stravefire:=stravefire - 5; DXImageList1.Items[0].Draw(DXDraw1.Surface,up,strave,0); DXImageList1.Items[1].Draw(DXDraw1.Surface,upfire,stravefire,0); DXDraw1.Flip; until stravefire = - 20; DXTimer2.Enabled:=false; end; end; |
Was muss ich anders machen, wo liegt mein Fehler?
(Bin neu und hab 0 Ahnung von DelphiX

)
Ich hoffe ihr könnt mir behilflich sein
P.S. Nicht wundern, ich habe up und strave verwechselt ^^
Moderiert von
tommie-lie: Quote- durch Delphi-Tags ersetzt