AGB  ·  Datenschutz  ·  Impressum  







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

Ballspiel(Pongähnlich)

Ein Thema von karrax · begonnen am 6. Nov 2013 · letzter Beitrag vom 7. Nov 2013
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#1

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 16:52
Dann pack doch einen Timer auf die Form und ändere innerhalb dessen OnTimer-Ereignisses die Position des Shapes. Wenn das klappt, implementiere noch die Kollisionskontrolle und fertig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
karrax

Registriert seit: 6. Nov 2013
Ort: Volkmarsen
10 Beiträge
 
Delphi 7 Personal
 
#2

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:01
sorry das ich nachfragen muss aber habe erst seid sehr kurzem delphi. was genau soll ich denn in dem timer einstellen und wie mache ich das mit der kollision?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#3

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:07
Du hast einen Timer und ein Shape. Für den Timer sind die Eigenschaften Enabled ("timern" oder nicht) und Interval (Zeit in Milisekunden zwischen 2 Auslösern) wichtig. Auf der "Ereignisse"-Seite des Objektinspektors kannst Du dann einen Doppelklick neben "OnTimer" machen, Delphi erstellt Dir dann das Code-Gerüst und weist gleichzeitig diese Methode dem entsprechenden Ereignis automatisch zu. So, innerhalb dieser Methode veränderst Du am Besten testhalber einfach nur mal die Position des Shapes (Left und Top ändern). Danach deklarierst Du Dir 2 Variablen für den gewünschten Versatz auf der X- und der Y-Achse und verwendest diese dann innerhalb der Timer-Methode. Zur Kollisionskontrolle musst Du dann nur noch die aktuellen Koordinaten und Dimensionen mit denen des Formular- bzw. Bildschirmrands vergleichen. Bei Kollision drehst Du dann nur noch das Vorzeichen der entsprechenden Variablen um.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
karrax

Registriert seit: 6. Nov 2013
Ort: Volkmarsen
10 Beiträge
 
Delphi 7 Personal
 
#4

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:15
Also ich hab geschaft das sich das Shape mit left unf top bewegt. aber bei dem rest blicke ich noch nicht so durch
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#5

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:21
Prima, das ist schon der erste Schritt. Wie sieht Dein Code derzeit aus (nur das OnTimer)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
karrax

Registriert seit: 6. Nov 2013
Ort: Volkmarsen
10 Beiträge
 
Delphi 7 Personal
 
#6

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:50
procedure TForm1.FormCreate(Sender: TObject);
begin
Shape1.Left:= Shape1.Left+5;
Shape1.Top:= Shape1.Top+5;
end;

end.

wenn du das meinst
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#7

AW: Ballspiel(Pongähnlich)

  Alt 6. Nov 2013, 17:54
OK, mich wundert zwar, dass die Methode FormCreate heißt, aber wenn Du sie dem Timer zugewiesen hast, ist das auch OK. Als Nächstes brauchst Du die 2 Variablen, nennen wir sie mal VersatzX und VersatzY. Die müssen unbedingt global sein (normalerweise würde ich sie zwar nicht als globale Variablen deklarieren, aber der Einfachheit halber machen wir das hier mal).
Delphi-Quellcode:
implementation

{$R *.dfm}

var
  VersatzX: integer = 5;
  VersatzY: integer = 5;
Und in Deinem Code ersetzt Du nun jeweils die 5 durch VersatzX für den Versatz auf der X-Achse(also Left) und VersatzY auf der Y-Achse(also Top).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 23:05 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