Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

МАСсИВЫ [Delphi, delphix]


LEV ©   (2004-05-30 22:34:00) 

вопрос такой -
как например переменной
x:Integer;
придать значения 103 124 354 448 623
к примеру надо
вывести карту арканойда,
есть один кубик.
Нужно :что бы он разместился на
y:=200 и
x:= 103
x:= 124
x:= 354
x:= 448
x:= 623 одновременно
???????????????????????????????????
Заранее благодарен.


LEV   (2004-06-16 04:09:00) [1]

кароче разобрался я
смарите исходник

unit map;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 DXDraws, DXSprite, DXClass;

 const Mapa : array [1..5,1..11] of integer=(
(4,5,4,5,3,5,3,4,5,3,5),
(4,5,4,5,3,5,3,4,5,3,5),
(4,5,4,5,3,5,3,4,5,3,5),
(4,5,4,5,3,5,3,4,5,3,5),
(2,5,4,5,3,5,3,4,5,3,5));

type
 TForm1 = class(TDXForm)
   DXDraw1: TDXDraw;
   DXSpriteEngine1: TDXSpriteEngine;
   DXImageList1: TDXImageList;
   DXTimer1: TDXTimer;
   procedure FormKeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
   procedure DXDraw1Finalize(Sender: TObject);
   procedure DXDraw1Initialize(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
 i,j:integer;

implementation

{$R *.DFM}
//расписываем классы
type
   TKirp = class(TImageSprite)      //Класс игрока
protected
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
if Key=VK_ESCAPE then application.Terminate;
end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
   if not DXDraw1.CanDraw then application.Terminate;
 DXSpriteEngine1.Move(LagCount);
 DXSpriteEngine1.Dead;
 DXDraw1.Surface.Fill(0);
 DXSpriteEngine1.Draw;

    with DXDraw1.Surface.Canvas do
 begin
   Brush.Style := bsClear;
   Font.Color := clwhite;
   Font.Size := 8;
   Textout( 10, 0, 'FPS: '+inttostr( DXTimer1.FrameRate ) );
   Textout( 10, 10, 'Спрайтов: '+inttostr(DXSpriteEngine1.Engine.AllCount));
   Release;
 end;
 DXDraw1.Flip;
end;

procedure TForm1.DXDraw1Finalize(Sender: TObject);
begin
DXTimer1.Enabled := False;
end;

procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
  DXTimer1.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   For j:= 1 to 5 do
    For i:= 1 to 11 do
     If Mapa[j,i]>2 then
with TKirp.Create(DXSpriteEngine1.Engine) do
 begin
   if Mapa[j,i]=3 then Image:=DXImageList1.Items.Find('kirp1');
   if Mapa[j,i]=4 then Image:=DXImageList1.Items.Find('kirp2');
   if Mapa[j,i]=5 then Image:=DXImageList1.Items.Find('kirp3');
   Collisioned := true;
   x:=j*36+136;
   y:=i*20+200;
   Z := 0;
   Tile := False;
 end;
end;

end.


nexxiss   (2004-06-06 18:46:00) [2]

http://delphigfx.mastak.ru/game/pingpong.rar
http://delphigfx.mastak.ru/game/arcanoid.rar


LEV   (2004-06-05 22:40:00) [3]

Если чесно туплю по полной :)
может у кого исходник есть?
иммено простой карты для арканойда
простьо карту что бы разобраться
очень прошу
курсовая горит мля....
levq@tut.by - если можно скиньте сюда


nexxiss   (2004-06-01 13:55:00) [4]

var
 Map: array [1..100,1..100] of Integer; // матрица 100х100

Лучше создай свой класс Кубика, чтоб он сам о себе заботился при выводе на поверхность и об уничтожении при попадании в него шариком. Потом динамически создавай. Координаты храни в одномерном массиве:

const
 NumOfBlocks = 100; // кол-во кубиков

запись координат для кубика:
type
 TBlock = record
   X,
   Y: Integer;
 end;

вот из этого массива берешь координаты своих кубиков при динамическом создании потомков класса:
var
 XYarray: array [1..NumOfBlocks] of TBlock;
 
например:
 MyBlock.Create(XYarray[1].X,XYarray[1].Y]); // конструктор класса


LEV   (2004-06-01 03:09:00) [5]

А по подробнее можно?
если есть исходник какой нить простой по созданию матрицы и т.д
то есть самое простое построении карты.


MrAngel   (2004-05-31 02:36:00) [6]

Надо двумерный массив этих интеджеров.


Thor   (2004-05-30 23:10:00) [7]

BitBlt + F1


Наверх

Титульная страница Поиск, карта сайта Написать письмо