![]() |
Re: Image bewegen
Ich glaub das liegt am Laptop.
|
Re: Image bewegen
Pack einmal die *.dpr, *.pas und *.dfm Deines Projektes in ein Zip-Archiv und hänge das an Deinen Beitrag an. Dass das am Laptop liegen soll, wage ich zu bezweifeln.
|
Re: Image bewegen
Zitat:
Solange du uns aber den Code vorenthälst, kann dir niemand helfen. Noch besser wäre es natürlich, wenn du das Problem selbst lösen würdest, denn dabei lernst du viel mehr. |
Re: Image bewegen
Liste der Anhänge anzeigen (Anzahl: 1)
Hier is die Scheiße
|
Re: Image bewegen
ich habe bestimmt den einfachsten Fehler der Welt gemacht.
|
Re: Image bewegen
Das OnKeyDown ist nicht zugewiesen. Klick einfach auf eine leere Stelle auf Deinem Formular, wechsel im Objektinspektor auf den Reiter "Ereignisse", dort auf "OnKeyDown" und wähle "FormKeyDown" aus. Dann nochmal versuchen.
|
Re: Image bewegen
Helft mir mal bitte.
Diese Bitmap wird nur als weißer Balken angezeigt:
Delphi-Quellcode:
//Bitmap3
Bitmap3:=TBitmap.Create; try Bitmap3.Width:=Image3.Width; Bitmap3.Height:=Image3.Height; Bitmap3.Canvas.pen.color:=clBlue; Bitmap3.Canvas.pen.width:=10; Bitmap3.Canvas.Rectangle(0,0,5,1000); Image3.Picture.Assign(Bitmap3); finally Bitmap3.Free; end; with Image3 do begin transparent:=true; end; |
Re: Image bewegen
Schau Dir die Parameter von Canvas.Rectangle einmal an. Ist die Bitmap wirklich 1000 Pixel hoch?
|
Re: Image bewegen
Nein aber mit -1000 geht es auch nicht und wie kann ich eigentlich die Pixel zählen lassen?
|
Re: Image bewegen
Nimm doch einfach Höhe und Breite der Bitmap.
|
Re: Image bewegen
Zitat:
|
Re: Image bewegen
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt wo ihr mir so toll geholfen habt dürft ihr auch sehen was ich gemacht habe.
Guckt es euch bitte an und bewertet es, danke. |
Re: Image bewegen
Ich hab wieder eine Frage!
Wie kriege ich es hin, dass sich dieses Image1 solange bewegt bis es Image 2 oder 5 berührt? Denn ich will jetzt einen Ball der darum hüpft! Bei mir springt er immer nur zu einer Wand und man sieht keine Bewegung. |
Re: Image bewegen
Versuch es mal mit einem Timer.
|
Re: Image bewegen
Genau das ist mein Problem wie baue ich einen Timer ein?
Ich weiß man kann in millisekunden angeben, wielange das Programm nichts machen soll, aber wie schreibe ich das? |
Re: Image bewegen
Die Bewegung samt Prüfung schreibst Du ins Ereignis OnTimer des Timers.
|
Re: Image bewegen
Hab ich, aber jetzt wird nurnoch der Timer verwendet und nicht der Button, und der Punkt springt immernoch von einem zum anderen Ort!
|
Re: Image bewegen
Dann überprüfe einfach mal Deine Programmlogik. Es nützt Dir ja nichts, wenn wir Dir hier das Denken abnehmen.
|
Re: Image bewegen
Ich müsste nur mal wissen wie ich 2 Proceduren miteinander verknüpfe(habe ich schon mal gelesen aber wieder vergessen).
Und wie kann ich die Zeit, die angehalten wird, regeln? |
Re: Image bewegen
Die Zeit wird in der Interval-Eigenschaft des Timers angegeben. Und was meinst Du mit Verknüpfen?
|
Re: Image bewegen
Jaja das habe ich auch bemerkt, aber der Punkt bewegt sich nicht langsam sondern hüpft von A nach B, man soll aber die Bewegung sehen!
Und ich will mit Button1.Click den Vorgang starten ,dass er sich so wie bei einem Pong-spiel nur ohne "Schläger" bewegt. Also ,dass der Timer dann gestartet wird,wenn ich auf den Button kilcke. |
Re: Image bewegen
Wenn der Punkt sich langsam von A nach B bewegen soll, musst du eben genau das programmieren. Als Programmierer ist es deine Aufgabe, dir zu überlegen, wie du das anstellen kannst. Wenn du Hilfe zu den Komponenten brauchst, guck dir halt die interne Delphi-Hilfe an, oder nutze die Referenz hier im Forum.
Bitte hör auf, bei jeder Kleinigkeit nachzufragen. |
Re: Image bewegen
Ja, aber wie erreiche ich das denn, welcher Befehl fehlt mir denn?
|
Re: Image bewegen
Zitat:
![]() ![]() |
Re: Image bewegen
Liste der Anhänge anzeigen (Anzahl: 1)
Bitte guck es dir an, ich komme weder vor noch zurück!
Das mit dem Timer ist nicht das Problem der geht, aber der Ball geht durch Wände! |
Re: Image bewegen
Ich hab nicht reingeschaut, aber vermutlich fehlt die Kollisionskontrolle. Hatten wir doch alles schon.
|
Re: Image bewegen
Nein ich hab diese Kollisionskontrolle:
Delphi-Quellcode:
Punkt_HochRunter:=x;
Punkt_LinksRechts:=y; if Image1.Left = Image2.Left +30 then begin Punkt_LinksRechts:=1; end; if Image1.Left = Image3.Left -50 then begin Punkt_LinksRechts:=2; end; if Image1.Top = Image4.Top +30 then begin Punkt_HochRunter:=1; end; if Image1.Top = Image5.Top -50 then begin Punkt_HochRunter:=2; end; x:=Punkt_HochRunter; y:=Punkt_LinksRechts; if Punkt_LinksRechts = 1 then begin Image1.Left:= Image1.Left +10; end; if Punkt_LinksRechts = 2 then begin Image1.Left:= Image1.Left -10; end; if Punkt_HochRunter = 1 then begin Image1.Top:= Image1.Top +10; end; if Punkt_HochRunter = 2 then begin Image1.Top:= Image1.Top -10 end; |
Re: Image bewegen
Dann setz einmal einen Haltepunkt und schau Dir die Inhalte Deiner Variablen an.
|
Re: Image bewegen
Eine Kollisionsabfrage nur mit "=" zu machen ist in den meisten Fällen kritisch, man sollte lieber ">=" oder "<=" benutzten, je nach dem was man gerade benötigt. Denn wenn bei "=" der gesuchte Wert übersprungen wird, dann läuft alles normal weiter.
|
Re: Image bewegen
Also ich seh das so:
1.Punkt_LinksRechts und Punkt_HochRunter werden die Werte aus x und y zugewiesen. 2.Es wird getestet ob die Koordinaten von Image1 auf denen von Image? liegen. 3.Ggf. werden den Var. Punkt_LinksRechts und Punkt_HochRunter andere Werte zugeordnet. 4.x und y werden die neuen Werte zugewiesen.(Irgendwie überflüssig oder?). 5.Das Objekt wird bewegt. Ich versteh meinen Fehler nicht :gruebel: |
Re: Image bewegen
Ihr seid so gut zu mir es klappt!
So und jetzt wie kriege ich es hin das es erst bei Button1.click losgeht? |
Re: Image bewegen
Du testest aber mit "=" und DeddyH hat gesagt du sollst mal Haltepunkte setzten und den Inhalt der Variablen anschauen. Wenn du das getan hättest, wüsstest du wo dein Fehler liegt.
Dein Image1 startet bei 432, 272 und diese Werte werden immer mit 10 inkementiert bzw. dekrementiert. Deine anderen Images haben aber bei den Positionen als letzte Ziffer nie eine 2, deshalb habe ich ja gesagt, du sollst ">=" oder "<=" verwenden. |
Re: Image bewegen
Timer.Enabled initial auf false und im ButtonClick auf true stellen.
|
Re: Image bewegen
Zitat:
![]() |
Re: Image bewegen
Ich bin gerade dabei Pong zu Programmieren :-D
|
Re: Image bewegen
Setze den Timer im Objektinstektor auf disabled und im Button1-Event
auf Enabled. Müßte doch funktionieren! |
Re: Image bewegen
Zitat:
|
Re: Image bewegen
Toll danke das motiviert mich!
Ich weiß, aber ich habe das gestern erst gelernt und ich find meine Fehler nicht. So wie hier:
Delphi-Quellcode:
Gebt mir nur einen Tipp
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin case Key of VK_Left: if Image6.Left > Image2.Left +43 then begin Image6.Left:= Image6.Left -10; end; VK_Right: if Image6.Left < Image3.Left -100 then begin Image6.Left:= Image6.Left +10; end; end; end; |
Re: Image bewegen
Ich komme nicht weiter :wall:
|
Re: Image bewegen
Würdest du es bitte unterlassen deine beitrage zu pushen bevor 24 Stunden um sind:
Des Weiteren: Zitat:
Du kannst nicht von uns erwarten, dass wir wissen was passiert und wenn du uns essentielle Informationen vorenthältst, können wir kaum helfen außer raten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 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