AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2d game:ping-pong

Ein Thema von mangaka · begonnen am 9. Apr 2005 · letzter Beitrag vom 9. Apr 2005
Antwort Antwort
Seite 4 von 4   « Erste     234   
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#31

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 13:20
Wieso, das Thema ist jetzt hoffentlich für immer beendet.
  Mit Zitat antworten Zitat
mangaka

Registriert seit: 9. Apr 2005
44 Beiträge
 
Delphi 7 Personal
 
#32

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 13:27
Ich versuche grad delphi von borland zu laden, mal sehn ob es klappt T_T

nachdem ich dann eure codes studiert habe kommen die nächsten fragen.


-ja ich mach neuen thread bei einer neune frage auf
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#33

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 13:30
kriegst du nicht, Thema ist jetzt beendet sonst wird hier gleich geschlossen.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#34

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 13:30
Zitat von mangaka:
sagt mal delphi 2005pe kriegt man nicht von borland.com/.de oda?
nur d7
Wie bereits gesagt: neue Frage -> neuer Thread. Um deine Frage aber zu beantworten: nein.
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#35

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 15:03
Hallo Mangaka,

ich weiß nicht genau, wie weit du dich mit Delphi auskennst, aber was du auf jeden Fall können solltest, um ein Ping-Pong spiel zu programmieren ist: Deklarieren eigener Klassen und das Zeichnen von Objekten auf der Canvas.
Dann solltest du dir erstmal generelle Gedanken zur Struktur deines Programms machen. Folgendes solltest du dir überlegen: Was für Variablen/ Objekte brauche ich für das Spiel? Was soll dann damit passieren?
Zu der ersten Frage: Du brauch zwei Schläger, und einen Ball. Der Ball muss ausserdem noch Informationen darüber haben, in welche Richtung er sich bewegt (Bewegungsvektor) gegebenenfalls, wie groß er ist, welche Farbe und so weiter, der Phantasie sind keine Grenzen gesetzt, absolut notwenig sind nur die Koordinaten und der Bewegungsvektor. Die beiden Schläger brauchen eine Position (obere Kante) und die Breite (Abstand Oberkante/Unterkante).
Was soll mit den Objekten passieren? Zuersteinmal müssen sie sich bewegen. Der Ball bewegt sich entlang seines Bewegungsvektors und prallt gegebenenfalls ab. Die Schläger bewegen sich auf Tastendruck. Danach müssen die Objekte noch auf den Bildschirm gezeichnet werden. Da das ganze in Echtzeit ablaufen soll, müssen diese Aktionen alle in einen Timer.
Soweit.
Das sind ersteinmal die Überlegungen, die man sich immer vorher machen muss. Die haben zwar erstmal nichts mit der Programmiersprache zu tun, sind aber mindestens genausowichtig, wie das Coden selbst.
Falls dir die obigen Überlegungen nicht weiterhelfen, dann versuch deine Schwierigkeiten im Detail weiter zu klären.

Grüße
Seniman
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 11. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#36

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 15:10
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Ball : TRect;
  BallSpeedX : integer = 5;
  BallSpeedY : integer = 5;
  dx : integer = 1;
  dy : integer = 1;
  BallHeight : integer = 30;
  BallWidth : integer = 30;

// offscreen, flickefrei
  Offscreen : TBitmap;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Caption := 'B_Ball';
 Width := 600;
 Height := 300;
 Ball := Rect(0,0,BallWidth,BallHeight);
 Timer1.Interval := 1;

 Offscreen := TBitmap.Create();
 with Offscreen do
 begin
  PixelFormat := pf32bit;
  Width := Screen.Width;
  Height := Screen.Height;
  Canvas.Brush.Color := clOlive;
  Canvas.Pen.Color := clBlack;
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
 var old : integer;
begin//
 FormPaint(Self);

 OffsetRect(Ball,dx * BallSpeedX,dy * BallSpeedY);

      // Korrektur bei Bandenkollision
      if (Ball.Left < 0) then // links
      begin
        dx := 1;
      end
      else if (Ball.Left + BallWidth > ClientRect.Right) then// rechts
      begin
        dx := -1;
      end;

      if (Ball.Top < 0) then // oben
      begin
        dy := 1;
      end
      else if (Ball.Top + BallHeight > ClientRect.Bottom) then// unten
      begin
        dy := -1;
      end;

 FormPaint(Self);
end;

procedure TForm1.FormPaint(Sender: TObject);
begin//
 with Offscreen do
 begin
  Canvas.Brush.Style := bsSolid;
  Canvas.Brush.Color := clOlive;
  Canvas.FillRect(ClientRect);
  Canvas.Brush.Style := bsClear;
  Canvas.Ellipse(Ball);
 end;
 BitBlt(Canvas.Handle,0,0,Width,Height,
        Offscreen.Canvas.Handle,0,0,SRCCOPY);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin//
 Offscreen.Free();
end;

end.
Und jetzt ist der Ball nicht mehr verzehrt.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#37

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 15:13
@mangaka: noch ein Beitrag außer Danke oder sowas und es zählt: ich hab früher auch Pong geproggt und hatte nur ein kleines Problem.
  Mit Zitat antworten Zitat
mangaka

Registriert seit: 9. Apr 2005
44 Beiträge
 
Delphi 7 Personal
 
#38

Re: 2d game:ping-pong

  Alt 9. Apr 2005, 15:25
hmmm.. danke für eure hilfe und seniman danke für deine grundsätzlichen überlegungen!
kann ich dich in icq kontaktieren?
hier meine icqno.:
173976608

Ich frag nur weil ich glaube das Nild_13 irgendwas gegen mich hat Oo
Der geht mir irgendwie langsam auf die nerven...


btw.: habe jetzt delphi7
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz