Важная информация

User Tag List

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

Тема: ZX Like Pascal

  1. #141
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    - При прокрутке окна WindowScrollLeft и другие, аттрибуты не трогать вне зависимости от флага?
    атрибуты вообще не трогаются никогда. Т.к. непонятно, когда их трогать (скроллинг на 1 пиксель происходит).


    Цитата Сообщение от AzAtom Посмотреть сообщение
    - Флаг "окна с атрибутами" влияет только на WindowGet и WindowPut?
    да, только на них.

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

    По умолчанию

    Andrew771, прокрутка окон осуществляется только на видимом экране?

  3. #143
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Andrew771, прокрутка окон осуществляется только на видимом экране?
    да.

  4. #144
    Activist Аватар для AzAtom
    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    292
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выяснилось, что с ReadKey(key1, key2); работать неудобно, потому, что искомый код может оказаться в key1 или key2 и нужно их оба проверять. Если их будет 10, то совсем можно будет зашиться. Нужно что-то другое придумать.

    Не реализовал функции ArrayClear - ищу способ, Asm - команды другие, так просто не получится её реализовать, MapSearch - толком не понял, что она ищет.
    Остальное, вроде, готово. Пересмотрю код, использование флагов и завтра, наверное, уже смогу показать.

  5. #145
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    144
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Это уже явно не Паскалевские команды.
    То есть если команду назвать паскальным названием, то она автоматически становится паскальной? Хех.
    Вообще-то паскальный ReadKey через буфер и работает.
    А то, что сейчас - это вообще перловая команда. (key1, key2) = get_any_two_pressed_keys_in_random_order()
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  6. #146
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    131
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Выяснилось, что с ReadKey(key1, key2); работать неудобно, потому, что искомый код может оказаться в key1 или key2 и нужно их оба проверять. Если их будет 10, то совсем можно будет зашиться. Нужно что-то другое придумать.
    Не нужно обе проверять, если только одна клавиша, а только первую переменную key1, т.к. асмовская процедура заполняет всегда сначала key1, если хотя бы одна клавиша нажата.
    С 10-ю да, нужно подумать. Может, сортировать коды по возрастанию в буфере клавиш... Но это замедлит чтение.
    Вернуться к конструкции if KeyPressed then ReadKey? Т.е. KeyPressed определяет, нажато ли хоть одно что-нибудь, а ReadKey уже медленная процедура для 10 клавиш.

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

    Цитата Сообщение от AzAtom Посмотреть сообщение
    Не реализовал функции ArrayClear - ищу способ
    Это просто обнуление числового массива или заполнение пустыми строками строкового массива. На асме я сделал через команду ldir, чтобы юзер не писал свою медленно работающую пошлость for i:=1 to i_max do a[i]:=0;


    Цитата Сообщение от AzAtom Посмотреть сообщение
    MapSearch - толком не понял, что она ищет.
    В ней куча опций. Ищет заданное значение клетки или диапазон значений клеток в области клеток карты (карта - двумерный массив типа byte).

  7. #147
    Activist Аватар для AzAtom
    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    292
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Не нужно обе проверять, если только одна клавиша, а только первую переменную key1
    А если 2? Например, мы можем идти и начать стрелять, тогда в key1 код "вправо", а в key2 код "огонь", а можем просто стрелять, тогда в key1 уже код "огонь". Можем пойти стреляя, тогда в key1 код "огонь", а в key2 код "вправо". Можем перестать стрелять и код "вправо" переместиться в key1. В общем, пока не однозначно.


    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Это просто обнуление числового массива или заполнение пустыми строками строкового массива.
    Это понятно, но в дельфи в процедуру не передаются двумерные массивы напрямую. Это можно обойти, конечно, но тогда будет написано по другому, например я сделал тестовую программу, где пришлось написать MapSet(map[0,0],mapspr,0,0,32,24); вместо MapSet(map,mapspr,0,0,32,24);

    - Далее, в дельфи объявленные переменные не обязательно идут друг за другом, поэтому, все спрайты карты пришлось объединить в один большой массив.

    - Вдруг выяснилось, что если захочется попробовать спрайты с атрибутами и без них, то придётся править все спрайты, что неудобно. Почему бы не сделать все спрайты с атрибутами, а при сброшенном флаге "спрайты с атрибутами" просто не копировать атрибуты. Да, это будет на 10% больше места занимать, но будет гораздо удобнее.

    - Ещё задумал написать генератор спрайтов. Можно будет загрузить в него 1 битную картинку, а она выдаст её в текстовом виде для вставки в исходник программы. Или такой уже есть?

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

    Сейчас у меня вот, что получилось TestZXPas02.rar.

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

    Кнопки 1 и 2 показывают цифры 1 и 2, кнопки 0 и пробел - выход из программы.

  8. #148
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,913
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    32 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AzAtom Посмотреть сообщение
    А если 2? Например, мы можем идти и начать стрелять, тогда в key1 код "вправо", а в key2 код "огонь", а можем просто стрелять, тогда в key1 уже код "огонь". Можем пойти стреляя, тогда в key1 код "огонь", а в key2 код "вправо". Можем перестать стрелять и код "вправо" переместиться в key1. В общем, пока не однозначно.
    Сделайте уже метод ReadKey как в Паскале, чтобы возвращал только одну кнопку, и function CheckKeys(Keys: string): Word, в которой в Keys передаются проверяемые кнопки в виде строки символов (например, "MQAOP"), а в результате установлены биты нажатых кнопок (например, для вверх-вправо-огонь - %11001). Тогда управление в игре можно будет хранить в строках (хоть у пользователя запрашивай, хоть константами забивай, особенно, если для джойстика придумать символы тоже) и проверять единообразно-безобразно.
    ZX Evolution Rev C + ZXM-SoundCard Extreme + NeoGS.

  9. #149
    Master Аватар для s_kosorev
    Регистрация
    19.06.2014
    Адрес
    г. Харьков, Украина
    Сообщений
    731
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А почему нельзя просто допрашивать кнопки в матрице. Всякие ReadKey нужны для определения факта нажатия но не удержания

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

    IsKeyPressed нужна функция

  10. #150
    Activist Аватар для AzAtom
    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    292
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть пара идей на счёт ReadKey, не знаю какая лучше/удобнее.

    - В ReadKey передаётся массив из 3-5 элементов (нужно решить и принять соглашение о количестве), оттуда возвращается с заполненными кодами нажатых клавиш. Программа просматривает массив на предмет нужных кодов. Например, проверка нажатия вправо ищет в массиве код соответствующей клавиши и возвращает 1 или 0 по результатам поиска, и т.д. Если надо набирать текст, то можно просматривать массив в поисках первого ненулевого значения и его принимать за нажатую клавишу.

    - Ввести функцию SetKeyBuffer, которой передаётся массив из 3-5 элементов (нужно решить и принять соглашение о количестве), его адрес запоминается и обработчик клавиатуры автоматически заносит туда коды. Программе не нужно вызывать ReadKey, просто обрабатывает массив как в предыдущем случае.

    - Наиболее близко к классическому паскалю, где-то есть буфер клавиатуры, он заполняется обработчиком клавиатуры по нажатию и отжатию клавиш. Функция ReadKey возвращает код нажатой и отжатой клавиши из этого буфера, можно в 2 разных переменных, в одной код клавиши, в другой флаг отжатия. Тогда программе нужно будет в цикле вызывать ReadKey до тех пор, пока key <>0 и соответственно обрабатывать полученные коды.

Страница 15 из 54 ПерваяПервая ... 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

Ваши права

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