AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi snake problem dringend "aufnahme" von futter klappt net
Thema durchsuchen
Ansicht
Themen-Optionen

snake problem dringend "aufnahme" von futter klappt net

Ein Thema von nick-1212 · begonnen am 6. Jun 2004 · letzter Beitrag vom 6. Jun 2004
Antwort Antwort
nick-1212

Registriert seit: 6. Jun 2004
2 Beiträge
 
#1

snake problem dringend "aufnahme" von futter klapp

  Alt 6. Jun 2004, 15:53
hi ich hab ein kleines problem bei meinem snake programm


Delphi-Quellcode:


unit Usnake;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
procedure kol;
procedure futter;
var

  Form1: TForm1;
  x1,y1,dx1,dy1,n,fx1,fy1 : integer;
  xy:array [1..10,1..2] of integer;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
futter;
x1 := 230;
y1 := 190;
dx1:= 10;
dy1:= 0;
n := 10;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i : integer;
begin
 kol;

 for i := n downto 2
 do begin
  xy[i,1] := xy[i-1,1];
  xy[i,2] := xy[i-1,2];

 end;

 xy[1,1] := x1;
 xy[1,2] := y1;


 with image1.canvas do begin
    brush.color := clWhite;
    pen.color := clWhite;
    rectangle(xy[n,1],xy[n,2],xy[n,1]+10,xy[n,2]+10);
end;


 with image1.canvas do begin
     x1:=x1+dx1;
     y1:=y1+dy1;
     brush.color := clBlack;
     pen.color := clBlack;
     rectangle(x1,y1,x1+10,y1+10)
end;

end;

procedure futter;
var fx1,fy1 : integer;
begin
 randomize;
 fx1 := 100;
 fy1 := 100;

 form1.image1.Canvas.Brush.Color := clblue;
 form1.image1.canvas.pen.color := clBlue;
 form1.image1.Canvas.rectangle (fx1 ,fy1 ,fx1 +10 ,fy1 + 10 );
end;

procedure kol;
var i : integer;
begin
if (x1 <= 0) or (y1 <=0) or (x1 >= form1.Image1.Width) or (y1 >= form1.Image1.height)
then begin form1.timer1.enabled := false;
           showmessage ('verloren') ;

end;

if (x1 >= fx1) and (x1 <= (fx1+10))
then
if (y1 >= fy1) and (y1 <= (fy1+10)) then begin


showmessage('Game Over!');
//for i:=n downto 1
// do begin
// if (fx1 = xy[i,1]) and (fy1 = xy[i,2])
// then begin

n := n +1 ;
futter;


end;


for i:= n downto 1
     do begin
     if (x1 = xy[i,1]) and (y1 = xy[i,2])
        then begin
form1.timer1.enabled:=false;
showmessage('Game Over!');

end;
end;
end;
es funktioniert alles bis auf die "aufnahme" des futters. Irgendwas stimmt mit den koordinaten nicht
Ich hoffe ihr könnt mir helfen

das problem befindet sich in dieser zeile :
Delphi-Quellcode:

if (x1 <= 0) or (y1 <=0) or (x1 >= form1.Image1.Width) or (y1 >= form1.Image1.height)
then begin form1.timer1.enabled := false;
           showmessage ('verloren') ;

end;

if (x1 >= fx1) and (x1 <= (fx1+10))
then
if (y1 >= fy1) and (y1 <= (fy1+10)) then begin


showmessage('Game Over!');
//for i:=n downto 1
// do begin
// if (fx1 = xy[i,1]) and (fy1 = xy[i,2])
// then begin

n := n +1 ;
futter;
thx
  Mit Zitat antworten Zitat
Ratte

Registriert seit: 12. Dez 2003
Ort: Erfurt
345 Beiträge
 
Delphi 2005 Personal
 
#2

Re: problem mit programm dringend

  Alt 6. Jun 2004, 16:44
Für mich sieht das so aus als ob die Pixel ganz genau stimmen müssen, undnicht berührung des Feldes reicht.

Ratte

P.S. Wähle bitte einen aussagekräftigeren Titel!
Schiffsratte der U.S.S. Delphipraxis, Laderaum 4538
BUSH:= TTerminator.create;
  Mit Zitat antworten Zitat
nick-1212

Registriert seit: 6. Jun 2004
2 Beiträge
 
#3

Re: problem mit programm dringend

  Alt 6. Jun 2004, 16:50
hmm und wie erreich ich das ?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: problem mit programm dringend

  Alt 6. Jun 2004, 17:15
Zitat von nick-1212:
hmm und wie erreich ich das ?
Hai nick-1212,
bitte ändere den Titel deiner Frage. Unter "problem" kann sich keiner etwas vorstellen Umso genauer der Titel ist umso eher wird jemand deine Frage lesen und, so hoffen wir ja alle, auch beantworten könne. Einfach bei deinem ersten Posting auf den EDIT-Button klicken.
Danke.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  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 16:44 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