Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Почему такой код в DelphiX не работает?   Найти похожие ветки 

 
Просто_Я   (2006-02-28 23:02) [0]

Вот выводит черный экран. Не понимаю в чем дело. Я правда только начал разбираться с DX, так что извините за ламерский вопрос
type TBackground = class (TBackgroundsprite)
public

end;
var sbackground:tbackground;

procedure TForm1.FormCreate(Sender: TObject);
var i,j:integer;
begin
SBackground := TBackground.Create (DXSpriteEngine1.Engine);
with SBackground do
begin
  image := DXImageList1.Items.Find("image1");
  image.Transparent := false;
  SetMapSize(4,4);
  Z := -10;
  for i := 0 to 3 do
     for j := 0 to 3 do
        Chips[j,i] := 0;
  Tile := true;
end;

end;

Спасибо


 
KreeS ©   (2006-03-01 01:22) [1]

Сначала хотябы попробуй изучить примеры, идущие в комплекте с DelphiX
Код который ты написал за само рисование не отвечает :)


 
JUS ©   (2006-03-01 14:47) [2]

изучай примеры


 
Cash ©   (2006-03-01 15:02) [3]

Умиляет еще один факт:
Зачем наследовать класс, если нет намерения его модифицыровать?

Кто нибудь сможет ответить?


 
Просто_Я   (2006-03-01 22:15) [4]

Вот почитал примеры, спасибо за совет, вроде все рисуется, но хочется сделать движущийся тайловый фон, что для этого следует сделать.
Вот прога.
Что следует написать в TBack.DoMove, как заставить прорисоваться нужные ячейки (вряд ли DoDraw)?

 type
TBack = class(TBackGroundSprite)
public
     procedure DoMove(MoveCount: Integer); override;
end;

var
 Form1: TForm1;
  Back: TBack;
implementation

{$R *.dfm}

procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
//Activate Timer
DXTimer1.Enabled := True;

end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXInput1.Update;
DXSpriteEngine1.Move(1);

DXSpriteEngine1.Draw;

DXDraw1.Flip;
end;

procedure TForm1.FormCreate(Sender: TObject);

var
i,j: Integer;
begin

randomize;
Back := TBack.Create (DXSpriteEngine1.Engine);
with Back do
begin
  image := DXImageList1.Items.Find("back");
  image.Transparent := false;
  SetMapSize(4,4);
  Z := -10;
  for i := 0 to 3 do
     for j := 0 to 3 do
        Chips[j,i] := random(2);
  Tile := false;
end;

end;

procedure TBack.DoMove(MoveCount: Integer);
begin
X := X - 5;

end;


 
Просто_Я   (2006-03-01 23:13) [5]

Точнее вопрос такой, берем проходим по ширине и высоте (вложенные циклы) и как нарисовать нужную ячейку в нужном месте (это вроде делается BitBlt, но я не понимаю аргументы)  ?
Мне отрисовывать советовали так
type
Camera = record
  X, Y, //верхний-левый угол камеры на карте
  W, H, // ширина, высота камеры (все в ячейках)
  Speed: Integer;
end;

там где отрисовываешь карту...
for i := Camera.Y to Camera.Y+Camera.H do
for j := Camera.X to Camera.X+Camera.W do
  нарисовать_ячейку(i, j);

а когда жмешь на стрелки делай...
Camera.X := Camera.X + Camera.Speed;

Где отрисовывать карту. Сделать процедуру Back.Draw что-ли? Тогда где ее вызывать или она автоматом вызывается DXSpriteEngine?
Помогите, пожалуйста.



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
15-1165573913
plotn
2006-12-08 13:31
2006.12.31
Иконки


2-1166031511
callback
2006-12-13 20:38
2006.12.31
Массив с данными.


2-1165784910
tigrenok_o
2006-12-11 00:08
2006.12.31
Подскажите пожалуйста


15-1165424732
vidiv
2006-12-06 20:05
2006.12.31
зацените мою доску


1-1163492333
Layner
2006-11-14 11:18
2006.12.31
Showmessage в TThread.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский