Delphi Neue Klassen und Objekte programmieren (mit mSum)

Dro'Doog

Lieutenant
Registriert
März 2007
Beiträge
705
Wir sollen mit Hilfe (oder unter dem Zwang?) von mSum in Delphi eine Billard-Simulation programmieren.

Dazu brauche ich zwei neue Klassen, Kugel und Tisch, ... also ich bin soweit, dass ich weiß, dass ich zwei neue .pas erstellen muss, ...

Aber wie kann ich in der neuen unit.pas neue Funktionen einfügen? Ich dachte daran, über procedure neue Funktionen zu definieren, ... aber wie mach ich das genau?
 
Auch in der Oberstufe Informatik genommen? Bin gerade in der 11.1 und habe das wohl noch vor mir... ;)

So genau weiß ich jetzt auch nicht, wie das funktioniert. Ich glaube "procedure" kannst nur in Verbindung mit einer grafischen Oberfläche benutzen. Für programm-internes würde ich "function" nehmen; du willst ja neue Funktionen definieren. Wie man allerdings Klassen in Delphi erstellt...

Wie ist es denn mit google?

http://www.google.de/search?hl=de&c...hi+-+neue+klassen+definieren&btnG=Suche&meta=
 
Unser Infolehrer ist der Super-DAU, ... erste Stunde in der 9, ... der hatte kein Plan wie der sich einloggt, ... naja, ... jetzt in 11.1 weiß er es zumindest.

Ich schau nmal, was mir Google sagt, ... bis jetzt habe ich schon eine Idee, ...

Wir sollten schonmal einen Kreis bewegen, ... den Code habe ich noch als procedure rumfliegen, ... also ich bräuchte jetzt noch nichtmal eine neue Klasse dafür, ... den Kreis könnte ich dann als "leere" Kugel nehmen, die in einem Winkel "alpha" drehen lassen, und wenn die dem Bildschirmrand r = Raidus nah ist, sie um alpha + Winkel (den muss ich leider noch bestimmen) drehen lassen, wobei die Kugel dann realistisch apprallen müsste, ... hat wer eine andere Idee? Bzw. hat eine Idee wie man das umsetzt?
 
Doppel-Post ^^

Code:
program Kugel_apprallen;

uses
  mSum;

var pen : buntstift;
    screen : bildschirm;
    mouse : maus;
    board : tastatur;
    q : integer;            //Quit
    r : integer;            //Raidus
    a : integer;            //Winkel (aplha)
    v : integer;            //Geschwindigkeit

    procedure Kugel;
     begin
      with pen do
       begin
        runter;
        zeichneKreis(r);
        warte(1);
        radiere;
        zeichneKreis(r);
        hoch;
        normal;
        bewegeUm(v);
       end;
     end;

begin
  //Initialisierung
  screen := bildschirm.init;
  pen := buntstift.init;
  mouse := maus.init;
  board := tastatur.init;
  q := 0;
  r := 10;
  a := 30;
  v := 1;

  //Kugel_Apprallen!
  pen.bewegeBis(r,384);
  pen.dreheUm(a);

   while q = 0 do
       begin

        while (pen.hPosition <= screen.breite - r) AND (pen.vPosition <= screen.hoehe - r) do
         begin
          Kugel;
         end;
          pen.dreheUm(180 - a);
        while pen.hPosition >= r do
           begin
            Kugel;
           end;
          pen.dreheUm(a + 180);
       end;
     if board.wurdeGedrueckt then
      if board.zeichen = 'q' then
       q := 1;

  //Freigabe
  screen.gibFrei;
  pen.gibFrei;
  mouse.gibFrei;
  board.gibFrei;
end.

So sieht's aus, ... ich will das ganze über "q" beenden, weil "esc" ist irgendwie nicht schön, ... aber wo muss ich die letzten drei Zeilen einfügen, damit das geht? Habe eig. alles ausprobiert, ...

Also die Kugel soll innerhalb der Begrenzungen screen.breite und screen.hoehe bleiben, daher dachte ich mir, dass ich das einfach über die pen.hPosition und die pen.vPosition machen kann, ... also etwa so: "Solange pen.hPosition <> screen.breite und pen.vPosition <> screen.hoehe soll die Kugel gezeichnet werden."

Das geht aber nicht, wieso?
 

Ähnliche Themen

Zurück
Oben