AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Programm Billard. Verbeserungsvorschläge?
Thema durchsuchen
Ansicht
Themen-Optionen

Programm Billard. Verbeserungsvorschläge?

Ein Thema von AlphaRage · begonnen am 12. Dez 2010 · letzter Beitrag vom 12. Dez 2010
 
AlphaRage

Registriert seit: 11. Dez 2010
5 Beiträge
 
#1

Programm Billard. Verbeserungsvorschläge?

  Alt 12. Dez 2010, 00:00
Hallo.

Seit ca. 2 Monaten programmieren wir im Informatik-Unterricht mit Delphi. Meine Erfahrung damit ist also noch nicht so hoch.
Unser zweites Projekt, Billard genannt, bereitet mir da schon ein paar Probleme. Habe mich vor ein paar Stunden mal dran gesetzt und probiert.
Ich habe bisher die beiden Units 'mKugel' und 'mTisch' geschrieben. Außerdem das Hauptprogramm 'pBillard'.
Scheint auch alles richtig zu laufen. Kompilieren funktioniert, aber leider wird der Tisch einfach nicht gezeichnet. Die Kugel erkennt nur die Ränder des Tisches. Aber er ist unsichtbar. Ich bin mir sicher, dass ihr helfen könnt.
Außerdem hoffe ich auf Verbesserungsvorschläge!
Vielleicht nützt es zu wissen, dass ich in Delphi 6 programmiere.
Und bitte wundert euch nicht darüber, dass wir die Befehle in Deutsch schreiben. Mir wäre es von Beginn an auch lieber gewesen, in Englisch zu schreiben. Finde es so nämlich ein wenig verwirrend.

Hier sind die Codes!

Delphi-Quellcode:
program PBilliard;

uses
  mSuM,
  mKugel,
  mTisch in 'mTisch.pas';

var
  hatBildschirm : Bildschirm;
  hatStift : Stift;
  hatTastatur : Tastatur;
  hatMaus : Maus;
  hatKugel : Kugel;
  hatTisch : Tisch;

begin
  hatBildschirm:=Bildschirm.init;
  hatStift:=Stift.init;
  hatTastatur:=Tastatur.init;
  hatMaus:=Maus.init;
  hatKugel:=Kugel.init(500,200,200,0.05,5,40);
  hatTisch:=Tisch.init(40,40,800);


repeat
 hatKugel.bewege;
until hatMaus.istGedrueckt;


  hatStift.gibFrei;
  hatBildschirm.gibFrei;
  hatTastatur.gibFrei;
  hatMaus.gibFrei;
  hatKugel.gibFrei;
end.
Delphi-Quellcode:
unit mKugel;

interface

uses mSuM;

type Kugel = class

private

zFarbe: ganzeZahl;

zX: Zahl;
zY: Zahl;
zGeschwindigkeit: Zahl;
zRichtung: Zahl;
zGroesse: Zahl;

hatStift: Buntstift;

public

constructor init (pFarbe: ganzeZahl ; pX, pY, pGeschwindigkeit, pRichtung, pGroesse: Zahl);
procedure zeichne;
procedure loesche;
procedure bewege;
procedure setzeRichtung (pRichtung: Zahl);
procedure setzeGroesse (pGroesse: Zahl);
procedure setzeFarbe (pFarbe: ganzeZahl);
procedure setzeGeschwindigkeit (pGeschwindigkeit: Zahl);
function gibX: Zahl;
function gibY: Zahl;
function gibRichtung: Zahl;
destructor gibFrei;

end;

implementation

constructor kugel.init (pFarbe: ganzeZahl ; pX, pY, pGeschwindigkeit, pRichtung, pGroesse: Zahl);
begin
   hatStift:= Buntstift.init;
   zX:= pX;
   zY:= pY;
   zFarbe:= pFarbe;
   zGroesse:= pGroesse;
   zGeschwindigkeit:= pGeschwindigkeit;
   zRichtung:= pRichtung;
   hatStift.setzeFarbe (zFarbe);
   hatStift.hoch;
   hatStift.bewegeBis (zX,zY);
   hatStift.dreheUm (zRichtung);
   hatStift.runter;
   hatStift.setzeFuellmuster (gefuellt);
end;



procedure kugel.zeichne;
begin
   hatStift.zeichneKreis (zGroesse);
end;



procedure kugel.loesche;
begin
   hatStift.radiere;
   self.zeichne;
   hatStift.normal;
end;



procedure kugel.bewege;
begin
   self.loesche;
   hatStift.hoch;
   hatStift.bewegeUm (zGeschwindigkeit);
   hatStift.runter;

   if (hatStift.hPosition <= 85) or (hatStift.hPosition >= 795)
      then self.setzeRichtung (180-zRichtung);

   if (hatStift.vPosition <= 85) or (hatStift.vPosition >= 795)
      then self.setzeRichtung (360-zRichtung);

   self.Zeichne;
end;



procedure Kugel.setzeRichtung(pRichtung: Zahl);
begin
   hatStift.dreheBis (pRichtung);
   zRichtung:= pRichtung;
end;



procedure Kugel.setzeGroesse(pGroesse: Zahl);
begin
   zGroesse:= pGroesse;
end;



procedure Kugel.setzeFarbe(pFarbe: ganzeZahl);
begin
  zFarbe:= pFarbe;
end;



procedure Kugel.setzeGeschwindigkeit(pGeschwindigkeit: Zahl);
begin
   zGeschwindigkeit:= pGeschwindigkeit;
end;



function kugel.gibX;
begin
   result:= hatStift.hPosition;
end;



function kugel.gibY;
begin
   result:= hatStift.vPosition;
end;



function kugel.gibRichtung;
begin
   result := hatStift.Winkel;
end;



destructor Kugel.gibFrei;
begin
   self.loesche;
   hatStift.gibFrei;
end;


end.
Delphi-Quellcode:
unit mTisch;

interface

uses mSuM;

type Tisch = class

private

zhT, zvT, zLaenge: ganzeZahl;

hatStift: Buntstift;

public

constructor init(phT, pvT, pLaenge: ganzeZahl);
procedure zeichne;
procedure loesche;
function gibRechterRand: Zahl;
function gibLinkerRand: Zahl;
function gibObererRand: Zahl;
function gibUntererRand: Zahl;
destructor gibFrei;

end;


implementation
constructor tisch.init (phT, pvT, pLaenge: ganzeZahl);
begin
   hatStift:= Buntstift.init;
   zhT:= phT;
   zvT:= pvT;
   zLaenge:= pLaenge;
   hatStift.bewegeBis (zhT, zvT);
end;



procedure tisch.zeichne;
begin
   hatStift.normal;
   hatStift.zeichneRechteck (zLaenge, ZLaenge);
end;



procedure tisch.loesche;
begin

end;



function tisch.gibObererRand;
begin
   result:= zvT;
end;



function tisch.gibUntererRand;
begin
   result:= zvT + zLaenge;
end;



function tisch.gibRechterRand;
begin
   result:= zhT;
end;



function tisch.gibLinkerRand;
begin
   result:= zhT + zLaenge;
end;



destructor tisch.gibFrei;
begin
   self.loesche;
   hatStift.gibFrei;
end;



end.
[edit=Matze][code]- durch [delphi]-Tags ersetzt. MfG Matze[/edit]

Geändert von Matze (12. Dez 2010 um 08:49 Uhr)
  Mit Zitat antworten Zitat
 


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