AGB  ·  Datenschutz  ·  Impressum  







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

Figur läuft einfach durch die Mauer

Ein Thema von Coxy · begonnen am 29. Apr 2011 · letzter Beitrag vom 4. Mai 2011
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

AW: Figur läuft einfach durch die Mauer

  Alt 29. Apr 2011, 23:51
Ich denke eher mal, dass das Problem wo anders liegt und wir das nicht lösen können, weil du selbst nicht durch deinen eigenen Code blickst. Eventuell fehlen einfach die Kommentare, was der Code wo macht (wo reflektiert werden soll).
Überdenke nochmal deinen Kollisionsmechanismus: Ich würde vorschlagen, du prüfst als erstes, ob eine Kollision mit einer Wand vorliegt und änderst daraufhin die Richtung. Was natürlich auch fatal ist, ist dass du 2 sehr ähnliche Variablen hast. Eventuell könnte es sein, dass du irgendwo mal Richtung mit RichtungStern verwechselt hast.

Bernhard

PS: Verwende doch für Code bitte die DELPHI-Tags.

@Björk: Ich hoffe doch, dass deine erfundene Methoden-Deklaration falsch ist (Variablenname).
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Figur läuft einfach durch die Mauer

  Alt 29. Apr 2011, 23:57
Nö, da is nix falsch. Aus Richtungstern is eben eine function geworden (statt einer Variable).
  Mit Zitat antworten Zitat
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#3

AW: Figur läuft einfach durch die Mauer

  Alt 30. Apr 2011, 14:21
ich benutze ein sehr altes delphi (6)
und bin irgendwie immer noch nicht weiter gekommen bei dem Problem.
gibt es sonst irgendwelche Lösungs-Ansätze?
Grüße
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Figur läuft einfach durch die Mauer

  Alt 30. Apr 2011, 14:38
ja, dann wirst du ein wenig mehr Code zeigen müssen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#5

AW: Figur läuft einfach durch die Mauer

  Alt 1. Mai 2011, 14:47
ich habs mal hochgeladen:
https://rapidshare.com/files/4600775...hi_Project.rar

gruß
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#6

AW: Figur läuft einfach durch die Mauer

  Alt 1. Mai 2011, 19:11
Punkt 1: Rapidshare ist Rapidshare und wenn du keinen Premium-Account hast, ist der Download nach 45 Tagen weg. Also besser hier im Forum hochladen.

Punkt 2: Dein Code compiliert gar nicht. Die Figur KANN also gar nicht aus irgendwelchem Rahmen laufen.
Es geht hier um Zeile 75 und da muss eine Begin-End-Struktur eingebaut werden.

Punkt 3: Wo ist da bitte ein Kommentar, was der wo macht? - Den Durchblick hab ich nicht.

Punkt 4: Einen Rahmen würde ich durch ein Panel setzen (und dann die Rahmen ausblenden mit BevelInner und BevelOuter).

Punkt 5: Die Punkte sind doch recht lustig, weil ich selbst ohne Aktion schon in ein paar Sekunden 13 habe.

Punkt 6: Den Fehler wollte ich für dich eigentlich nicht finden und verbessern, er war aber zu offensichtlich:
Delphi-Quellcode:
procedure TForm1.Timer_SternTimer(Sender: TObject);
begin
If (richtung=1) and (img_Stern.Top + img_Stern.Height + 200 > form1.Height) then Richtungstern :=2;
Ich hatte schon angedeutet, dass eine Variablenverwechslung vorliegen könnte. Dabei lag ich aber falsch. Es sind 4.

So und dass du jetzt noch was lernst: Mit deinen Richtungsangaben kann man NULL anfangen. Du kannst allerdings ein ENUM machen und dann die Angaben etwas benennen, wie z.B. bew_LINKSHOCH, bew_LINKSRUNTER, bew_RECHTSHOCH und bew_RECHTSRUNTER. Damit hättest du auch das Problem abgedeckt. Ansonsten sollte alles funktionieren.

Bernhard

PS: Das soll ein Spiel werden? - Laut c't ist es dabei sinnvoller, MSDN-Library durchsuchenGetAsyncKeyState() zu verwenden.
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Coxy

Registriert seit: 27. Mär 2011
28 Beiträge
 
#7

AW: Figur läuft einfach durch die Mauer

  Alt 4. Mai 2011, 16:26
das mit den Punkten habe ich behoben.
Allerdings verstehe ich meinen Fehler immer noch nicht

Delphi-Quellcode:
If (richtung=1) and (img_Stern.Top + img_Stern.Height + 50 > form1.Height) then Richtungstern :=2;
If (richtung=2) and (img_Stern.Left + img_Stern.Width + 50 > form1.Width) then Richtungstern :=3;
If (richtung=3) and (img_Stern.Top < 50) then Richtungstern := 4;
If (richtung=4) and (img_Stern.Left < 50) then Richtungstern :=1;

If (richtung=2) and (img_Stern.Top < 50) then Richtungstern :=1;
If (richtung=1) and (img_Stern.Left + img_Stern.Width + 50 > form1.Width) then Richtungstern :=4;
If (richtung=4) and (img_Stern.Top + img_Stern.Height + 50 > form1.Height) then Richtungstern := 3;
If (richtung=3) and (img_Stern.Left < 50) then Richtungstern :=2;
Kann mir bitte noch einen Denkanstoß geben?
  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 14:25 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