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

Тема в разделе "Delphi - FAQ", создана пользователем kosht, 21 май 2004.

Статус темы:
Закрыта.
  1. kosht

    kosht Гость

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

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

    kosht Гость

    Ну дык как работать то с масивом????
    Я новечёк в этом ?
     
  4. Гость

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

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

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

    kosht Гость

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

    Barmutik Гость

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

    kosht Гость

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    kosht
    исходник арканоида глянь на delphi.mastak.ru. Z там видел.
     
  9. Hetman

    Hetman Гость

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

    kosht Гость

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


    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.
     
Загрузка...
Похожие Темы - Массивы дэлфи
  1. Искушенный
    Ответов:
    0
    Просмотров:
    430
  2. Искушенный
    Ответов:
    1
    Просмотров:
    418
  3. Искушенный
    Ответов:
    1
    Просмотров:
    385
  4. Rpp
    Ответов:
    1
    Просмотров:
    809
  5. romanovbadboy2
    Ответов:
    0
    Просмотров:
    669
Статус темы:
Закрыта.

Поделиться этой страницей