AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi breakout clon, datei problem
Thema durchsuchen
Ansicht
Themen-Optionen

breakout clon, datei problem

Offene Frage von "geojanm"
Ein Thema von geojanm · begonnen am 29. Mär 2008 · letzter Beitrag vom 31. Mär 2008
Antwort Antwort
geojanm

Registriert seit: 21. Mär 2008
5 Beiträge
 
Delphi 7 Personal
 
#1

breakout clon, datei problem

  Alt 29. Mär 2008, 11:43
Hallo, für ein Infoabschlussprojekt habe ich mir einen Breakoutclon vorgenommen. Dabei hänge ich gerade an der Dateiarbeit bzw deren umsetzung. Ich speichere das Level in der DAtei Level.txt per Editor (siehe Anhang).beim auslesen und anschließenden Zeichnen passiert aber der Fehler, dass alle blöcke immer länger werden. dabei muss es sich um einen "logischen" Fehler handeln. Könntet ihr eventuell mal drüber schauen und mir helfen diesen fehler zu finden.
Vielen Dank schonmal.

Delphi-Quellcode:
for i:=0 to endofarray do
if ((ball_xl<=block[i].xr)and(ball_xr>=block[i].xl)and(ball_yo<=block[i].yu)and(ball_yu>=block[i].yo)) then
Ändere Richtung, deaktivieren den Block und erhöhe die Punkte
das währe dann noch meine kollision zu den einzelnen blöcken. das ganze funktioniert jetzt auch noch nicht. ich weiß aber nicht, ob das jetzt, an dem oben genannten fehler liegt. ich habe mir das ganze mal aufgezeichnet. mit meinem logischen verständniss ist die schnittmenge dieser anweisungen genau der block, sodass die entsprechenden anweisungen ausgeführt werden. das ganze klappt allerdings auch nicht. wieder die logik, oder wegen dem anderen fehler?
Angehängte Dateien
Dateityp: zip breakout_2_150.zip (210,6 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: breakout clon, datei problem

  Alt 29. Mär 2008, 12:23
Moin, Moin,

1. Ich kann in Unit1 nicht entdecken, dass hier etwas in der Datei gespeichert wird.
2. Die Datei wird zwar um Lesen geöffnet, aber nicht wieder geschlossen.
3. Warum verwendest du in FormKeyDown "GetAsyncKeystate" und nicht einfach "Key"?

Die Reaktion auf die Tasten CursorLeft/Right ist viel zu träge - oder?
Ralph
  Mit Zitat antworten Zitat
geojanm

Registriert seit: 21. Mär 2008
5 Beiträge
 
Delphi 7 Personal
 
#3

Re: breakout clon, datei problem

  Alt 29. Mär 2008, 12:28
zu 1. in der datei wird auch nichts gespeichert. ich habe die level datei einfach nur mit dem editor geschrieben und öffne diese dann in delphi.

zu 2. danke, das habe ich gleich geändert. nachdem alles ausgelesen wird schließe ich die datei jetzt.

zu 3. in der schule hatten wir nur diese eine methode, ist deine methode für diesen fall von vorteil?

Vielen Dank für die Antwort
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#4

Re: breakout clon, datei problem

  Alt 29. Mär 2008, 12:39
Hmmmmm, bin ich nun für Spiele zu alt???? Es ist schon frustierend

Na, ist ein wenig kürzer, ohne "GetAsync..." zu arbeiten:

Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
begin
  if Key=VK_RIGHT then
    if paddle_xr<image1.ClientWidth then begin
      paddle_xl:=paddle_xl+10;
      paddle_xr:=paddle_xr+10;
      end;

  if Key=VK_LEFT then
    if paddle_xl>0 then begin
      paddle_xl:=paddle_xl-10;
      paddle_xr:=paddle_xr-10;
      end;
end;
Aber trotzdem ist die Reaktion nach meinem Empfinden immer noch zu träge
Ralph
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: breakout clon, datei problem

  Alt 29. Mär 2008, 12:57
Das Bedienungsproblem kann dadurch gelöst werden, dass die Tastaturabfrage in die TimerMethode integeriert wird; damit sind wir dann wieder bei der ursprünglichen "GetAsync.." Lösung. Nun reagiert der "Schläger" zufriedenstellend schnell:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer;
begin

  if GetAsyncKeyState(vk_Right)<>0 then
    if paddle_xr<image1.ClientWidth then begin
      paddle_xl:=paddle_xl+10;
      paddle_xr:=paddle_xr+10;
      end ;

  if GetAsyncKeyState(vk_left)<>0 then
    if paddle_xl>0 then begin
     paddle_xl:=paddle_xl-10;
     paddle_xr:=paddle_xr-10;
     end;
//...
//..
Dein Problem mit der willkürlichen Änderung der Blocklängen habe ich leider nicht wirklich verstanden
Ralph
  Mit Zitat antworten Zitat
geojanm

Registriert seit: 21. Mär 2008
5 Beiträge
 
Delphi 7 Personal
 
#6

Re: breakout clon, datei problem

  Alt 30. Mär 2008, 18:42
das mit der tastatur habe ich so übernommen. das ist wirklich um einiges besser. vielen dank dafür.
hat jemand vielleicht noch eine idee, warum die blöcke so seltsam aussehhen?
  Mit Zitat antworten Zitat
geojanm

Registriert seit: 21. Mär 2008
5 Beiträge
 
Delphi 7 Personal
 
#7

Re: breakout clon, datei problem

  Alt 30. Mär 2008, 20:56
ich habe heute noch etwas weiter gemacht. das ist das resultat für heute. leider kann ich den fehler immer noch nicht finden. sowohl in der dateiarbeit als auch in der kollision. Am Start habe ich einmal eine message ausgegeben, die die die jeweiligen rechten y werte ausgeben. diese sind korrekt. auch in der zeichenfunktion kann ich keinen fehler entdecken.
was meint ihr zu dem "menü" kann man das so machen? die bedienung geht über die pfeiltasten und die enter bzw die escape taste. tw habe ich allerdings noch flackerprobleme, wenn ich auch probleme mit den blöcken habe. daran bitte nicht stören^^
dann würde ich gerne eure meinung und eure ratschläge hören. besonders zu dem blockproblem....
Vielen Dank
Angehängte Dateien
Dateityp: zip project1_552.zip (222,8 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
geojanm

Registriert seit: 21. Mär 2008
5 Beiträge
 
Delphi 7 Personal
 
#8

Re: breakout clon, datei problem

  Alt 31. Mär 2008, 18:27
das eigentlich problem ist gelöst. ich hatte eine doppelzuweisung beim auslesen der dateien.
jetzt habe ich aber noch eine andere frage. gibt es eine funktion, mit dem ich text eingeben kann? damit meine ich etwas wie die funktion name:=InputBox('Neuer Highscore', 'Bitte gib deinen Namen ein: ', ''); das ganze aber ohne diese box. ich würde das gerne in meine oberfläche integrieren, sodass das mit dieser box ziemlich doof aussieht.

Vielen Dank
Angehängte Dateien
Dateityp: zip inforprojekt_140.zip (249,5 KB, 8x aufgerufen)
  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 19: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