AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia RandomRange() oder Random() beim Bewegen einer Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

RandomRange() oder Random() beim Bewegen einer Komponente

Ein Thema von faCee · begonnen am 24. Feb 2014 · letzter Beitrag vom 25. Feb 2014
Antwort Antwort
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 12:53
Vielleicht Randomize vergessen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 12:58
Das ist eine Menge Code für ein wenig Bewegung. Zullererst solltest Du auf jeden Fall die ganzen Vergleiche mit true entfernen (siehe z.B. hier). Und eigentlich braucht man die ganzen Boolean-Variablen gar nicht, es genügt doch je ein Integerwert für die X- und die Y-Achse, das Vorzeichen bestimmt dann die Richtung.

P.S.: Gruß ins Sauerland, da bin ich geboren und aufgewachsen

[edit]P.P.S: Sry, Willkommen in der DP [/edit]
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
Benutzerbild von faCee
faCee

Registriert seit: 24. Feb 2014
Ort: Sauerland
7 Beiträge
 
Delphi 2010 Professional
 
#3

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 13:07
Das ist eine Menge Code für ein wenig Bewegung. Zullererst solltest Du auf jeden Fall die ganzen Vergleiche mit true entfernen (siehe z.B. hier). Und eigentlich braucht man die ganzen Boolean-Variablen gar nicht, es genügt doch je ein Integerwert für die X- und die Y-Achse, das Vorzeichen bestimmt dann die Richtung.

P.S.: Gruß ins Sauerland, da bin ich geboren und aufgewachsen

[edit]P.P.S: Sry, Willkommen in der DP [/edit]
Ich hatte erst gar nicht gedacht, dass für Pong soviel anfällt.
Habe den Eintrag auf delphi-treff gelesen und das Spiel noch mal umprogrammieren.

Apropos, wenn ich auf Zufallszahlen verzichten wollte, wie würde ich am besten die Winkel berechnen?
Habe im Netz Beiträge dazu gelesen, aber bin nicht ganz schlau draus geworden.

Gruß zurück, wunderschöne Region.
David
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 13:16
Wenn ich an das originale Pong zurückdenke (ich bin so alt, dass ich das noch kenne), dann war der Winkel von der Aufprallposition auf dem Schläger abhängig: je weiter außen, desto steiler.
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
Benutzerbild von faCee
faCee

Registriert seit: 24. Feb 2014
Ort: Sauerland
7 Beiträge
 
Delphi 2010 Professional
 
#5

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 13:21
Wenn ich an das originale Pong zurückdenke (ich bin so alt, dass ich das noch kenne), dann war der Winkel von der Aufprallposition auf dem Schläger abhängig: je weiter außen, desto steiler.
Alles klar, vielen Dank! Klemme mich gleich dahinter und erstatte Bericht, wenn's fertig ist.
David
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 13:24
Gern geschehen. Anregungen sollten sich übrigens auch hier im Forum finden lassen: Hier im Forum suchenKollisionskontrolle Hier im Forum suchenBallbewegung Hier im Forum suchenPong
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
Benutzerbild von faCee
faCee

Registriert seit: 24. Feb 2014
Ort: Sauerland
7 Beiträge
 
Delphi 2010 Professional
 
#7

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 17:06
So,

habe mich grad an das Neuprogrammieren der Prozedur gewagt und habe leider mein erstes Problem.
Zuerst will, dass der Ball sich nach unten bewegt und vom Spieler-Balken (der später mal in 3 Sektoren unterteilt sein wird, was aber erst noch kommt) abprallt.

Allerdings fliegt der Ball einfach durch den Schläger.

Hier der Quelltext:
Delphi-Quellcode:
//Falls der Ball auf den unteren Balken trifft

   if (shpBall.Top = (shpSP1.Top - 10)) then
    begin
      vY := (vY * (-1));
    end;

//Bewegung des Balles
   shpBall.Top := (shpBall.Top + vY); //Steuert vertikal!
   shpBall.Left := (shpBall.Left + vX); //Steuert horizontal!
Erläuterung: shpSP1 ist die Shape-Komponente die den Balken des Spielers darstellt. shpBall ist der Ball.

Gruß
David
  Mit Zitat antworten Zitat
Benutzerbild von faCee
faCee

Registriert seit: 24. Feb 2014
Ort: Sauerland
7 Beiträge
 
Delphi 2010 Professional
 
#8

AW: RandomRange() oder Random() beim Bewegen einer Komponente

  Alt 24. Feb 2014, 13:00
Vielleicht Randomize vergessen.
Nein,

Randomize()

ist in Form1.Create drinne...
David
  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 13:54 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