Autor Beitrag
teddy500
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
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)
BeitragVerfasst: Sa 17.03.07 16:20 
OnKeyPress=>wenns <- ist dann Img.Left-1, bei -> +1 (<- = 37 , -> = 39)

:motz: :eyecrazy: :bawling: Informatik als 5.prüfungsfach :bawling: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 433

Windows XP, WIndows Vista
Turbo Delphi Explorer| Delphi, PHP,Blitzbasic
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: 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:

ausblenden 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;
 { Oben und unten einen Rand lassen - würd ich so machen }
 
 { nach Oben }
 if key = VK_UP {don´t know} then
 begin
  //Bild nach oben bewegen
  if MeinBild.top+pos >= (MeinForm.Top+5 { +5 entspricht Rand }then
   MeinBild.top:= MeinBild.top + pos; 
 end;

 { nach Unten }
 if key = VK_DOWN {don´t know} then
 begin
  //Bild nach oben bewegen
  if (MeinBild.top+MeinBild.height)-pos <= (MeinForm.Height+5 {= Rand }then
   MeinBild.top:= MeinBild.top - pos; 
 end;
 
end;


Wenn du kurz wartest, programmier ich schnell n Beispiel

LG
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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 107

Win XP, Ubuntu 8.04
Delphi 7 Prof., Delphi 2005 Pers.
BeitragVerfasst: Di 20.03.07 20:02 
Und hättest du mal nach Suche in: Delphi-Forum PONG gesucht, hättest du meinen Pong-Klon in der Open-Source-Spalte entdeckt, das ist soweit komplett und mit Quelltext :wink:
teddy500 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
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
BeitragVerfasst: Mi 21.03.07 15:53 
user profile iconteddy500 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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.

ausblenden volle Höhe 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:
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
    { Private declarations }
  public
    { Public declarations }
  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 ;   //Taste W
         end  ;
    83 : begin

          if (Balken_1.top + Balken_1.height) <= (Image1.top + Image1.height) then
         Balken_1.Top := Balken_1.Top + 10;   //Taste S
         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 user profile iconGausi: Delphi-Tags hinzugefügt
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 23.03.07 13:40 
ausblenden volle Höhe 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:
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
    { Private declarations }
  public
    { Public declarations }
  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 ;   //Taste W
         end  ;
    83 : begin
          if (Balken_1.top + Balken_1.height) <= (Image1.top + Image1.height) then
         Balken_1.Top := Balken_1.Top + 10;   //Taste S
         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));


//Startbedingung wo ist der Ball???
//abprallen

end;

end;


end.


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt