AGB  ·  Datenschutz  ·  Impressum  







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

Auto

Ein Thema von Sierra · begonnen am 3. Sep 2005 · letzter Beitrag vom 10. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#1

Auto

  Alt 3. Sep 2005, 12:38
Hi!
Ich wollte in Delphi (Konsolenanwendung) mit dem "Plugin" "mSum" ein Auto programmieren, das fährt.
Leider fangen die Probleme schon bei den Rädern an.
Also eins rollt und das andere macht gar nichts.
Der Quelltext sieht so aus.

Delphi-Quellcode:
program pRad3;

{$APPTYPE CONSOLE}

uses
  mSum;

var
  meinBildschirm: Bildschirm;
  meinBuntstift : Buntstift;
  meineMaus : Maus;
  Koordinaten : Integer;
  Koordinate : Integer;

begin
//Initialisierung
  meinBildschirm:= Bildschirm.init;
  meinBuntstift := Buntstift.init;
  meineMaus := Maus.init;

//Aktionsteil
for Koordinaten:= 300 to 900 do
      begin
with meinBuntstift do
   begin
  bewegeBis(Koordinaten,350);
  zeichneKreis(50);
  bewegeBis(Koordinaten,350);
  runter;
  dreheUm(-1);
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinaten,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
warte(10);

for Koordinate:= 500 to 900 do
      begin
with meinBuntstift do
   begin
  bewegeBis(Koordinate,350);
  zeichneKreis(50);
  bewegeBis(Koordinate,350);
  runter;
  dreheUm(-1);
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
  hoch;
  bewegeBis(Koordinate,350);
  dreheUm(-45);
  runter;
  bewegeUm(50);
warte(10);
  with meinBildschirm do
     begin
     loescheAlles;
   end;
     end;
       end;
         end;
           end;
//Aufräumen
  meinBildschirm.gibFrei;
  meinBuntstift.gibFrei;
  meineMaus.gibFrei

end.
Wie bekomme ich jetzt hin, dass sich beide Räder drehen?
Danke für die Hilfe
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Auto

  Alt 3. Sep 2005, 12:44
Erstmal herzlich willkommen in der Delphi-Praxis!

Dein Code ist aber leider wenig aussagekräftig. Ich sehe da nämlich überhaupt kein Rad, geschweige denn zwei.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#3

Re: Auto

  Alt 3. Sep 2005, 12:48
Achso, ja sorry.
Also der Teil von

Delphi-Quellcode:
"for Koordinaten:= 300 to 900 do
      begin
with meinBuntstift do"
bis

warte(10); erzeugt das erste Rad (Also einfach einen Kreis mit Speichen drin).
Der Rest des Textes soll eigentlich ein zweites Rad einfügen.
Die Drehung des Rades funktioniert, indem die Speichen einfach versetzt werden (um 10 Grad).
Das Rad bewegt sich, weil der Mittelpunkt durch den Integer versetzt wird.
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Auto

  Alt 3. Sep 2005, 12:52
Also ob ich deinen Code richtig verstehe bin ich mir immer noch nicht ganz klar, aber ich glaube dass du erst ein Rad komplett rollen lässt, und dich dann erst um das andere kümmerst, denn die beiden FOR schleifen werden ja nacheinander abgeklappert. Das muss also alles in eine For-Schleife.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#5

Re: Auto

  Alt 3. Sep 2005, 13:02
Und wie soll das gehen?
Mein Programm macht das so, dass es jeden Strich einzeln zeichnet.
Und wenn ich das in eine FOR Schleife reinmache, kann er ja nicht unterscheiden, was er bei welchem Rad machen soll, oder?
Das Problem besteht ja darin.

for Koordinaten:= 300 to 900 do Denn dann würde er die Räder gleich verschieben.
Da aber bei einem Auto vorne und Hinten Räder sin, kann es so nicht funktionieren.
Ich muss ja zwei Mittelpunkte festlegen.
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Auto

  Alt 3. Sep 2005, 14:34
Ich an deiner Stelle würde eine Prozedur schreiben, der du als Parameter den Mittelpunkt übergibst und die dann mit diesem Mittelpunkt ein Rad malt. Das dürft ja nicht so viel Arbeit sein, Copy&Paste halt. Danach würde folgender Code nämlich reichen:

Delphi-Quellcode:
for i := 300 to 900 do begin //oder was für Zahlen halt auch immer
  MaleRad(i);
  MaleRad(i - 200); // Der Abstand zwischen deinen Rädern
  Warte(10);
end;
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#7

Re: Auto

  Alt 3. Sep 2005, 15:20
Und was soll das mit dem MaleRad (ist ein unbekannter Befehl)?
Und wo muss ich das einbauen?
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: Auto

  Alt 3. Sep 2005, 15:56
gibFrei kenne ich auch nicht. Meinst du vlt. Free ?
  Mit Zitat antworten Zitat
Sierra

Registriert seit: 3. Sep 2005
99 Beiträge
 
#9

Re: Auto

  Alt 3. Sep 2005, 16:17
Ja, normalerweise heisst es free.
Aber da es alles von mSum (Stifte und Mäuse Plugin) stammt, ist es auf Deutsch.
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Auto

  Alt 4. Sep 2005, 09:53
Natürlich ist MaleRad ein unbekannter Befehl. Das ist ja auch eine Prozedur, die du selber schreiben sollst, um an der übergebenen Stelle ein Rad zu malen. Wie gesagt, den Code dazu hast du ja eigentlich schon komplett geschrieben, jetzt musst du ihn nur noch in eine Prozedur auslagern. Also kopieren&einfügen.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:36 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