AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Break it Komplikationen...
Thema durchsuchen
Ansicht
Themen-Optionen

Break it Komplikationen...

Ein Thema von speedy23 · begonnen am 13. Apr 2010 · letzter Beitrag vom 15. Apr 2010
Antwort Antwort
speedy23

Registriert seit: 11. Nov 2008
76 Beiträge
 
#1

Break it Komplikationen...

  Alt 13. Apr 2010, 18:26
hey leute, mein projekt nimmt gestalt an und hat potential

ich habe ja vor einiger zeit schonmal von meinem breakit(spiel) problem gesprochen
und nun das grundgerüst fertiggestellt.
es sind vorhanden
-steuerbarer reflektor,
-spieloberfläche,
-ball,
-nötige reflexionen um den ball im feld zu halten.
-game over funtion


aber mein problem ist:
der ball wird nur am obersten rand des brickszurückgeworfen und ich habe mit aufzeichnen und allem pipapo keinen gedanklichen ansatz für meinen fehler gefunden ... ihr könnts euch gerne anschauen, und für tipps und kritiken bin ich sowieso zu haben

was ich noch hinzufügen möchte:
- mehrere steine,
- zeitmesser,
- punktezähler sowie
- highscoreliste

dateien sind im anhang danke im voraus
Angehängte Dateien
Dateityp: rar info_dawg_125.rar (876,7 KB, 17x aufgerufen)
...oh yeah...
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Break it Komplikationen...

  Alt 14. Apr 2010, 09:00
Zitat von speedy23:
hey leute, mein projekt nimmt gestalt an und hat potential

ich habe ja vor einiger zeit schonmal von meinem breakit(spiel) problem gesprochen
und nun das grundgerüst fertiggestellt.
Du hast ein bischen Oberfläche programmiert, ein Grundgerüst ist leider überhaupt nicht vorhanden.
Lies mal was ich hier Memory zum grundsätzlichen Aufbau eines Spiels oder Anwendung allgemein geschrieben hab und schau dir mein Beispiel an.

Die Anwendung wird in deiner jetzigen Struktur zu einem endlosen Spagettiprogramm mutieren.
Ein deutliches Zeichen ist, daß du schon jetzt bei den par Zeilen den Fehler nicht finden kannst.
Zum eigentlichen Fehler:
Überprüfe alle Positionsvergleiche auf "=" , in der Regel ist es sicherer auf "<=" oder ">=" zu testen.
Für die Änderung der Bewegungsrichtung ist es nicht ausreichend das Vorzeichen des Geschwindigkeitsvektors zu ändern.
Man muss auch prüfen ob der Vektor schon "umgedreht" wurde.
Bsp.: Das Objekt hat den oberen Rand überschritten, der Geschwindigkeitsvektor muss also für y-Richtung positive werden.
Delphi-Quellcode:
if ObererRandUeberschritten then
begin
  if dy < 0 then
    dy := -dy;
end
else if UntererRandUeberschritten then
begin
  if dy > 0 then
    dy := -dy;
end;
{Objekt bewegen}
y := y + dy;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Break it Komplikationen...

  Alt 14. Apr 2010, 09:46
Zitat:
Überprüfe alle Positionsvergleiche auf "=" , in der Regel ist es sicherer auf "<=" oder ">=" zu testen.
Das führt dann bei Deltas > 1 mit großer Wahrscheinlichkeit zur Fehlfunktion
Markus Kinzler
  Mit Zitat antworten Zitat
speedy23

Registriert seit: 11. Nov 2008
76 Beiträge
 
#4

Re: Break it Komplikationen...

  Alt 14. Apr 2010, 13:35
erstmal vorweg, danke für die kritik, sowas ist konstruktiv

ja ich muss dir natürlich recht geben nur mein problem war... so wie ich die kollisionen am panel (schläger) hatte wollte ich einfach alles auf den brick übertragen aber das geht nicht... gedanken habe ich mir ja schon gemacht, mir ist nur die tragweite nicht klar geworden, das hast du vollkommen recht!

ich dachte mir wenn ich erstmal den ball im feld halten kann, er reflektiert wird von wand und schläger, und sogar noch eine verlorenmeldung kommt, wenn er den unteren rand berührt, ist die sache zu 90% fertig. Das problem sind jetzt meine steine, dahingestellt ob image oder shape.

ich danke dir für deine antwort, aber ich verstehe nicht, warum es wichtig ist zu wissen, ob der vektor schon einmal umgekehrt wurde... denn das war ja bei den wänden auch der fall.
ich hab hier irgendeinen denkfehler, deswegen verstehe ich auch nicht wie du das meinst... .
wenn du vllt erklären könntest wie genau du das meinst, wäre ich sehr dankbar.

mfg
speedy23
...oh yeah...
  Mit Zitat antworten Zitat
speedy23

Registriert seit: 11. Nov 2008
76 Beiträge
 
#5

Re: Break it Komplikationen...

  Alt 15. Apr 2010, 13:09
oder liege ich da so falsch??
...oh yeah...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#6

Re: Break it Komplikationen...

  Alt 15. Apr 2010, 13:41
Zitat:
und hat potential
Ja klar, wenn fast noch nichts vorhanden ist, dann ist noch genügend Potential vorhanden.


Witzig finde ich Demomeldungen von verwendeten Komponenten.

Schön ist auch, daß mit dem Skinning schon begonnen wird, bevor überhaupt eine Funktion vorhanden ist.

Wenn du Quellcode zur Verfügung stellst, den sich ander auch noch freiwillig ansehn sollen,
dann wäre es nicht schlecht, wenn man zumindestens erwähnt, daß Zusatzkomponenten nötig sind, damit überhaupt was passiert.

Ansonsten macht es sich besser, wenn man die Oberfläche von der Logik trennt.
(dafür eignet sich OOP ja recht gut)


Am Einfachsten du erstellst dir erstmal je eine Klasse für alle Objekte (Spielfeld, Schläger, Ball/Bälle und Bricks), welche alle nötigen Informationen zu diesem Objekt enthalten,
anstatt deren Eigenschaften (wie Position, Größe und Geschwindigkeit) in irgendwelchen sonstwo verstecken Variablen oder der GUI abzulegen.

Das mit den getrennten Objekten hat auch den Vorteil, daß dein Code später etwas sortierter ist und man schneller was findet.

Und weißt du wie schwer es wird, wenn du alle Bricks einzeln verwaltest?
Stell dir mal vor du hast 100 Bricks ... dann hast du bei deinem aktuellem Code womöglich auch alle Kollisionsabfragen 100-mal im Code.


PS: Wenn du solche Probleme mit der Kollisionsabfrage hast, dann versuch es doch erstmal in der Realität?
Nimm dir ein Blatt Karopapier, mal ein Koordinatensystem drauf (entsprechend dem Monitor ... muß ja nicht Maßstabsgetreu sein)
schneide ein paar Figuren (Ball, Schläger, Brickets) aus und schau dir an, wie sich die Koordinaten verwalten und was du wie prüfen mußt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 02:40 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