Autor |
Beitrag |
BumBum
Hält's aus hier
Beiträge: 9
|
Verfasst: Fr 06.03.09 15:44
Hallo,
ich bin ein Delphileihe und kenne mich nicht besonders gut damit aus. Ich schaffe es vielleicht unter mühe und not einen Taschenrechner zu programmieren.
Ich habe ein cooles Rennen zum download im Internet gefunden, und möchte dieses gerne ein bischen aus Spaß ändern.
Wäre euch sehr verbunden wenn ihr mir das Programm also den Quellcode "erklären" könntet wie in dem Beitrag: [Delphi, Win32] Delphin V1.00 wo neben jeder Zeile mit "//" geschrieben ist was dieser Befehl bewirkt.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73:
| procedure TForm1.FormResize(Sender: TObject); var i: Integer; begin SgData.Width := ClientWidth; SgData.DefaultColWidth := SgData.Width div SgData.ColCount;
SgData.Height := SgData.RowCount * SgData.DefaultRowHeight;
for i := Low(Auto) to High(Auto) do begin Auto[i].PbSpeed.Boundsrect := SgData.Cellrect(8, i + 1); Auto[i].PbThrottle.Boundsrect := SgData.Cellrect(9, i + 1); end; end;
function GetCarBgd(Ground: TBitmap; Form: array of TPoint; Color: TColor): Integer; var i: Integer; begin result := 0; for i := Low(form) to High(form) do if Ground.Canvas.Pixels[form[i].x, form[i].y] = color then inc(result); end;
function ColorToHtml(AColor: TColor): string; begin Result := IntToHex(ColorToRgb(AColor), 6); Result := '#' + Copy(Result, 5, 2) + Copy(Result, 3, 2) + Copy(Result, 1, 2); end;
function HtmlToColor(AHtmlColor: string): TColor; begin Delete(AHtmlColor, 1, 1); Result := StrToInt('$' + Copy(AHtmlColor, 5, 2) + Copy(AHtmlColor, 3, 2) + Copy(AHtmlColor, 1, 2)); end;
procedure Rotate(car: TAuto; m: TPoint; dir: double); var i: Integer; Sinus, Cosinus: Extended; begin SinCos(degtorad(dir), sinus, cosinus); for i := 0 to High(car.form) do begin Car.Form[i].x := Round(Car.StdForm[i].x*cosinus + car.StdForm[i].y*sinus + m.x); Car.Form[i].y := Round(-Car.StdForm[i].x*sinus + car.StdForm[i].y*cosinus + m.y); end; end;
procedure TForm1.SgDataDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var i: Integer; begin for i := 0 to High(Auto) do if ARow = i + 1 then begin SgData.Canvas.Brush.Color := Auto[i].Color; SgData.Canvas.FillRect(Rect); SgData.Canvas.Font.Color := (not ColorToRGB(Auto[i].Color)) and $00FFFFFF; end; SgData.Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, SgData.Cells[ACol, ARow]); end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin SgData.Selection := TGridRect(Rect(-1,-1,-1,-1)); end;
end. |
versteh ich komplett nicht
Zuletzt bearbeitet von BumBum am Di 17.03.09 21:52, insgesamt 3-mal bearbeitet
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 06.03.09 15:54
Moin und  im Forum!
Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge: | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf  oder  klicken und den Titel ändern. Danke Dir!
Vorschlag: " Hilfe zum Verstehen eines (fremden) Quelltexts gesucht"
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 16:08
Die Frage ist eigentlich was genau du nicht verstehst, denn den ganzen Quelltext zu erklären dauert ja ewig.
Vor allem, weil wir keine Ahnung von deinem Kenntnisstand haben. Da verwirren dann zu ausführliche Erklärungen eher, machen aber trotzdem viel Mühe erstmal.
Stell doch lieber konkrete Fragen, wenn dir an einer Stelle etwas unklar ist. 
Zuletzt bearbeitet von jaenicke am Fr 06.03.09 16:25, insgesamt 2-mal bearbeitet
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Fr 06.03.09 16:20
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 16:25
Ich mag Bandwurmsätze eben.  So besser? 
|
|
BumBum 
Hält's aus hier
Beiträge: 9
|
Verfasst: Fr 06.03.09 18:28
Ja ich hab ja desswegen geschrieben ich kann die Grundtypen und so .. kann also einen zB Taschenrechner oder so programmieren
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 20:50
Ja, das sind 450 Zeilen Quelltext, die kann man nicht so einfach schnell erklären...
Wenn du nicht einmal in der Lage bist zu dem Quelltext und deinen Verständnisproblemen konkrete Fragen zu stellen, dann ist solch ein Projekt für dich wohl noch eine Nummer zu groß. 
|
|
Sinspin
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Fr 06.03.09 21:10
Das Spiel scheint ja ziemlich einfach gestickt zu sein. Ich würde sagen, mach es einfach so wie ich damals auch : probier ein bisschen rum und schau was passiert. Wenn du dann einen Quelltextabschnitt verstanden hast schreibst du einen Kommentar dran was er macht.
Das ist im übrigen die allerbeste Art um etwas zu lernen (es selber ausprobieren).
Nebenbei, sogar ich habe was gelernt : SinCos kannte ich noch nicht.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
BumBum 
Hält's aus hier
Beiträge: 9
|
Verfasst: Di 10.03.09 22:08
Meine Fragen lauten :
Wo ist definiert wie die Autos aussehen?
Wo ist definiert wo die Autos starten?
Wo ist die Lenkung definiert?  ( im spiel muss man immer so oft klicken statt dauerhaft gas zugeben)
Wie kann man dieses SgData wegbekommen ohne das programm zu beschädigen?
(SgData wird auch im Spiel unten immer angezeit worin dann die Zeit, Geschwindigkeit, Runden usw steht)
Ich danke euch vielmals im vorraus, dass ihr mir helft !!!
Moderiert von Narses: Neues Topic hier zusammengeführt
|
|
|