Autor |
Beitrag |
teddy500
Hält's aus hier
Beiträge: 7
|
Verfasst: Sa 17.03.07 16:17
hi leute,
habe ein problem.
bin nicht der beste in informatik hab aber 5. prüfungsfach und muss ein programm schreiben.
habe mir überlegt ping pong zu nehmen.
PROBLEM: wie bewege ich das image über die tastatur ? (soll der schläger sein)
.....................bitte helft mir............
|
|
Xion
      

Beiträge: 1952
Erhaltene Danke: 128
Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
|
Verfasst: Sa 17.03.07 16:20
OnKeyPress=>wenns <- ist dann Img.Left-1, bei -> +1 (<- = 37 , -> = 39)  Informatik als 5.prüfungsfach  bei uns gibts nichtmal nen Grundkurs
_________________ a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
|
|
hui1991
      
Beiträge: 433
Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
|
Verfasst: Sa 17.03.07 18:28
Ich würde net Ping Pong nehmen.
Habe mich daran versucht, aber naja...
Versuche doch lieber nen Memory mit Karten auf und zu decken ^^
8x8 mit 32 verschiedenen Bildern wovon 2 immer gleich sind.
Das denke ich geht mit einem Array wenn du ein Object erstellst ganz einfach.
TKarte oder so.
Davon machste ein Array und noch a weng Programmieren.
Den style verbessern und tada haste was ganz feines.
Naja du deiner eigentlichen Frage ist es am besten, wenn du die Tasten mit KeyDown abfängst.
Sonst fällt mir nichts ein. Oder nach einer bestimmten Zeit schauen ob die entsprechende Taste gedrückt wurde.
MfG
hui1991
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mo 19.03.07 10:42
ey jungs ganz ganz langsam....
ich bin ahnungslos!!!
wie mache ich dass mit dem Image???
meine form ist mein spielfeld.
und hier eine kleine skizze wie es aussehen soll.
Bitte um hilfe!!!!!!!!!!1
Einloggen, um Attachments anzusehen!
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Di 20.03.07 18:11
Hallo! Da ich grad mein Delphi installier, ich aber trotzdem antworten will und ich nicht weiß, ob das Image ein OnKey-Press-Ereignis hat: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TImage.onKeyPress(Key: Char; Sender: TObject); const pos: integer = 2; begin; if key = VK_UP then begin if MeinBild.top+pos >= (MeinForm.Top+5 ) then MeinBild.top:= MeinBild.top + pos; end;
if key = VK_DOWN then begin if (MeinBild.top+MeinBild.height)-pos <= (MeinForm.Height+5 ) then MeinBild.top:= MeinBild.top - pos; end; end; | Wenn du kurz wartest, programmier ich schnell n BeispielLG Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 20.03.07 18:50
Titel: DER DANK
herzlichen dank für deinen quelltext!
wenn du das mit bsp hinkriegebn würdest waere ich dir sehr sehr dankbar.....
muss jetzt leider weg, aber bin spätestens morgen wieder on.
bis dann viel spaß noch beim programmieren.....
|
|
Shorty
      
Beiträge: 107
Win XP, Ubuntu 8.04
Delphi 7 Prof., Delphi 2005 Pers.
|
Verfasst: Di 20.03.07 20:02
Und hättest du mal nach PONG gesucht, hättest du meinen Pong-Klon in der Open-Source-Spalte entdeckt, das ist soweit komplett und mit Quelltext 
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 21.03.07 15:23
alles klar ich danke dir werd mir das mal angucken.
hoffentlich werd daraus schlau...
falls nicht hoert ihr bald wieder was von mir....
danke
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Mi 21.03.07 15:53
teddy500 hat folgendes geschrieben: | bin nicht der beste in informatik hab aber 5. prüfungsfach und muss ein programm schreiben.
habe mir überlegt ping pong zu nehmen.
|
Nur so, Info 5. Prüfungsfach!! GEIL! Echt ne tolle Sache! Aber dann PingPong ??? Du bist doch auf dem Gymnasium?
Also PingPong kann jeder nach spätestens einem halben Jahr selber schreiben!
Lass dir lieber was komplexeres einfallen!
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 23.03.07 13:34
Titel: !!!VERY IMPORTANT!!!
hey jungs neues bzw altes problem!!
ich zeig euch die unit und stell dazu ein paar fragen.
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: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77:
| unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Balken_1: TImage; Balken_2: TImage; Ball: TImage; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject); private public end; var Form1: TForm1; var Key: Word; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Image1.Canvas.Brush.Color:=clgreen; Image1.Canvas.rectangle(0,0,Image1.Width,Image1.Height); Balken_1.Canvas.Brush.Color := clblack; Balken_1.Canvas.Rectangle(0,0,Balken_1.Width,Balken_1.Height); Balken_2.Canvas.Brush.Color := clblack; Balken_2.Canvas.Rectangle(0,0,Balken_2.Width,Balken_2.Height); ball.Canvas.Brush.Color:=clskyblue; ball.canvas.Rectangle(0,0,ball.Width,ball.height); end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of 68 : timer1.Enabled:=true; 87 : begin if balken_1.top >= Image1.top then Balken_1.Top := Balken_1.Top - 10 ; end ; 83 : begin
if (Balken_1.top + Balken_1.height) <= (Image1.top + Image1.height) then Balken_1.Top := Balken_1.Top + 10; end; VK_UP : begin if balken_2.Top >= Image1.Top then Balken_2.Top := Balken_2.Top - 10; end; VK_DOWN : begin if (Balken_2.Top + balken_2.Height) <= (Image1.Top + Image1.Height) then Balken_2.Top := Balken_2.Top + 10; end; VK_ESCAPE : close; end; end; "SO AB HIER GEHTS LOS!" procedure TForm1.Timer1Timer(Sender: TObject); var i : integer; begin i:=10; While ((ball.Left)+(ball.Width)) < (balken_2.left) do ball.left:=ball.left + (i) ; if ((ball.Left)+(ball.Width)) >= (balken_2.left) then begin repeat ball.left:=ball.left - i ; ball.Top:=ball.Top - 0; until (ball.left) < ((balken_1.left)+(balken_1.Width)); end; end; end. |
SO 1) WIE SAG ICH DAS DER BALL IMMER AM SCHLÄGER(BALKEN_1) STARTET????
2) ABPRALLEN AM SCHLÄGER UND ABPRALLEN AN WAND????
3) ABBRUCH BEDINGUNG & NEU START???
WENN IHR MIR DA HELFEN KÖNNTET DAS WÄR SEHR NETT
Moderiert von Gausi: Delphi-Tags hinzugefügt
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 23.03.07 13:37
Drück mal auf Capslock und verwende die delphi Tags 
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 23.03.07 13:38
sorry der ball soll nicht immer an schläger 1 starten sondern wenn der rechte schläger den ball nicht bekommt dann soll der ball am 2. schläger starten???
hilffe
|
|
teddy500 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 23.03.07 13:40
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: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Image1: TImage; Balken_1: TImage; Balken_2: TImage; Ball: TImage; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Timer1Timer(Sender: TObject);
private public end;
var Form1: TForm1; var Key: Word; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin Image1.Canvas.Brush.Color:=clgreen; Image1.Canvas.rectangle(0,0,Image1.Width,Image1.Height); Balken_1.Canvas.Brush.Color := clblack; Balken_1.Canvas.Rectangle(0,0,Balken_1.Width,Balken_1.Height); Balken_2.Canvas.Brush.Color := clblack; Balken_2.Canvas.Rectangle(0,0,Balken_2.Width,Balken_2.Height); ball.Canvas.Brush.Color:=clskyblue; ball.canvas.Rectangle(0,0,ball.Width,ball.height); end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of 68 : timer1.Enabled:=true; 87 : begin if balken_1.top >= Image1.top then Balken_1.Top := Balken_1.Top - 10 ; end ; 83 : begin if (Balken_1.top + Balken_1.height) <= (Image1.top + Image1.height) then Balken_1.Top := Balken_1.Top + 10; end; VK_UP : begin if balken_2.Top >= Image1.Top then Balken_2.Top := Balken_2.Top - 10; end; VK_DOWN : begin if (Balken_2.Top + balken_2.Height) <= (Image1.Top + Image1.Height) then Balken_2.Top := Balken_2.Top + 10; end; VK_ESCAPE : close; end;
end; procedure TForm1.Timer1Timer(Sender: TObject); var i : integer; begin i:=10; while ((ball.Left)+(ball.Width)) < (balken_2.left) do
ball.left:=ball.left + (i) ;
if ((ball.Left)+(ball.Width)) >= (balken_2.left) then begin repeat ball.left:=ball.left - i ; ball.Top:=ball.Top - 0;
until (ball.left) < ((balken_1.left)+(balken_1.Width));
end;
end;
end. |
Moderiert von Gausi: Delphi-Tags hinzugefügt
|
|
|