Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2013, 23:05
Victoria Victoria вне форума
Прохожий
 
Регистрация: 18.12.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию DelphiX !!

Написала код игры
Игра простая
я двигаю человечком и должна убить паучка.
компилируется,запускается, все без ошибок (не выдает их)
НО при запуске выводит только белый экран!
ни моих пауков, ничего.. что делать?
Ответить с цитированием
  #2  
Старый 18.12.2013, 23:24
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
что делать?
Изменить код.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
PhoeniX (18.12.2013)
  #3  
Старый 18.12.2013, 23:30
Victoria Victoria вне форума
Прохожий
 
Регистрация: 18.12.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

не надо исправлять код. моя проблема в прозрачности цвета
Ответить с цитированием
  #4  
Старый 18.12.2013, 23:40
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от Victoria
не надо исправлять код
Первое правило человека, который хочет стать программистом: компьютер делает не то, чего от него хотят, а то, что ему приказывают. Если вам не нравится результат его работы - вы неправильно приказываете. Приказом в данном случае является код программы. Следовательно, его надо исправлять.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 18.12.2013, 23:48
Victoria Victoria вне форума
Прохожий
 
Регистрация: 18.12.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

спасибо за помощь
Ответить с цитированием
  #6  
Старый 18.12.2013, 23:50
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Незачто, обращайтесь! Мы можем помочь ещё, если увидим саму программу
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 19.12.2013, 02:27
Victoria Victoria вне форума
Прохожий
 
Регистрация: 18.12.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
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  
Старый 19.12.2013, 14:15
Victoria Victoria вне форума
Прохожий
 
Регистрация: 18.12.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
Печаль

мне посоветовали добавить компонент bitmap
и там с прозрачностью поиграть...
но нельзя же меня судить, когда я не знаю, как этим пользоваться.
посоветуйе что-нибудь...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025