Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - images springen lassen
Delphi-Zone - Fr 24.09.10 17:22
Titel: images springen lassen
Hallo,
Ich hab ein kleines 2d game gemacht,
Ich wollte das meine figur (images)
springt.
aber wie mach ich das? es kann bisher nach lings und rechts laufen.
und wenn ich es versuche hochspringen zu lassen, denn bleibt es oben.
bitte um hilfe,
gruß tom
jaenicke - Fr 24.09.10 17:40
Du hast in Zeile 2199 vergessen die Figur wieder nach unten zu bewegen...
Delphi-Zone - Fr 24.09.10 17:45
1. hahahah witzig 2199^^
2. ja, wie beweg ich den nach unten? mit welchem befehl^?
Gausi - Fr 24.09.10 17:47
Um das Ding hochzukriegen, hast du sicherlich irgendwo ein image1.Top := image1.Top - 1; im Code. Wenn du das Bild wieder unten haben willst, würde sich doch eine der anderen drei Grundrechenarten anbieten, oder? ;-)
Delphi-Zone - Fr 24.09.10 17:48
-.- wenn ich ihn aber oben hab und denn wieder +1 anstatt -1 nehme bleibt er unten und bewegt sich garnicht
Gausi - Fr 24.09.10 17:51
Achso... ;-)
Dann würde ich das mit einem Timer machen. Beim Hochspringen aktivierst du den, beim runterspringen wird der wieder abgeschaltet (Eigenschaft Active). Und im OnTimer-Event setzt du das Bild wieder runter.
Delphi-Zone - Fr 24.09.10 17:57
ähmheißt das active control?
Gausi - Fr 24.09.10 18:00
Upps, mein Fehler. :oops:
Ich meinte enabled. Das ist eine Eigenschaft der TTimer-Komponente, die du dafür auf die Form packen musst.
Delphi-Zone - Fr 24.09.10 18:07
also enabled ist jetzt auf true, und jetzt was muss ich schreiben.
So also wenn man jetzt pfeiltaste oben drückt,ngeht er -50 , (nach oben)
Und bleibt da, ich muss jetzt doppelklick auf Ttimer machen, und den öffnet sich ja die prozedur.
so weit bin ich. wie gehts jetzt weiter?
gruß tom
Gausi - Fr 24.09.10 18:13
Da gehört dann entsprechend ein + 50 rein. ,-)
Zur Erklärung: Wenn der Timer "enabled" ist, wird immer nach "Interval"-vielen Millisekunden der Code ausgeführt, der durch das OnTimer-Event festgelegt wird. Wenn man etwas nur einmal ausgeführt haben will, dann setzt man im OnTimer-Event die Eigenschaft Enabled wieder auf false.
Delphi-Zone - Fr 24.09.10 18:28
Hmmmmm, irgendwie stimmt da noch was nicht. er bleibt immernoch oben.
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: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66:
| unit feld1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image7: TImage; Image8: TImage; Image6: TImage; Timer1: TTimer; procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_LEFT: begin Image7.Left := Image7.Left - 5; image8.left := image7.Left - 5; image7.Visible := false; image8.Visible := true; Key := 0; end; VK_RIGHT: begin Image7.Left := Image7.Left + 5; image8.left := image7.Left + 5; image7.Visible := true; image8.Visible := false; Key := 0; end; VK_UP: begin image7.Top := image7.Top -50; image8.Top := image8.Top -50; end; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin image7.Top := image7.Top +50; image8.Top := image8.Top +50; end;
end. |
Moderiert von
Narses: Delphi-Tags hinzugefügt
platzwart - Fr 24.09.10 18:41
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| ... VK_UP: begin image7.Top := image7.Top -50; image8.Top := image8.Top -50; end; VK_DOWN: begin image7.Top := image7.Top +50; image8.Top := image8.Top +50; end; ... |
?!?
Delphi-Zone - Fr 24.09.10 18:47
ja, hab ich rausgenommen. sry^^
aber das ändert nichts an meinem problem.....
platzwart - Fr 24.09.10 18:55
Warum nicht reingenommen?
In deinem Programm sagst du, was gemacht werden soll, wenn man nach oben/links/rechts drückt. Aber was bei Taste_Runter gemacht werden soll, lässt du weg. Soll der PC raten, was geschehen soll?
Delphi-Zone - Fr 24.09.10 19:04
ja, aber er fällt den nicht von selber runter?!
und das soll er ja.
platzwart - Fr 24.09.10 19:06
Achso, von alleine, sorry.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!