Массивы в дэлфи 5

  • Автор темы kosht
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

kosht

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

Guest

#2
kosht
я не понял что-то
одновременно одной переменной никак не передать :)
сделай x: array of integer;
потом задай размер и работай с массивом.
 
K

kosht

#3
Ну дык как работать то с масивом????
Я новечёк в этом ?
 
G

Guest

#4
kosht
если матрица задана то пишещь напр
x:array [0..255,0.255] of integer;

а потом в программе присваиваешь значения
напр.

x[100,20]:=10;
т.е. ячейка по x=100 по y=20 будет иметь значеие 10;
 
K

kosht

#5
Так в это я вроде вьехал :)
Тут тогда назревает ещё вопрос - что такое матрица и с чем её едят!
 
B

Barmutik

#6
Матрица (в этом случае)- это двумерный массив элементов типа Integer
 
K

kosht

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

admin

Well-known member
08.08.2003
2 754
0
#8
kosht
исходник арканоида глянь на delphi.mastak.ru. Z там видел.
 
H

Hetman

#9
А ты вообще где учишся? что об матрицах и слыхом не слыхивал, в моём институте на 1 курсе изучают. А если в двух словах:
матрица, например, 10Х10 или 2Х... неважно на сколько - некая таблица с n столбцами и m строками в каждой из ячеек из которой какоето значение. Короче открой Exel и сам всё поймёшь. :)
 
K

kosht

#10
Кароче пацаны я всё решил с картой
даю исходник
каму интересно канэшна :)


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.
 
Статус
Закрыто для дальнейших ответов.