AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

reflektierender Ball - Hilfe!

Offene Frage von "Smokey002"
Ein Thema von Smokey002 · begonnen am 10. Apr 2010 · letzter Beitrag vom 11. Apr 2010
Antwort Antwort
Seite 1 von 3  1 23   
Smokey002

Registriert seit: 16. Mär 2010
6 Beiträge
 
#1

reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:34
hallo
Ich bin ein blutiger Anfänger, nur damit ich mir eventuelle Kommentare erspare
ich muss ein kleines Programm schreiben, das dafür sorgt das ein Ball an den Wänden einer Begrenzung (eine weiße quadratische shape) abprallt bzw nach dem Motto "Einfallswinkel=Ausfallswinkel" reflektiert wird.
Im Moment macht der Ball noch nicht das was ich von ihm will.

Delphi-Quellcode:

unit Uball;

interface

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

type
  TForm1 = class(TForm)
    sgrenze: TShape;
    sball: TShape;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  bx: Integer;
  by: integer;
implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
bx:=10;
by:=20;

       sball.left:=sball.left+bx;
       if sball.left < 0 then
          begin
               sball.left := 1;
               bx := -bx;
          end;
          if sball.left > sgrenze.width - sball.left then
          begin
          sball.left := sgrenze.width - sball.left;
          bx := -bx;
          end;

       sball.top := sball.top+by;
       if sball.top < 0 then
          begin
          sball.Top := 1;
          by := -by;
          end;
       if sball.top > sgrenze.height - sball.height then
          begin
          sball.top := sgrenze.height - sball.height;
          by := -by;
          end;

end;
end.
Ich bräuchte eure Hilfe!
Außerdem würde ich gerne eine dritte Shape als bewegliche Wand einbauen (Mousemove) um ein bisschen mit dem Ball herumzuspielen, weiß aber nicht wie ich das anstelle.

vielen Dank im Vorraus,

Smokey
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:36
Was macht das Programm bisher?
Das Problem könnten die großen Schrittweiten sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#3

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:38
Hast du dir schon mal mein Sample zu dem Thema angesehen ?
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:40
Zitat von Corpsman:
Hast du dir schon mal mein Sample zu dem Thema angesehen ?
Warum auch selber machen, wenn man gut kopieren kann
Markus Kinzler
  Mit Zitat antworten Zitat
LargoD

Registriert seit: 8. Jun 2007
42 Beiträge
 
#5

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:43
Das
bx:=10;
by:=20;
am Anfang der Timerroutine macht Dir natürlich die ganze Reflexion im nächsten Schritt wieder zunichte.

Gruß
Erich
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#6

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:45
Naja ich hoffe nicht das er alles Kopiert, aber ich finde es imme rfürterlich wenn ich da was von "Shape" lese, und dadie Kollision in dem Sample auch gleich berücksichtigt wird ....

Das zu schnelle bewegen hat übrigens u.U. das Tunneling Problem..
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
Smokey002

Registriert seit: 16. Mär 2010
6 Beiträge
 
#7

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:46
klar hab ich mir schon samples und beispiele angeschaut, nur kopieren will ich eigentlich nicht. Ich würde die Vorgehensweiße gerne selbst nachvollziehen.

Der Ball wird an der linken Wand einwandfrei und auch richtig reflektiert. Sobald er an die untere Wand kommt, bleibt er dort stehen und "zittert" so komisch, als ob er festhängt. Die rechte Wand erreicht der Ball erst gar nicht. Er dreht vorher schon um.
Ich weiß einfach nicht was falsch läuft.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:48
http://www.delphipraxis.net/internal...145796#1145796
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:51
Zitat von mkinzler:
http://www.delphipraxis.net/internal_redirect.php?p=1145796#1145796
dat war wohl nix
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Smokey002

Registriert seit: 16. Mär 2010
6 Beiträge
 
#10

Re: reflektierender Ball - Hilfe!

  Alt 10. Apr 2010, 15:51
Im Moment sieht das ganze so aus. Vielleicht wisst ihr dann was nicht korrekt ist.

--> im Anhang
Angehängte Dateien
Dateityp: exe pball_620.exe (292,5 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 14:11 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