Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi AV bei Shooter-game (https://www.delphipraxis.net/94625-av-bei-shooter-game.html)

dajuhsa 24. Jun 2007 12:54


AV bei Shooter-game
 
Liste der Anhänge anzeigen (Anzahl: 1)
Tach erstmal,

ich sitze also vor meinem Computer, versuche mich an einem Shooter und ahne nichts böses. :mrgreen: :coder:
Ich versuchs mal, gebe 20 Schüsse ab und ernte etwas, das einer AV ähnelt und um mir zu zeigen, was nicht stimmt, zeigt Delphi mir die "böse" Stelle im compillierten Code :pale: , naja ich bin kein Computer deswegen möchte ich euch fragen, was nicht stimmt.

Steuerung: Pfeiltasten und Leertaste

:dp:

CalganX 24. Jun 2007 13:09

Re: AV bei Shooter-game
 
Ohne den entsprechenden Code, werden wir dir wahrscheinlich nicht helfen können. Wenn eine AV auftritt, wirst du irgendwo auf ein nicht mehr existierendes Objekt zugreifen oder dergleichen.

Chris

[edit]Sorry, hab übersehen, dass auch Code dabei ist. Mfg, CalganX[/edit]

dajuhsa 24. Jun 2007 13:12

Re: AV bei Shooter-game
 
der code liegt bei...

Cyberaxx 24. Jun 2007 13:13

Re: AV bei Shooter-game
 
---------------------------
shogame
---------------------------
Cannot open file "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Eigene Bilder\flyer.bmp". Das System kann die angegebene Datei nicht finden.
---------------------------
OK
---------------------------

Vllt. sollte man auch alles mitliefern wenn man die exe starten soll ;)
Habe da so nicht viel Ahnung aber sollten nicht vllt die Images oder sonstiges was das Game laden sollte in Game Ordner liegen?

Die AV kam mir eindeutig zu heufig.

[Edit]
Delphi-Quellcode:
      0: Loadfromfile('.\flyer.bmp');
      1: Loadfromfile('.\flyer Kopie.bmp');
Pfadangaben stimmen nicht so richtig. Die exe und der Source sind auf meinem Desktop.

dajuhsa 24. Jun 2007 13:17

Re: AV bei Shooter-game
 
:oops: ich hab noch mal editiert jetzt müsste alles gehen, es ist mir auch schon aufgefallen :oops:
die bilder sind jetzt dabei...

Cyberaxx 24. Jun 2007 13:19

Re: AV bei Shooter-game
 
Nicht so ganz, die AV kommt immernoch, er sucht immernoch die Images im falschen Ordner.

---------------------------
shogame
---------------------------
Cannot open file "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Eigene Bilder\flyer.bmp". Das System kann die angegebene Datei nicht finden.
---------------------------
OK
---------------------------

Delphi-Quellcode:
0: Loadfromfile('.\flyer.bmp');
1: Loadfromfile('.\flyer Kopie.bmp');
ersetzen :)
0: Loadfromfile('flyer.bmp');
1: Loadfromfile('flyer Kopie.bmp');
[Edit] Achja ich bin nicht als Admin angemeldet. :D

CalganX 24. Jun 2007 13:24

Re: AV bei Shooter-game
 
Grundsätzlich empfiehlt es sich bei sowas, den gesamten Pfad anzugeben:
Delphi-Quellcode:
LoadFromFile( IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'flyer.bmp' );
Wenn man es richtig schön machen will, lagert man den Pfad in eine Funktion aus:
Delphi-Quellcode:
LoadFromFile( ImagePath('flyer.bmp') );

{ ... }

function ImagePath(AFileName: string);
begin
  Result := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + AFileName;
end;
Chris

turboPASCAL 24. Jun 2007 13:26

Re: AV bei Shooter-game
 
Delphi-Quellcode:
procedure TForm2.Timer2Timer(Sender: TObject);
begin
  with Image2.Picture do
    case feuer of
      0: Loadfromfile('.\flyer.bmp');
      1: Loadfromfile('.\flyer Kopie.bmp');
    end;
  case feuer of
    0: inc(feuer);
    1: dec(feuer);
  end;
end;

Tschuldigung aber so etwas Programiermüll. Alle X Millisec auf der Festplatte rumkratzen... :?
Lade es dir in eine Bitmap und gut ist. Meinetwegen auch in ein Image dann kanst du es einfach
mit Top/Left verschieben.

Der Fewhler kommt beim Timer2:

Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
var
i: Integer;
begin
  with Image2 do begin
    if GetAsyncKeyState(VK_left)<>0 then Left := Left-2;
    if GetAsyncKeyState(VK_right)<>0 then Left := Left+2;
    if GetAsyncKeyState(VK_Up)<>0 then Top := Top-2;
    if GetAsyncKeyState(VK_Down)<>0 then Top := Top+2;
  end;

  for i := low(Schuss) to high(Schuss) do begin
    if Schuss[i].Y > 0 then Schuss[i].Y := Schuss[i].Y-1;  // sollte so aussehen
  //^^^^^^^^^^^^^^^^^^^^^^^^

    if Schuss[i].Y<20 then begin
      Move(Schuss[1], Schuss[0], Length(Schuss)); // und hier das zweite Problem
      SetLength(Schuss, Length(Schuss)-1);       //   das solltest du dir nochmal
    end;                                         //   genau durchdenken.

    Canvas.Ellipse(Schuss[i].X-5, Schuss[i].Y-5, Schuss[i].X+5, Schuss[i].Y+5);
  end;
end;

dajuhsa 24. Jun 2007 15:22

Re: AV bei Shooter-game
 
okay, ich hab das mit den bildern jetzt auskommentiert und werde das mit der imagelist machen wenn das andere klappt.

Zitat:

Delphi-Quellcode:
...
for i := low(Schuss) to high(Schuss) do begin
  if Schuss[i].Y > 0 then Schuss[i].Y := Schuss[i].Y-1;  // sollte so aussehen
  //^^^^^^^^^^^^^^^^^^^^^^^^ 
...

okay, danke hab ich nicht dran gedacht.


Zitat:

Delphi-Quellcode:
...
if Schuss[i].Y<20 then begin
      Move(Schuss[1], Schuss[0], Length(Schuss)); // und hier das zweite Problem
      SetLength(Schuss, Length(Schuss)-1);       //   das solltest du dir nochmal
    end;                                         //   genau durchdenken.

...

dass ich es mir durchdenken soll war mir klar, deswegen frag ich jetzt ja auch nach, weil das durchdenken nix gebracht hat...
hat also irgendjemand ne idee wie ich das hinbiegen soll? :spin2:

dajuhsa 24. Jun 2007 21:21

Re: AV bei Shooter-game
 
ähäm... :mrgreen: nur zur info, will ja niemanden belästigen, die frage ist noch nicht beantwortet... :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Seite 1 von 2  1 2      

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