AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ping Pong Spiel vereinfacht.. Brauche aber trotzdem Hilfe!
Thema durchsuchen
Ansicht
Themen-Optionen

Ping Pong Spiel vereinfacht.. Brauche aber trotzdem Hilfe!

Ein Thema von leela · begonnen am 9. Jan 2005 · letzter Beitrag vom 12. Jan 2005
 
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#16

Re: Ping Pong Spiel vereinfacht.. Brauche aber trotzdem Hilf

  Alt 9. Jan 2005, 22:27
damit weitermachen!
viel spass!

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TSpielfeld = class(TForm)
    Bild: TImage;
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Timer1Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
  end;
    //type
    //tSpieler = class
    //x1,x2,y1,y2:Single;
    //farbe1:tColor;
    //procedure init(f1Neu:tColor;x1Neu,x2Neu,y1Neu,y2Neu:Single);
    //end;
type
  tBall = class
    x,y,vx,vy,r:Single;
    farbe:tColor;
    procedure init(fNeu:tColor;xNeu,yNeu,vxNeu,vyNeu,rNeu:Single);
    procedure ZeigeDich;
    procedure BewegeDich;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Spielfeld: TSpielfeld;
  ball:tBall;
  //spieler:tSpieler;
  punkt:integer = 0;
  BallimSpiel:boolean = false; // =true wenn ball im spiel ist!

implementation

{$R *.dfm}

procedure tBall.init(fNeu:tColor;xNeu,yNeu,vxNeu,vyNeu,rNeu:Single);
begin
  farbe:= fNeu;
  r:= rNeu;
  x:= xNeu;
  y:= yNeu;
  vx:= vxNeu;
  vy:=vyNeu;
end;

//procedure tSpieler.init(f1Neu:tColor;x1Neu,x2Neu,y1Neu,y2Neu:Single);
//begin
//farbe1:= f1Neu;
//x1:= x1Neu;
//x2:= x2Neu;
//y1:= y1Neu;
//y2:= y2Neu;
//end;

procedure tBall.ZeigeDich;
begin
  with Spielfeld.Bild.Canvas do
  begin
    brush.color:= clRed;
    ellipse(Round (x-r),Round(y-r),Round(x+r),Round(y+r))
  end;
end;

procedure tBall.BewegeDich;
begin
  x:=x+vx;
  y:=y+vy;
  //punkt:=0; hier nicht da sonst immer wieder auf null!
  with Spielfeld.Bild do
  begin
    if (x>width+r-1) then // + r damit er aus dem bild fliegt
    begin
      inc(punkt); // punkt +1
      Spielfeld.Label3.Caption:=IntToStr(punkt);
      BallimSpiel:=false; // es kann ein neuer ball gestartet werden
    end;
    if x<r+1 then
    begin
      x:=r+1;
      vx:=-vx
    end;
    if (y>height-r-1) then
    begin
      y:= height-r-1;
      vy:=-vy
    end;
    if y< r+1 then
    begin
      y := r+1;
      vy:= -vy
    end
  end
end;

procedure TSpielfeld.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case key of
    vk_space:
    begin
      if BallimSpiel then
        exit;
      with Bild.Canvas do
      begin
        brush.Color:= clWhite;
        rectangle(0,0,Bild.width,Bild.height);
        pen.width:=1;
        brush.style:=bsSolid;
        pen.Mode:= pmNOTXOR;
      end;
      BallimSpiel:=true;
      Ball.init(clWhite,100,200,5,5,15);
      Ball.ZeigeDich;
    end;
    vk_down: // "runtertaste gedrückt"
    begin
      // paddle bewegen
    end;
    vk_up: // "hochtaste gedrückt"
    begin
      // paddle bewegen
    end;
  end;
end;

procedure TSpielfeld.Timer1Timer(Sender:TObject);
begin
  if BallimSpiel then
  begin
    Ball.ZeigeDich;
    Ball.BewegeDich;
    Ball.ZeigeDich;
  end;
end;

procedure TSpielfeld.FormCreate(Sender: TObject); //zeichnen vom Spieler
begin
  with Bild.Canvas do
  begin
    brush.Color:= clBlue;
    rectangle(670,100,680,210);
    pen.width:=1;
    brush.style:=bsSolid;
    pen.Mode:= pmNOTXOR;
  end;
end;

initialization
  randomize;
  Ball:= tBall.Create;

Finalization
  Ball.Destroy

end.
  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 10:41 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