AGB  ·  Datenschutz  ·  Impressum  







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

Ball soll abprallen!

Ein Thema von OMEGA · begonnen am 21. Jun 2006 · letzter Beitrag vom 21. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
OMEGA

Registriert seit: 19. Jun 2006
5 Beiträge
 
#1

Ball soll abprallen!

  Alt 21. Jun 2006, 21:26
Ich brauche dringend Hilfe. Wie bringe ich einem Ball dazu von einem Rechteck abzuprallen.
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:28
Bemühmal die Forensuche es gibt viele solche beiträge...
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:46
Du nimmst einen Ball, wirfst ihn gegen die Wand und er sollte abprallen...ne im Ernst: Code?
Stefan Hueg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:48
Omega, wie gesagt (anderer Thread), um dir sagen zukönnen, was an deinem Code falsch ist, müßten wir ihn kennen. Stell ihn hier ein und wir versuchen die "Schnelle Hilfe" zu geben.
Markus Kinzler
  Mit Zitat antworten Zitat
OMEGA

Registriert seit: 19. Jun 2006
5 Beiträge
 
#5

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:49
Delphi-Quellcode:
if(s>=10)
        then
                begin form1.PaintBox1.canvas.pen.color:=clyellow;
      form1.PaintBox1.canvas.brush.color:=clred;
      form1.PaintBox1.canvas.rectangle(200,300,300,400);
jetzt soll er abprallen.

[edit=SirThornberry]Delphi-Tags ergänzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:52
wie bewegst du den Ball bisher? mit einem Timer? Letzendlich musst du prüfen ob die Ball wenn du ihn bewegen würdest über das Ziel hinaus wäre. Ist das der Fall kannst du die Bewegung nocht ausführen sondern musst in die entgegengesetzte Bewegung bewegen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
OMEGA

Registriert seit: 19. Jun 2006
5 Beiträge
 
#7

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 21:55
Hier ist der ganze Quelltext.

Delphi-Quellcode:
var
  Form1: TForm1;
  Stop:boolean=false;
  balken1mitte,balken1breite, balken2mitte,balken2breite: integer;
  loeschcolor,ballcolor,balken1color,balken2color:Tcolor;
  x,y:integer;

implementation

{$R *.dfm}

procedure TForm1.BeendenClick(Sender: TObject);
begin
stop:=true;
close;
end;

procedure TForm1.Start1Click(Sender: TObject);
var bx,by,s:integer;

begin
    randomize;
    stop:=false;

    //Ball
    x:=form1.PaintBox1.width div (random(3)+2);
    y:=form1.PaintBox1.Height div(random(3)+2);
    bx:=random(3)+2;
    by:=random(3)+2;

    //Balken 1
    balken1breite:=80;
    balken1mitte:=form1.PaintBox1.Height div 2;

    //Farben wählen
    loeschcolor:=form1.PaintBox1.color;
    ballcolor:= clwhite;
    balken1color:= clgreen;

    //Zähler
    s:=0;
    Anzahl.Caption:='Anzahl:' + inttostr(s);
    Anzahl.height:=25;
    Anzahl.Width:=100;

    repeat
// malen
      //Ball
      form1.PaintBox1.Canvas.pen.color:=ballcolor;
      form1.PaintBox1.Canvas.brush.color:=ballcolor;
      form1.PaintBox1.canvas.ellipse(x-15,y-15,x+15,y+15);
      //Balken 1
      form1.PaintBox1.canvas.pen.color:=balken1color;
      form1.PaintBox1.canvas.brush.color:=balken1color;
      form1.PaintBox1.canvas.rectangle(5,balken1mitte-balken1breite,25,balken1mitte+balken1breite);
      //warten
      sleep(4);
//übermalen
      // Ball
      form1.PaintBox1.canvas.pen.color:=loeschcolor;
      form1.PaintBox1.canvas.brush.color:=loeschcolor;
      form1.PaintBox1.canvas.rectangle(x-15,y-15,x+15,y+15);
      // Balken 1
      form1.PaintBox1.canvas.pen.color:=loeschcolor;
      form1.PaintBox1.canvas.brush.color:=loeschcolor;
      form1.PaintBox1.canvas.rectangle(5,balken1mitte-balken1breite,25,balken1mitte+balken1breite);
//neue Ballposition
      x:=x+bx;
      y:=y+by;

//abprallen
      //ball am rechten rand
      if (x> form1.PaintBox1.clientwidth-15)
          or (x<15)
      then
      begin
        bx:=-bx
      end;

      //balken
   if (x-15 <= 25)
      then
      begin
           if (y>balken1mitte-balken1breite)
           and (y<balken1mitte+balken1breite)
       then
          begin
          bx:=-bx+1; // Beschleunigung und richtungsänderung
          by:=by+1; // Beschleunigung
          s:=s+1; // anzahl +1
          Anzahl.caption:='Anzahl:' + inttostr(s);
          Anzahl.height:=25;
          Anzahl.Width:=100;
          end
       else
         begin x:=form1.PaintBox1.width div 2;
               y:=form1.PaintBox1.Height div 2;
               bx:=random(3)+2;
               by:=random(3)+2;
               showmessage('Du hast '+inttostr(s)+' Ballwechsel geschafft!');
               s:=0;
               Anzahl.Caption:='Anzahl:' + inttostr(s);
               Anzahl.height:=25;
               Anzahl.Width:=100;
        end;
        if(s>=10)
        then
                begin form1.PaintBox1.canvas.pen.color:=clyellow;
      form1.PaintBox1.canvas.brush.color:=clred;
      form1.PaintBox1.canvas.rectangle(200,300,300,400);
      end;


Hier gehts nicht weiter



         // oben und unten
   if (y+15 > form1.PaintBox1.clientheight)
         or (y-15 < 0)
      then
       begin
        by:=-by
       end;

      application.ProcessMessages;
    until stop=true;

end;
Das wars dann eigentlich

[edit=Admin]Code in Delphi-Tags gesetzt. Künftig bitte selber machen, danke. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

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

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 22:00
Siehe da, BouncingBall
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
OMEGA

Registriert seit: 19. Jun 2006
5 Beiträge
 
#9

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 22:08
ich bräuchte bis morgen Früh ein Schöne Lösung. Ich bekomm ja sonst überall das abprallen hin nur eben nicht an diesem besagtem Rechteck.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Ball soll abprallen!

  Alt 21. Jun 2006, 22:22
Und was ist der Unterschied zwischen "überall" und dem "besagtem" Rechteck?
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:01 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