AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi PingPong spiel schulprojekt help

Ein Thema von Travis · begonnen am 18. Mai 2006 · letzter Beitrag vom 22. Mai 2006
Antwort Antwort
Travis

Registriert seit: 16. Mai 2006
11 Beiträge
 
#1

Delphi PingPong spiel schulprojekt help

  Alt 18. Mai 2006, 01:21
hallo
hab ein problem mit meinen delphi projekt was ein schulprojekt ist und wichtig für meine zensur ist =)
also ich hab shape komponente genommen für die balken von den der ball abprallen soll jedoch prallt der ball vom einen garnicht ab und vom anderen erst wenn er von links kommt da ich nur noch knapp 2 wochen zeit hab wollt ich fragen ob ihr vielleicht eine lösung wisst wer sehr nett schonma danke im vorraus ich poste ma quellcode
vielleicht seht ihr ja noch etwas was ich verbessern könnt =)
Delphi-Quellcode:
unit USpiel;

interface

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

type
  TFSpiel = class(TForm)
    Spielfeld: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Spieler1: TShape;
    spieler2: TShape;
    Sh_ball: TShape;
    Timer_ball: TTimer;
    Label5: TLabel;
    procedure Label5Click(Sender: TObject);
    procedure Timer_ballTimer(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Shape2ContextPopup(Sender: TObject; MousePos: TPoint;
      var Key: Word; Shift: TShiftState);
    procedure Shape1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Key: Char);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  const
   links = 2;
   rechts = 1;
var
    FSpiel: TFSpiel;
  Balltop, Ballleft, Richtung, LeftStep, TopStep :Integer;

implementation
{$R *.dfm}

procedure TFSpiel.Shape1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Key: Char);
begin
  case key of
     'w' : begin
             Spieler1.Top := Spieler1.Top-12;
           end;
     's' : begin
             Spieler1.Top := Spieler1.Top+12;
           end;
end;
end;

procedure TFSpiel.Shape2ContextPopup(Sender: TObject; MousePos: TPoint;
  var Key: Word; Shift: TShiftState);
begin
  case key of
    vk_up : begin
      Spieler2.Top := spieler2.Top-12;
    end;
    vk_down : begin
      Spieler2.Top := Spieler2.Top+12;
    end;
end;
end;

procedure TFSpiel.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  case key of
    vk_up : begin
      if Spieler2.Top >=55 then begin
       spieler2.Top := spieler2.top-12;
            end;
                          end;
    vk_down : begin
      if Spieler2.Top <=348 then begin
       Spieler2.Top := spieler2.top+12;
            end;
                            end;
end;
end;

procedure TFSpiel.FormKeyPress(Sender: TObject; var Key: Char);
 begin
  case key of
    'w' : begin
             if spieler1.top>=55 then begin
               spieler1.Top := spieler1.Top-12;
             end;
           end;
     's' : begin
              if spieler1.Top<=348 then begin
                spieler1.Top := spieler1.Top+12;
          end;
          end;
 end;
end;

procedure TFSpiel.Timer_ballTimer(Sender: TObject);
begin
  Sh_Ball.Visible:=true;

  if TopStep<0 then {Ball bewegt sich nach oben}
  begin
    if sh_Ball.Top <=49 then TopStep:=TopStep*(-1); {Ball trifft oben, Richtung umdrehen}
  end
  else {TopStep>=0, Ball bewegt sich nach unten}
  begin
    if sh_Ball.Top >=390 then TopStep:=TopStep*(-1); {Ball trifft unten, Richtung umdrehen}
  end;
  sh_Ball.Top := sh_Ball.top+TopStep;
  if LeftStep<0 then {Richtung=links}
  begin
    if sh_Ball.Left <=44-(sh_ball.width) then begin
       Punkte_Zaehlen(SpRechts);
      LeftStep:=Leftstep*(-1);
    end;
  end
  else {Richtung=rechts}
  begin
    if sh_Ball.Left >=672-(sh_ball.width) then LeftStep:=Leftstep*(-1);
    //ab hier abprallen von balken
    if (sh_ball.left<spieler1.left+spieler1.width) and (sh_ball.top>spieler1.top) and
 (sh_ball.top+sh_ball.height<spieler1.top+spieler1.height) then
  LeftStep:=Leftstep*(-1);
if (sh_ball.left+sh_ball.width>spieler2.left) and (sh_ball.top>spieler2.top) and
(sh_ball.top+sh_ball.height<spieler2.top+spieler2.height) then
  TopStep:=TopStep*(-1);
  end;
  //ende abprallen von balken
  sh_Ball.Left := sh_Ball.left+LeftStep;
end;

procedure TFSpiel.Label5Click(Sender: TObject);
var i: Integer;
     Winkel : real;
     Richtung : extended;

begin

   Timer_Ball.Enabled := true;
   randomize;
   LeftStep :=5*(random(4)+1);
   Winkel :=random(360)+1;
   if Winkel>180 then LeftStep:=LeftStep*(-1);

   Winkel:=Winkel*Pi/180;
   TopStep:=trunc(10*cos(Winkel));
   Timer_Ball.Interval:=5*(random(10)+1);
   if timer_ball.Interval <60 then timer_ball.Interval:=40;
   Ballleft:= random(540)+40;
   Balltop:= random(150)+50;
      sh_Ball.Left := Ballleft;
       sh_Ball.Top := Balltop;

end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Delphi PingPong spiel schulprojekt help

  Alt 18. Mai 2006, 07:18
schicke mir mal die Aufgabe auf einem 100 Euronen-Schein, ich kann deine Quelle so nicht lesen

P S:Wer soll die Hausaufgaben machen
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Delphi PingPong spiel schulprojekt help

  Alt 18. Mai 2006, 10:48
In deinem Block "Richtung links" ist doch gar kein Code für das Abprallen.... Wieso sollte der Ball das also tun...
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Delphi PingPong spiel schulprojekt help

  Alt 18. Mai 2006, 13:58
Für die richtig Faulen, Anwesende Ausgenommen, gigt es auch eine Suchfunktion. Mit Hilfe des Suchwortes "Pong" oder "Phong" sollte sich etwas erreichen lassen.
Mann muss den Code dann nurnoch durchdenken und Nachvollziehen können...

Keine weiteren Hilfestellungen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Travis

Registriert seit: 16. Mai 2006
11 Beiträge
 
#5

Re: Delphi PingPong spiel schulprojekt help

  Alt 19. Mai 2006, 21:15
hmm naja thx
delphi is halt net ganz so meine stärke und tu mich ziemlich schwer aber naja dann werd ich wohl doch wieder ganz lange nachdenken müssn ^^
  Mit Zitat antworten Zitat
AndiSt

Registriert seit: 18. Mai 2006
4 Beiträge
 
#6

Re: Delphi PingPong spiel schulprojekt help

  Alt 22. Mai 2006, 11:12
ich hätte es einfach mit einer Mainschleife gemacht wie man z.B. in den meisten Basic Programmiersprachen benutzt. Das ist zwar net sehr elegant aber das Programm/Spiel was du machen musst ist ja auch nicht gerade das schwerste... Also unnötig Kompley machn ist auch net das wahre
  Mit Zitat antworten Zitat
AndiSt

Registriert seit: 18. Mai 2006
4 Beiträge
 
#7

Re: Delphi PingPong spiel schulprojekt help

  Alt 22. Mai 2006, 11:14
ausserdem ist es net sehr günstig sowas im Forum nachzusehen, da hier sowieso keiner deinen Quelltext auf anhib durchschaut und ich bezweifle stark das sich Leute die Zeit nehmen dafür
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Delphi PingPong spiel schulprojekt help

  Alt 22. Mai 2006, 11:32
@AndiSt, du kannst (deine) Beiträge editieren. Doppelposts sind hier nicht gern gesehen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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