User Tag List

Страница 15 из 49 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя
Показано с 141 по 150 из 531

Тема: ZX Like Pascal

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    поиск определенного значения клетки карты вокруг клетки с координатами x,y на расстоянии distance в прямоугольной области.
    Ага, так понятнее.

    Насчёт звука вопрос. Если передать в SoundEffect(0,0,0); это же будет самый длинный звук, да? Сколько секунд длится самый длинный звук?

    Цитата Сообщение от Reobne Посмотреть сообщение
    И GetVirtualKeyCode:word вернёт код нажатой сейчас клавиши, в готовом формате для GetKeyState.
    Т.е., чтобы VirtualKeyCode код содержал и адрес порта? Ну что-то в этом есть, да, но это привязка к конкретному железу, виртуальные коды могут быть несовместимые или обязательно для всех спектрумов одинаковые?

    Цитата Сообщение от Reobne Посмотреть сообщение
    Если не понравилось моё GetKeyState, придумайте новое
    В принципе, я тоже похожее предложил, только использовать не виртуальный 2 байтовый код клавиши, а 1 байтный вроде скан-кода клавиши, где не учитываются регистры букв, всё равно столько клавиш нет, кодов хватит и на джойстики тоже.
    Читать не именно в текущий момент, а обработчик прерывания опрашивает клавиатуру и заполняет некий буфер. Функция KeyPressed(key:byte):boolean; ищет уже в этом массиве. Команда CPIR поможет. Правда, такая система занимает больше времени, но коды клавиш могут быть одинаковые для любой реализации клавиатуры и джойстиков.

    - - - Добавлено - - -

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Имеется буфер с заполненными нажатыми клавишами. Нужно проверить конкретную клавишу, есть ли она там. Всё.
    Тоже думаю, что так будет лучше. Надо только добавить коды джойстиков.

    - - - Добавлено - - -

    Andrew771, про MapSearch. Если найдено 2 удовлетворяющие условиям ячейки, например, слева и справа на расстоянии 1, координаты которой будут возвращены? А если справа и справа-сверху, то которые координаты будут возвращены?

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,336
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    if key='q' and key='p' then
    Это антинаучно!

  4. #3

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ещё хорошо бы спектрум-специфические функции реализовать в отдельном модуле, функции работы со спрайтами, с экраном, вывод звука, ввод с клавиатуры. И тогда мы могли бы назвать модули одинаково и можно будет в дельфи компилировать под windows, в турбопаскаль компилировать под DOS, а в ZX Like Pascal компилировать под спектрум и всё это вообще без изменения кода.
    Хорошо бы, и у тебя ввести процедуры Init и Deinit, тогда можно будет без изменения кода перекомпилировать. В принципе, в дельфи получается и без них, но тогда флаги не передать.

    - - - Добавлено - - -

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Спрайт-генератор включу в дистрибутив ZX Like Pascal, удобный.
    Перекачай, исправил пару небольших ошибок. http://zx-pk.ru/threads/24967-zx-lik...l=1#post882316

    - - - Добавлено - - -

    Andrew771, можешь расписать принцип работы функции MapSearch? Мне осталось реализовать её и SounfEffect, тогда можно будет пробовать компилировать и в delphi и в zx like pascal.

  5. #4

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Ещё хорошо бы спектрум-специфические функции реализовать в отдельном модуле, функции работы со спрайтами, с экраном, вывод звука, ввод с клавиатуры. И тогда мы могли бы назвать модули одинаково и можно будет в дельфи компилировать под windows, в турбопаскаль компилировать под DOS, а в ZX Like Pascal компилировать под спектрум и всё это вообще без изменения кода.
    Это я изначально не планировал, думал только под Спектрум. Сейчас Oleg N.Cher поругается.

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Andrew771, можешь расписать принцип работы функции MapSearch?
    В мануале описан, цитирую:
    MapSearch(<x>,<y>,<id element>,<id condition>,<distance>,<value variable>,<x variable>,<y variable>)

    Поиск элемента (значения клетки) на карте вокруг исходной клетки <x>,<y> карты. Параметры карты должны быть предварительно заданы в операторе MapSet.
    <x> - горизонтальная координата исходной клетки карты, может быть <arithmetic expression>.
    <y> - вертикальная координата исходной клетки карты, может быть <arithmetic expression>.
    <id element> - значение элемента (клетки карты), которое необходимо найти, может быть <arithmetic expression>.
    <id condition> - условие поиска элемента (0 – равно значению элемента, 1 – не равно значению элемента, 2 – меньше значения элемента, 3 – больше или равно значению элемента), может быть <arithmetic expression>.
    <distance> - расстояние в клетках от исходной клетки карты, может быть <arithmetic expression>.
    <value variable> - имя переменной типа Byte, в которую запишется количество найденных элементов (если не найдены, то 0).
    <x variable> - имя переменной типа Byte, в которую запишется горизонтальная координата ближайшего найденного элемента (если не найдены, то 0).
    <y variable> - имя переменной типа Byte, в которую запишется вертикальная координата ближайшего найденного элемента (если не найдены, то 0).
    Т.е., поиск определенного значения клетки карты вокруг клетки с координатами x,y на расстоянии distance в прямоугольной области. Можно просто искать конкретное значение клетки, а можно все не равные этому значению, или все клетки с бОльшим значением, или все клетки с меньшим значением. Нужно указать имена переменных <value variable>, <x variable>, <y variable>, куда запишется найденное количество подходящих клеток, удовлетворяющих условию поиска, а также ближайшие к искомой клетке координаты клетки с подходящим значением.
    Например, найти вокруг клетки с координатами 12,16 в прямоугольной области 10х10 клеток значение клетки 8:
    MapSearch(12,16,8,0,10/2,value,x,y)
    После выполнения в value запишется количество найденных клеток со значением 8, а в x,y - ближайшая клетка со значением 8.

    - - - Добавлено - - -

    Цитата Сообщение от Reobne Посмотреть сообщение
    Я-бы посоветовал не перегружать ReadKey таким образом. ReadKey уже описана в мануалах и привычна. Она возвращает была ли нажата и возможно давно отжата клавиша. А нам нужно узнать давится-ли клавиша прямо сейчас. Если не понравилось моё GetKeyState, придумайте новое, может KeyDown?
    да, пока думаю. Оптимальное не найдено, но хочется что-то простое.
    Имеется буфер с заполненными нажатыми клавишами. Нужно проверить конкретную клавишу, есть ли она там. Всё.

  6. #5

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Наконец, решил попробовать скомпилировать свою программу и скормить программу эмулятору спектрума.
    Компилятор ZX Like Pascal выдал asm файл, передаю его sjasm, он вроде компилирует, пишет 3 прохода, 0 ошибок и ничего не выводит в файл. Кто чем компилировал и получилось?

    - - - Добавлено - - -

    Оказывается, в начале ASM файла надо вставить тип железа вида "DEVICE ZXSPECTRUM128", а в конце ASM файла надо вставлять команду "savesna" или подобную. .sna файл не заработал на эмуляторе, пару спрайтов отобразил, двигается медленнее, чем надо, а при нажатии на клавиши спек перезагружается.

    Мне бы .tap собрать. Как это сделать?

  7. #6

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это надо спрашивать у тех, кто пользуется sjasm. Я пользуюсь эмулятором со встроенным ассемблером EmuZWin.

  8. #7

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну вот, там тоже неправильно.

    Приложил картинки, так должно быть Нажмите на изображение для увеличения. 

Название:	должно быть.png 
Просмотров:	338 
Размер:	7.9 Кб 
ID:	58040, так получилось Нажмите на изображение для увеличения. 

Название:	неправильно скомпилировался 1.jpg 
Просмотров:	307 
Размер:	24.1 Кб 
ID:	58041. Исходник:
    Код:
    program TestZXPas;
    
    var
      x,y,ggx,ggy:word;
      k1,k2:byte;
      bally,balldy,balldir:word;
      bx,by,bcnt:word;
      map:arraybyte[24,32];
    
    begin
    
      border(0);
      textbackground(0);
      textcolor(7);
      clrscr;
      VirtScreenClear;
    
      MapSet(MAP,MAPSPRA,0,0,32,24);
    
      x:=4;
      y:=1;
      bally:=4;
      balldy:=1;
      balldir:=1;
      ggx:=2;
      ggy:=16;
      bx:=0;
      by:=30;
      bcnt:=0;
      repeat
        ReadKey(k1,k2);
        if (bally>19) or (bally<4) then begin
          if balldir=1 then balldir:=2
                       else balldir:=1;
        end;
        if (k1=80) or (k2=80) then
          ggx:=ggx+1;
        if (k1=79) or (k2=79) then
          ggx:=ggx-1;
        if ggx+5>29 then
          ggx:=29-5;
        if ggx  < 2 then
          ggx:= 2;
    
        MapPut(0,0);
        SpritePutClear(ball3a,12,2);
        SpritePutMirrorClear(ball3a,16,2);
        SpritePutClear(COLORSA,14,5);
        SpritePutClear(ball3a,10,bally);
        SpritePutAnd(GG1MA2,ggx,ggy);
        SpritePutOr(GG1A,ggx,ggy);
    {    TextOut(2,0,'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
        TextOut(2,1,'0123456789+-=<>');
        TextOut(20,2,'TEXT TEST');}
    
        if (k1=32) or (k2=32) then
          if bcnt=0 then begin
            by:=ggy+2; {// Пуля на 2 знакоместа ниже ГГ}
            bx:=ggx+6; {// И на 6 знакомест правее ГГ}
            bcnt:=20;
          end;
        if bcnt<>0 then begin
          SpritePutAnd(BULLET1M,bx,by);
          SpritePutOr(BULLET1,bx,by);
          if bx<32 then
            bx:=bx+2;
          bcnt:=bcnt-1;
        end;
        if (k1=50) or (k2=50) then SpritePutClear(DIG2A,6,4) else SpritePutClear(DIG0A,6,4);
        if (k1=49) or (k2=49) then SpritePutClear(DIG1A,4,4) else SpritePutClear(DIG0A,4,4);
        VirtScreenPut;
        Delay(1);
        if balldir=1 then bally:=bally+balldy;
        if balldir=2 then bally:=bally-balldy;
      until (k1=48) or (k2=48) or (k1=69) or (k2=69){ or not ZXInitialized};
      ScreenThaw;
      Delay(20);
    
    end.
    
    GG1A
        DEFB 36
        DEFB 0,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,1, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,2, #04, #0F,#07,#03,#03,#07,#1D,#F6,#9B
        DEFB 0,3, #04, #FC,#FE,#FF,#EA,#FF,#F5,#FF,#FF
        DEFB 0,4, #04, #00,#00,#00,#00,#00,#80,#80,#80
        DEFB 0,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 1,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 1,1, #04, #03,#07,#06,#0E,#0F,#1F,#3F,#3F
        DEFB 1,2, #04, #ED,#77,#B7,#BF,#7F,#ED,#F6,#7B
        DEFB 1,3, #04, #E3,#F0,#F8,#F8,#FC,#FC,#FE,#5F
        DEFB 1,4, #04, #80,#00,#00,#00,#00,#00,#00,#00
        DEFB 1,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 2,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 2,1, #04, #7F,#7E,#7C,#3F,#3F,#1F,#0F,#07
        DEFB 2,2, #04, #68,#DF,#FE,#FD,#5E,#FF,#F5,#EF
        DEFB 2,3, #04, #01,#FF,#47,#FF,#7F,#EA,#67,#F3
        DEFB 2,4, #04, #0C,#FF,#FF,#AA,#FF,#E0,#E0,#80
        DEFB 2,5, #04, #40,#F0,#F0,#BC,#E0,#40,#38,#00
        DEFB 3,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 3,1, #04, #03,#00,#00,#00,#00,#01,#01,#01
        DEFB 3,2, #04, #1F,#FF,#FF,#FF,#FF,#FC,#FC,#FC
        DEFB 3,3, #04, #F8,#FC,#FE,#FF,#FF,#FF,#7F,#1F
        DEFB 3,4, #04, #00,#00,#00,#00,#80,#C0,#E0,#F0
        DEFB 3,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 4,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 4,1, #04, #01,#01,#03,#07,#0E,#1D,#33,#67
        DEFB 4,2, #04, #78,#B8,#70,#F0,#F0,#E0,#C0,#80
        DEFB 4,3, #04, #0F,#03,#01,#01,#00,#00,#00,#00
        DEFB 4,4, #04, #B8,#58,#B0,#F8,#B8,#B8,#D8,#5C
        DEFB 4,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 5,0, #04, #00,#00,#00,#01,#01,#01,#01,#01
        DEFB 5,1, #04, #CE,#DC,#F8,#F0,#70,#F8,#FE,#7F
        DEFB 5,2, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 5,3, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 5,4, #04, #6C,#2C,#3C,#3C,#2E,#7F,#7F,#67
        DEFB 5,5, #04, #00,#00,#00,#00,#00,#80,#E0,#F0
    
    GG1MA2
        DEFB 36
        DEFB 0,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,1, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FE,#FC
        DEFB 0,2, #04, #E0,#F0,#F8,#F8,#F0,#00,#00,#00
        DEFB 0,3, #04, #01,#00,#00,#00,#00,#00,#00,#00
        DEFB 0,4, #04, #FF,#FF,#7F,#FF,#7F,#3F,#3F,#3F
        DEFB 0,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 1,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 1,1, #04, #F8,#F0,#F0,#E0,#E0,#C0,#80,#80
        DEFB 1,2, #04, #00,#00,#00,#00,#00,#00,#00,#00
        DEFB 1,3, #04, #00,#04,#03,#03,#01,#01,#00,#00
        DEFB 1,4, #04, #3F,#7F,#FF,#FF,#FF,#FF,#FF,#73
        DEFB 1,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#BF
        DEFB 2,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 2,1, #04, #00,#00,#00,#80,#80,#C0,#E0,#F0
        DEFB 2,2, #04, #00,#00,#00,#00,#00,#00,#00,#00
        DEFB 2,3, #04, #00,#00,#00,#00,#00,#00,#00,#00
        DEFB 2,4, #04, #00,#00,#00,#00,#00,#00,#0F,#1F
        DEFB 2,5, #04, #0F,#07,#03,#01,#03,#07,#83,#C7
        DEFB 3,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 3,1, #04, #F8,#FC,#FE,#FE,#FE,#FC,#FC,#FC
        DEFB 3,2, #04, #00,#00,#00,#00,#00,#00,#01,#01
        DEFB 3,3, #04, #00,#01,#00,#00,#00,#00,#00,#80
        DEFB 3,4, #04, #7F,#FF,#FF,#7F,#3F,#1F,#0F,#07
        DEFB 3,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 4,0, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 4,1, #04, #FC,#FC,#F8,#F0,#E0,#C0,#80,#00
        DEFB 4,2, #04, #03,#03,#07,#07,#07,#0F,#1F,#3F
        DEFB 4,3, #04, #E0,#F0,#FC,#FC,#FE,#FE,#FE,#FF
        DEFB 4,4, #04, #03,#03,#07,#03,#03,#03,#03,#01
        DEFB 4,5, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 5,0, #04, #FE,#FE,#FE,#FC,#FC,#FC,#FC,#FC
        DEFB 5,1, #04, #00,#01,#03,#07,#07,#01,#00,#00
        DEFB 5,2, #04, #7F,#FF,#FF,#FF,#FF,#FF,#FF,#7F
        DEFB 5,3, #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 5,4, #04, #01,#81,#81,#81,#80,#00,#00,#00
        DEFB 5,5, #04, #FF,#FF,#FF,#FF,#7F,#1F,#0F,#07
    
    BULLET1
        DEFB 1
        DEFB 0,0, #07, #00,#00,#00,#7C,#7C,#00,#00,#00
    
    BULLET1M
        DEFB 1
        DEFB 0,0, #07, #FF,#FF,#81,#81,#81,#81,#FF,#FF
    
    BALL3A
        DEFB 6
        DEFB 0,0, #01, #00,#07,#1F,#3F,#33,#67,#7F,#7F
        DEFB 0,1, #02, #00,#E0,#F8,#FC,#FC,#FE,#FE,#FE
        DEFB 0,2, #03, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 1,0, #04, #00,#7F,#6F,#27,#33,#1F,#07,#00
        DEFB 1,1, #05, #00,#FE,#FE,#FC,#FC,#F8,#E0,#00
        DEFB 1,2, #06, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
    
    COLORSA
        DEFB 8
        DEFB 0,0,  #00, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,1,  #01, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,2,  #02, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,3,  #03, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,4,  #04, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,5,  #05, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,6,  #06, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
        DEFB 0,7,  #07, #FF,#FF,#FF,#FF,#FF,#FF,#FF,#FF
    
    MAPSPRA
        DEFB 4
        DEFB 0,0,   7,   0,  0,  0,  0,  0,  0,  0,  0
        DEFB 0,1,   7,   0,  0,  0,  0,  0,  0,  0,  0
        DEFB 1,0,   7,   0,  0,  0,  0,  0,  0,  0,  0
        DEFB 1,1,   7,   0,  0,  0,  0,  0,  0,  0,  0
        DEFB 4
        DEFB 0,0,   7,  85,  1,  1,255, 85, 16, 16,255
        DEFB 0,1,   7,  85,  1,  1,255, 85, 16, 16,255
        DEFB 1,0,   7,  85,  1,  1,255, 85, 16, 16,255
        DEFB 1,1,   7,  85,  1,  1,255, 85, 16, 16,255
        DEFB 4
        DEFB 0,0,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 0,1,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 1,0,   7,  36, 36, 36, 36, 72,136,136,255
        DEFB 1,1,   7,  36, 36, 36, 36, 18, 17, 17,255
        DEFB 4
        DEFB 0,0,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 0,1,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 1,0,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 1,1,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 4
        DEFB 0,0,   7, 127,144,136, 72, 36, 36, 36, 36
        DEFB 0,1,   7, 254,  9, 17, 18, 36, 36, 36, 36
        DEFB 1,0,   7,  36, 36, 36, 36, 36, 36, 36, 36
        DEFB 1,1,   7,  36, 36, 36, 36, 36, 36, 36, 36
    
    
    _MAP
        DEFB 4,3,3,3,3,3,3,3,3,3,2,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,1,1,1,1,1
        DEFB 0,0,0,0,0,0,0,1,1,1,1,1
        DEFB 0,0,0,0,0,0,0,1,1,1,1,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 0,0,0,0,0,0,0,0,0,0,0,1
        DEFB 4,3,3,3,3,3,3,3,3,3,2,1
    
    DIG0A
        DEFB 1, 0,0,   7,  0, 28, 34, 42, 42, 34, 28,  0
    
    DIG1A
        DEFB 1, 0,0,   7,  0, 24, 56, 24, 24, 24, 60,  0
    
    DIG2A
        DEFB 1, 0,0,   7,  0, 60, 66,  2, 28, 32,126,  0
    Andrew771, что тут может быть не так? Вроде массивы верно заданы.

    - - - Добавлено - - -

    Andrew771, да, предлагаю кроме write ввести ещё и TextOut(x,y:word;text:string); В принципе, я его реализовал в своём модуле, используя твой шрифт. Только пока забыл верхнюю и нижнюю строки символа заполнить нулём.

    Как разберусь с этим кривым выводом, тогда можно будет модуль тоже показывать миру.

    - - - Добавлено - - -

    Название карты меня смущает, но вроде делал, как в примере.

  9. #8

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    1. Размер массива map для карты неверен (должен быть 16х12 клеток, если на весь экран, т.к. каждая клетка 2х2 знакоместа).
    2. В процедуре MapSet два последних параметра должны быть 16,12 - столько клеток карты умещается на весь экран.
    3. Формат спрайтов карты неверный, см. в мануале.
    4. Данные карты почему-то перевернуты на бок. Должно быть 12 строк по 16 байт.
    5. Процедура MapPut должна быть с 1,1, а не 0,0. Указываются координаты (индексы) клетки в массиве. А индексов 0,0 не бывает.
    Последний раз редактировалось Andrew771; 05.09.2016 в 13:49.

  10. #9

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    3. Формат спрайтов карты неверный, см. в мануале.
    А, проглядел. Значит, надо будет ввести это дело и в генератор спрайтов.
    Спрайты поправил, теперь карта вся чёрная получилась независимо от заданных атрибутов.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    4. Данные карты почему-то перевернуты на бок. Должно быть 12 строк по 16 байт.
    Учту в модуле. Делал так, потому что в паскале при задании двумерного массива в памяти идут подряд элементы [0,0], [0,1], [0,2], потом [1,0], [1,1], [1,2], ... а в модуле двумерный массив передаётся в виде одномерного, вот так и решил вопрос. Переделаю под одномерный, его даже будет проще задавать.

  11. #10

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Andrew771, что тут может быть не так? Вроде массивы верно заданы.
    Цитата Сообщение от AzAtom Посмотреть сообщение
    Спрайты поправил, теперь карта вся чёрная получилась независимо от заданных атрибутов.
    Еще ошибка - MapPut должна быть с 1,1, а не 0,0. Указываются координаты (индексы) клетки в массиве. А индексов 0,0 не бывает.

Страница 15 из 49 ПерваяПервая ... 111213141516171819 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

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