AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX - Neustart des Spiels
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX - Neustart des Spiels

Ein Thema von Haegar · begonnen am 20. Mär 2003 · letzter Beitrag vom 20. Mär 2003
Antwort Antwort
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

DelphiX - Neustart des Spiels

  Alt 20. Mär 2003, 19:02
hi,
ich hätt mal eine frage zu frägen.
und zwar habe ich nen menüpunkt (Neues Spiel).
wenn ich da drauf drücke, dann wollte ich:
- schiff an untere mittlere position bringen (kein problem)
- verschiedene variablen auf anfangswerte setzen (kein problem)
- das array of TAsteroid leeren (wurde schonmal
angesprochen).....folgendes problem:
es gibt 3 verschiedene dinge die dabei rauskommen

a) alles klappt super (neu zeichnen, feld leer...keinerlei
fehlermessage); meistens wenn schon einige asteroiden durchgelaufen
sind

b) er bricht gleich Fehlermeldung ab......passiert meistens, wenn der
erste asteroid noch im spiel ist

c) siehe b) mitten im spiel, eventuell hintergrundbild nicht mehr da

das problem warum geschiet a) und c) (is "zufällig" würde ich behaupten)
warum bricht er gleich ab, wenn ich am anfang neu starte?

Delphi-Quellcode:
procedure TForm1.Neu1Click(Sender: TObject);
var i: byte;
begin
 DXtimer.Enabled:=false;
 for i:=indexasteroid downto 0 do
  begin
   if tot[i]=false then
    asteroid[i-1].Dead;
  end;
ich denke mal es liegt an diesem teil der procedure!

gruss haegaer
  Mit Zitat antworten Zitat
arnoldo

Registriert seit: 8. Dez 2002
Ort: Berlin
131 Beiträge
 
Delphi 7 Personal
 
#2
  Alt 20. Mär 2003, 20:41
Tach Haeger,

das könnte daran liegen das, wenn bei Deiner Schleife
der Wert i=0 erreicht und der Asteroid noch am 'leben'
(tot[0]=false) ist, auf dem Asteroid-Array mit -1
zugegriffen wird. Und ich könnte mir vorstellen das
dieser nur von [0..x] definiert ist, d.h. Du löscht
in dem Moment einen nicht existierenden Asteroid.

arnoldo
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 20. Mär 2003, 21:02
wirst lachen, wenn ich das nicht mache...also asteroid[i].dead; dann kommt erst recht ne fehlermeldung, die hängt hundert-pro damit zusammen, ich kanns mir nicht erklären, aber wenn ich [i-1] schreibe dann kommt die nicht mehr, und manchmal klappts, amnchmal nicht!?
hab da noch echt das grübeln.

hatte mir das so gedacht:
- gesamtes tot-array am anfang (form.create) auf true
- beim erzeugen eines asteroiden tot[asteroidindex]:=false
- wenn asteroid aus bild, oder kollidiert dann tot[asteroidindex]:=true;
- nun die abfrage (siehe oben)

hab ich da irgendwas vergessen? eigentlich net oder?
edit: hab nochmal alles gemacht wie oben, keine fehler,eldung mehr, aber die asteroiden verschwinden einfahc net, fliegen an alter position weiter

gruss haegar
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#4
  Alt 20. Mär 2003, 21:19
ok ich habs, wahrscheinlich bekam ihm das downto nicht.
Lösung:
Delphi-Quellcode:
for i:=0 to indexasteroid do
  begin
   if tot[i]=false then
    asteroid[i].Dead;
  end;

gruss haegar
  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 18:50 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