![]() |
Frage zu "Ball"-Spiel / Zähler für Mausklick
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich bin Delphi-Interessiert und gerade dabei, es zu lernen. Hab eine PDF-Datei von einem Freund bekommen, in der die Programmiersprache Schritt für Schritt erklärt wird. Dazu gibt es dann immer Aufgaben, aber bei der aktuellen komme ich nicht weiter. Es geht dabei um ein Spiel, in dem ein Ball herumhüpft und der Spieler in mit der Maus treffen muss. Die Treffer sollen gezählt werden. Ich habe schon einen Großteil des Programms geschrieben. Im Moment bin ich soweit, dass der Ball herumhüpft. Aber wie kann ich die Klicks auf den Ball automatisch zählen lassen? Gibt es auch die Möglichkeit, mehrere Bälle hüpfen zu lassen? Vielen Dank schonmal und viele Grüße wünscht euch Hans-Peter |
Re: Kurze Frage zu Delphi-Projekt
Hallo procedure22, Willkommen in der DP :dp: ,
Du kannst die Datei auch einfach an Deinen Beitrag anhängen (klicke dazu auf Edit). Da ich nicht weiß, was der Ball überhaupt ist (ein eigenes Objekt?), kann ich Dir auch noch keinen Tipp bzgl. des Zählens geben. Möglich ist es auf jeden Fall. |
Re: Kurze Frage zu Delphi-Projekt
3 Foren, 3x das gleiche und alles ohne Link, :|
|
Re: Kurze Frage zu Delphi-Projekt
Delphi-Quellcode:
MeineCollision(MouseX, MouseY)
WENN MouseX > BallX UND MouseX < BallX + BallBreite UND MouseY > BallY UND MouseY < BallY + BallHöhe DANN KOLLISION VORHANDEN ANSONSTEN KEINE KOLLISION
Delphi-Quellcode:
die Ball-Kordinaten wirst du haben da du den Ball ja rumhümpfen läst... und an die Mauskordinaten solltest du auch drankommen :)
WENN MeineCollision(MouseX, MouseY) DANN
ERHÖHE EINEN GANZZAHLWERT mfg, Moggy |
Re: Kurze Frage zu Delphi-Projekt
Zitat:
Somit ersparst Du den hilfswilligen Leuten, dass sie erst noch auf ner anderen Seite was runterladen müssen. Ausserdem bleibt bei dem RapidShare der Upload nicht ewig liegen. Wäre schade, wenn der Beitrag dadurch sinnlos würde. |
Re: Kurze Frage zu Delphi-Projekt
Zitat:
Gut, dass es Leute gibt, denen sowas auffällt. Somit schenke ich mir die weiteren Antworten auf diesen Thread. Ich mag das Crossposten nämlich nicht leiden. |
Re: Kurze Frage zu Delphi-Projekt
Ich werfe aber schon mal PtInRect als Ansatz in den Raum :mrgreen:
[edit] Da es sich ja anscheinend um ein Crossposting handelt, verlinke bitte auf die anderen Foren, sonst machst Du Dir nirgends Freunde :? [/edit] |
Re: Kurze Frage zu Delphi-Projekt
Oha, das mit den Crossposts wusste ich nicht. War nicht böse gemeint!
Hier sind dementsprechend die anderen Links ![]() ![]() ![]() Nochmal: Entschuldigung! Thementitel hab ich geändert |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe Dein Programm mal ein wenig erweitert. Du wirst es vermutlich nicht auf Anhieb verstehen, also heißt es lesen, lesen, lesen :zwinker: . Bei Fragen einfach fragen.
P.S.: das mit dem Crossposting sei Dir verziehen, beim nächsten Mal einfach beachten :-) |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Sieht super aus, vielen Dank schonmal :)
Versuche gerade den Programmcode nachzuvollziehen. Allerdings werden in der TrefferBar die Treffer gar nicht angezeigt?! Die Zahl der Treffer soll aber doch dort ausgegeben werden. Vielleicht find ich noch raus, woran es liegt. Falls du das hier liest, kannst du mir ja auch noch einen Tipp geben ;) Viele Grüße! |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Komisch, bei mir werden die Treffer sehr wohl angezeigt :gruebel:
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ja, das wundert mich auch, dass es bei mir nicht geht. Der Code scheint ja zu stimmen, die Treffer werden ja in der TrefferBar ausgegeben. Bei mir bleibt die Bar allerdings weiß.
Kann das an meiner Delphi-Version o.ä. liegen? Ich hab Delphi 7 |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ich hab auch Delphi 7. Hast Du beim Kompilat (im Archiv) dasselbe Problem?
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Du meinst, wenn ich die exe-Datei direkt starte? Ja, da ist es genauso.
Ich hab nochmal ein paar kleine Änderungen am Programm vorgenommen. Schau doch bitte nochmal, ob es bei dir jetzt auch noch funktioniert. Vielleicht hab ich ja auch aus Versehen den Code geändert. Wenn es dann immernoch nicht klappt, geh ich mal an einen anderen PC damit. |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Funktioniert bei mir. Welches Betriebssystem hast Du?
[edit] Sonst nimm das doch aus der TrefferBar raus und schreib es in die Caption, das sollte ja wohl funktionieren :zwinker: [/edit] |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
XP
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Gute Idee, das in der Caption auszugeben :) Es geht doch bestimmt auch, dass die Treffer in der Caption UND in der TrefferBar angezeigt werden. Wie muss ich den Code denn dann ändern? Wenn ich TrefferBar.SimpleText durch Caption.SimpleText ersetze, gibt es Fehler.
Das ist seit jeher mein Problem mit Delphi. Ich weiß, was ich will aber weiß nicht, wie ich mich richtig ausdrücken soll :lol: |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Delphi-Quellcode:
procedure TForm1.ShowTreffer;
begin TrefferBar.SimpleText := Format('Treffer: %d',[Zaehler]); Caption := Format('Spielfeld (Treffer: %d)',[Zaehler]); end; |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Traumhaft :) Es funktioniert! Vielen Dank, sehr nett, dass du mir so lange geholfen hast!
Eine Sache ist da noch: Den Ball soll ich jetzt durch ein Image ersetzen. Es soll also ![]() Nochmals vielen Dank an dich und das Delphi-PRAXIS-Forum! |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Du kannst entweder ein 2. TImage nehmen, die Ballgrafik dort hineinladen und dessen Position verschieben oder nur die Ballgrafik laden und per Canvas.Draw auf das 1. Image zeichnen.
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ok, dankeschön!
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ich habs jetzt die ganze Zeit versucht, aber es sind ständig Fehler drin.
Kannst du mir nicht vielleicht doch den Code schreiben? Habe versucht, per Canvas.Draw das Bild über den Ball zu legen... Bin hier am verzweifeln... |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Hast Du das Bild auch vorher in eine Bitmap konvertiert?
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ja, hab ich gemacht. Aber ich bekomm den Programmcode einfach nicht zustande :(
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal die Lösung mit einem 2. Image.
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Super, danke :) Bin gerade dabei, den Code nachzuvollziehen. Wo wird denn das Bild eingebunden? Also wenn ich das Bild ändern wollte, wo steht das im Code?
Wundere mich nämlich gerade, dass keine BMP-Datei in der ZIP-Datei auftaucht, die ist anscheinend wo versteckt |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Schau Dir mal imgBall an, da ist sie drin ;)
[edit] Hab noch einen Fehler entdeckt: die Methode BildClick muss imgBall zugewiesen werden und nicht mehr dem großen Bild [/edit] |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Alles klar, hat geklappt. Hab jetzt mal ein anderes Bild eingefügt. Aber wie kann ich den Hasen jetzt größer machen? Die Attribute Width und Heigth vom TImage ändern bringt nichts...
Das mit BildClick hab ich nicht ganz verstanden?! Kannst du das vielleicht gerade mitändern? Danke dir! |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Die Größe gibst Du doch selbst an (im OnCreate). Und das Zuweisen der Methode geht ganz einfach im Objektinspektor. Auf dem Reiter "Ereignisse" löschst Du beim Bild das OnClick raus und fügst es beim imgBall ein.
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
BildClick hab ich geändert. OnCreate find ich allerdings nicht. Weder im Objektinspektor noch im Quellcode?!
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Dann geh doch im Objektinspektor auf Form1 und klick dann auf oncreate
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Im Quellcode heißt das "FormCreate".
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Meint ihr diese Zeile?
Code:
Egal, was ich da ändere, der Hase wird nicht doppelt so groß.
Hase.init(clRed,Random(Bild.width-50)+25,Random(Bild.Height-50)+25,Random(9)-4,Random(9)-4,20);
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Setz da mal als erste Zeile ein Randomize rein. Das hatte ich glatt übersehen.
[edit] Oh Mann, klar, der Radius steht ja mit 20 fest drin. Ändere zusätzlich mal die genannte Zeile in
Delphi-Quellcode:
[/edit]
Hase.init(clRed,Random(Bild.width-50)+25,Random(Bild.Height-50)+25,Random(9)-4,Random(9)-4,Random(30) + 20);
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Jetzt geht alles. Vielen Dank!
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Noch ein kleines Extra^^
Ich hätte neben dem "Beenden"-Button gerne noch einen Knopf "Neustart", also praktisch ein Reset des Zählers auf Null und ein neuer Hase kommt ins Bild, der alte verschwindet. Ist das realisierbar? |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Klar, Du musst auf Knopfdruck nur den "Hasen" neu intialisieren.
|
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Hab das so gemacht. Der Hase verschwindet, aber taucht nicht mehr wieder auf. Zähler wird auch nicht zurückgesetzt
Code:
procedure TForm1.NeustartClick(Sender: TObject);
begin Randomize; Hase := tHase.create; end; |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Delphi-Quellcode:
procedure TForm1.NeustartClick(Sender: TObject);
begin Zaehler := 0; ShowTreffer; Hase.init(clRed,Random(Bild.width-50)+25,Random(Bild.Height-50)+25,Random(9)-4,Random(9)-4,Random(30) + 20); Hase.ZeigDich; end; |
Re: Frage zu "Ball"-Spiel / Zähler für Mausklick
Ah, jetzt geht es. Das wars auch schon. Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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