AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Bitte um Hilfe bei Programm (Pong-Spiel, funktioniert nicht korrekt)
Thema durchsuchen
Ansicht
Themen-Optionen

Bitte um Hilfe bei Programm (Pong-Spiel, funktioniert nicht korrekt)

Ein Thema von TrevorFromGta · begonnen am 14. Jan 2014 · letzter Beitrag vom 14. Jan 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Bitte um Hilfe bei Programm (Pong-Spiel, funktioniert nicht korrekt)

  Alt 14. Jan 2014, 16:57
Wenn es jetzt noch formatiert wäre ...

z.B. so (bitte herauskopieren und in den ersten Beitrag setzen)

Delphi-Quellcode:
unit Unit1;

interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, ExtCtrls, StdCtrls, Menus;

  type
    TForm1 = class( TForm )
      Timer1 : TTimer;
      Shape1 : TShape;
      Shape2 : TShape;
      Shape3 : TShape;
      Timer2 : TTimer;
      court : TShape;
      MainMenu1 : TMainMenu;
      File1 : TMenuItem;
      NewGame1 : TMenuItem;
      Player1name1 : TMenuItem;
      Player2name1 : TMenuItem;
      HighScores1 : TMenuItem;
      Game1 : TMenuItem;
      Start1 : TMenuItem;
      Stop1 : TMenuItem;
      Pause1 : TMenuItem;
      Exit1 : TMenuItem;
      Shape4 : TShape;
      Label1 : TLabel;
      Label2 : TLabel;
      Label3 : TLabel;
      Label4 : TLabel;
      Details1 : TMenuItem;
      Author1 : TMenuItem;
      Howtoplay1 : TMenuItem;
      Shape5 : TShape;
      procedure Timer1Timer( Sender : TObject );
      procedure Timer2Timer( Sender : TObject );
      procedure FormKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState );
      procedure FormKeyPress( Sender : TObject; var Key : Char );
      procedure Start1Click( Sender : TObject );
      procedure Stop1Click( Sender : TObject );
      procedure Exit1Click( Sender : TObject );
      procedure Player1name1Click( Sender : TObject );
      procedure Player2name1Click( Sender : TObject );
      procedure Pause1Click( Sender : TObject );
      procedure NewGame1Click( Sender : TObject );
      procedure HighScores1Click( Sender : TObject );
      procedure Author1Click( Sender : TObject );
      procedure FormCreate( Sender : TObject );
      procedure Howtoplay1Click( Sender : TObject );

    private
      { Private declarations }
    public
      horiz : integer;
      horiz2 : integer;
      direction : integer;
      vert : integer;
      player1 : integer;
      player2 : integer;
    end;

  var
    Form1 : TForm1;

implementation

  uses
    Unit2, Unit3, Unit4, Unit5, Unit6;

{$R *.dfm}

  procedure TForm1.Timer1Timer( Sender : TObject );
    begin
      if ( player2 = 5 )
      then
        begin
          Timer1.Enabled := false;
          Timer2.Enabled := false;
          messagedlg( 'Player 2 has won', mtinformation, [mbok], 0 ); player1 := 0; player2 := 0;
        end;

      Timer1.Interval := 10;
      Timer2.Interval := 20;
      Timer2.Enabled := false;
      Shape3.Left := Shape3.Left - horiz;
      Shape3.top := Shape3.top + vert;

      if ( Shape3.Left < Shape1.Left )
      then
        begin
          player2 := player2 + 1;
          Timer1.Enabled := false;
          messagedlg( 'Player 2 has scored' + chr( 13 ) + 'Click to continue', mtinformation, [mbok], 0 );
          Shape3.Left := 240;
          Shape3.top := 144;
          Shape1.top := 152;
          Shape2.top := 152;
          horiz := 4;
          vert := 0;
          Timer1.Enabled := true;

        end;

      if ( Shape3.top >= Shape1.top ) and ( Shape3.top <= ( Shape1.top + Shape1.Height ) ) and ( vert = 0 )
      then
        vert := 2;

      if ( Shape3.top <= court.top )
      then
        vert := +2;
      if ( ( Shape3.top + Shape3.Height ) = 497 )
      then
        vert := -2;

      if ( ( Shape3.Left <= Shape1.Left + Shape1.width ) and ( Shape3.top >= Shape1.top - 10 ) and ( Shape3.top <= Shape1.top + Shape1.Height ) )
      then
        direction := 5;
      if direction = 1
      then
        Timer1.Enabled := false;
      Timer2.Enabled := true;
    end;

  procedure TForm1.Timer2Timer( Sender : TObject );
    begin
      if ( player1 = 15 )
      then
        begin
          Timer1.Enabled := false;
          Timer2.Enabled := false;
          messagedlg( 'Player 1 has won', mtinformation, [mbok], 0 ); player1 := 0; player2 := 0;
        end;
      Timer1.Interval := 20;
      Timer2.Interval := 10;
      Shape3.Left := Shape3.Left + horiz2;
      Shape3.top := Shape3.top + vert;
      Timer1.Enabled := false;

      if ( Shape3.Left > Shape2.Left )
      then
        begin
          player1 := player1 + 1;
          Timer2.Enabled := false;
          messagedlg( 'Player 1 has scored' + chr( 13 ) + 'Click to continue', mtinformation, [mbok], 0 );
          Shape3.Left := 240;
          Shape3.top := 144;
          Shape1.top := 152;
          Shape2.top := 152;
          horiz := 4;
          vert := 0;
          Timer2.Enabled := true;
        end;

      if ( Shape3.top >= Shape1.top ) and ( Shape3.top <= ( Shape1.top + Shape1.Height ) ) and ( vert = 0 )
      then
        vert := -2;

      if ( Shape3.top <= court.top )
      then
        vert := +2;
      if ( ( Shape3.top + Shape3.Height ) = 497 )
      then
        vert := -2;

      if ( ( Shape3.Left + Shape3.width >= Shape2.Left ) and ( Shape3.top >= Shape2.top - 10 ) and ( Shape3.top <= Shape2.top + Shape2.Height ) )
      then
        direction := 2;
      if direction = 2
      then
        Timer2.Enabled := false;
      Timer1.Enabled := true;

    end;

  procedure TForm1.FormKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState );
    begin
      if Key = vk_up
      then
        Shape1.top := Shape1.top - 15
      else if Key = vk_down
      then
        Shape1.top := Shape1.top + 15;

      if Key = vk_left
      then
        Shape1.Left := Shape1.Left - 15
      else if Key = vk_right
      then
        Shape1.Left := Shape1.Left + 15;
    end;

  procedure TForm1.FormKeyPress( Sender : TObject; var Key : Char );
    begin
      if Key = 's'
      then
        Shape2.top := Shape2.top - 15
      else if Key = 'x'
      then
        Shape2.top := Shape2.top + 15;
      if Key = 'a'
      then
        Shape2.Left := Shape2.Left - 15
      else if Key = 'd'
      then
        Shape2.Left := Shape2.Left + 15;
    end;

  procedure TForm1.Start1Click( Sender : TObject );
    begin
      with Form1 do
        horiz := 4;
      horiz2 := 4;
      vert := -2;
      Timer1.Enabled := true;
      Timer2.Enabled := false;
    end;

  procedure TForm1.Stop1Click( Sender : TObject );
    begin
      Timer1.Enabled := false;
      Timer2.Enabled := false;
      player1 := 0;
      player2 := 0;
    end;

  procedure TForm1.Exit1Click( Sender : TObject );
    begin
      Form1.Close;
    end;

  procedure TForm1.Player1name1Click( Sender : TObject );
    begin
      form2.visible := true;
    end;

  procedure TForm1.Player2name1Click( Sender : TObject );
    begin
      form3.visible := true;
    end;

  procedure TForm1.Pause1Click( Sender : TObject );
    begin
      Timer1.Enabled := false;
      Timer2.Enabled := false;

    end;

  procedure TForm1.NewGame1Click( Sender : TObject );
    begin
      player1 := 0;
      player2 := 0;
      Shape3.Left := 216;
      Shape3.top := 120;
      messagedlg( 'Get ready to play', mtinformation, [mbok], 0 );
      Timer1Timer( self );
    end;

  procedure TForm1.HighScores1Click( Sender : TObject );
    begin
      form4.visible := true;
    end;

  procedure TForm1.Author1Click( Sender : TObject );
    begin
      form5.visible := true;
    end;

  procedure TForm1.FormCreate( Sender : TObject );
    begin
      messagedlg( 'Get redy to play Martins Ping Pong Verion 1.0', mtinformation, [mbok], 0 );
      messagedlg( 'Remember it is first to 5 wins', mtinformation, [mbok], 0 );
    end;

  procedure TForm1.Howtoplay1Click( Sender : TObject );
    begin
      form6.visible := true;
    end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz