![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Написала код игры 
		
	
		
		
		
		
		
	
		
		
	
	
	Игра простая я двигаю человечком и должна убить паучка. компилируется,запускается, все без ошибок (не выдает их) НО при запуске выводит только белый экран! ни моих пауков, ничего.. что делать?  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  | 
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
 
PhoeniX (18.12.2013)
  | ||
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 не надо исправлять код. моя проблема в прозрачности цвета 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 спасибо за помощь 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Незачто, обращайтесь! Мы можем помочь ещё, если увидим саму программу  
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	![]()  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Код: 
	unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXDraws, DIB, DXSprite, DXClass, DXInput;
 
type
  TfrmDelphiX1 = class(TDXForm)
    DXDraw: TDXDraw;
    DXSpriteEngine: TDXSpriteEngine;
    DXTimer: TDXTimer;
    DXImageList: TDXImageList;
    DXInput: TDXInput;
    procedure FormCreate(Sender: TObject);
    procedure DXTimerTimer(Sender: TObject; LagCount: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
  TPlayerSprite = class(TImageSprite)       
  protected
    procedure DoMove(MoveCount: Integer); override; 
  end;
 
  TSpider = class(TImageSprite) 
  Protected
  
    procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
    procedure DoMove(MoveCount: Integer); override;
  public
    constructor Create(AParent: TSprite); override; 
    destructor Destroy; override; 
  end;
 
  TBullet = class(TImageSprite)
  protected
    procedure DoCollision(Sprite: TSprite; var Done: Boolean); override;
    procedure DoMove(MoveCount: Integer); override;
  public
    constructor Create(AParent: TSprite); override;
    destructor Destroy; override;
  end;
 
 
var
  frmDelphiX1: TfrmDelphiX1;
  i:boolean;
 
implementation
 
//  TBullet 
Procedure TBullet.DoMove(MoveCount: Integer);
Begin
  inherited DoMove(MoveCount);
  y:=y-5;  
end;
 
constructor TBullet.Create(AParent: TSprite);
begin
  inherited Create(AParent);
end;
 
destructor TBullet.Destroy;
begin
  inherited Destroy; 
end;
 
procedure TBullet.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
  if Sprite is TSpider then dead;
  Collision;
end;
 
//TSpider 
Procedure TSpider.DoMove(MoveCount: Integer);
begin
   inherited DoMove(MoveCount);
   if x>= 500 then I:= false;    
   if x<= 0 then I:= true;     
   if i=true then X := X+1;
   if i=false then X := X-1;
   Collision;
end;
 
constructor TSpider.Create(AParent: TSprite); 
begin
  inherited Create(AParent);
  Image := frmDelphiX1.DXImageList.Items.Find('Spider');
  Width := Image.Width;
  Height := Image.Height;
end;
 
 
destructor TSpider.Destroy;  
begin
  inherited Destroy;
end;
 
procedure TSpider.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
 
  if Sprite is TBullet then dead;
  Collision; 
end;
 
//  TPlayerSprite 
Procedure TPlayerSprite.DoMove(MoveCount: Integer);
begin
    inherited DoMove(MoveCount);
   
    if isLeft in frmDelphiX1.DXInput.States then x:=x-5;
  
    if isRight in frmDelphiX1.DXInput.States then x:=x+5;
   
    if isup in frmDelphiX1.DXInput.States then
    begin
      with TBullet.Create(Engine) do
      begin
        PixelCheck := True;
        Image := frmDelphiX1.dxImageList.Items.Find('Bullet');
        Image := frmDelphiX1.dxImageList.Items.Find('Spider');
     
        X := Self.X+Self.Width  -40;
    
        Y := Self.Y+Self.Height -80;
        Width := Image.Width;
        Height := Image.Height;
      end;
    end;
    if  y >= frmDelphiX1.DXDraw.SurfaceHeight-image.Height then  
      y := frmDelphiX1.DXDraw.SurfaceHeight-image.Height;       
    if  x >= frmDelphiX1.DXDraw.SurfaceWidth -image.Width  then  
      x := frmDelphiX1.DXDraw.SurfaceWidth -image.Width;         
    if  y <= 0 then
      y := 1;
    if  x <= 0 then
      x:=1;
end;
 
 
{$R *.dfm}
 
procedure TfrmDelphiX1.FormCreate(Sender: TObject);
begin
  i:=true;
  with TSpider.Create(DXSpriteEngine.Engine) do
  begin
     PixelCheck := True;          
     Image := frmDelphiX1.dxImageList.Items.Find('Spider');
     x:=10;
     y:=10;  
     Width := Image.Width;          
     Height := Image.Height;        
   end;
   with TPlayerSprite.Create(DXSpriteEngine.Engine) do
   begin
     PixelCheck := True;
     Image := frmDelphiX1.dxImageList.Items.Find('GameUnit');
     x:=500;
     y:=500;
     Width := Image.Width;
     Height := Image.Height;
   end;
end;
 
procedure TfrmDelphiX1.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin
  if not DXDraw.CanDraw then exit; 
  DXInput.Update;
  DXSpriteEngine.Move(LagCount);
  DXSpriteEngine.Dead;
  DXDraw.Surface.Fill(clWhite);
  DXSpriteEngine.Draw;
  DXDraw.Flip;
end;
 
end.Последний раз редактировалось Victoria, 19.12.2013 в 13:49.  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 мне посоветовали добавить компонент bitmap 
		
	
		
		
		
		
		
	
		
		
	
	
	и там с прозрачностью поиграть... но нельзя же меня судить, когда я не знаю, как этим пользоваться. посоветуйе что-нибудь...  |