ZXNet эхоконференция «code.zx»


тема: Курсор в программах, проблемы



от: 500:812/07.05
кому: All
дата: 19 Feb 1998
Приветствую тебя, о достопочтимый All! Так вот, что я хотел бы сказать .. Тем, кто считает, что мол интерфейс с курсором грохает много Memory: Я как-то занимался этим ... У меня полноценный интерфейс (легко при- способить где угодно) занимает 3+1+1 сек. 3 загружаются, всего 5. 1 - Табличка для IM2 еще 1 -данные, печатая какой - нибудь option выполнить CALL G_COORD (форм. данных) data: DEFW Координаты обычно H-вер. L-гор. DEFW Адрес, где отмечать DEFW Размер отмечаемой области, опять-же H-вер. L-гор. Кстати 7 битом L можно отметить (ATTR/SCREEN) ATTR через xor, SCREEN через cpl Можно вполне и без последнего дефа обойтись. Как отмечать - и так ясно. Вы знаете как плавно двигать спрайты?? -если нет, смотрите через DISASSM игрухи и мотайте на ус. Один из способов: pbuf LD (XSP1+1),SP LD SP,IX ; таблица адресов (старая) LD BC,#XXFF; LDI не должно быть много pb1 POP DE LDI LDI ;Печатаем буфер LDI LDI DJNZ pb1 ;4 LDI Для примера xsp1 LD SP,0 RET ////////////////////////////////// Отметка опции, если были изменения ////////////////////////////////// psp LD (XSP2+1),SP; В DE адрес буфера LD SP,IY ; Hовая таблица должна LD BC,#XXFF; быть просчитана, pr1 POP HL ; когда мы стали LDI ; причиной этого. LDI LDI ; Читаем буфер LDI DJNZ pr1 EXX LD SP,HL ; Здесь спрайт LD BC,#XX1F; pr2 LD E,(IY+0) LD D,(IY+1) LD A,(DE) POP HL ; Он должен быть запи- AND L ; сан таким образом. OR H LD (DE),A ;1 LD A,E CPL AND C JR Z,gr1 INC E LD A,(DE) POP HL AND L OR H LD (DE),A ;2 LD A,E CPL AND C JR Z,gr1+1 ; Печатаем спрайт INC E LD A,(DE) POP HL AND L OR H LD (DE),A ;3 LD A,E CPL AND C JR Z,gr2+2 INC E LD A,(DE) ;4 POP HL AND L OR H LD (DE),A gr0 INC IY INC IY DJNZ pr2 LD HL,table_n;Hовая таблица LD DE,table_o;Устарела. LD BC,#XX*2 LDIR ; Можно быстрее xsp2 LD SP,0 RET gr1 POP HL POP HL POP HL JP gr0 Можно отказатся от таблиц (CALL next_l) Усе будет медленнее... Еще одно: если у вас кроме стрелки, есть и другие движущиеся обьекты, лучше распре- делите их в уже сдвинутом виде. Одну стрелку распылять нет смысла. Запуск: -Подготовить IM2 -расположить спрайт(ы) так, как надо -состыковать адрес с координатами -выполнить CALL 'расчет таблицы' -Просмотреть опции -выполнить CALL psp (печать) и EI:HALT Порядок работы: 1. Опрос клавы. 2. не разгоняемся? тогда HALT:DI 3. Контроль разгона,Ротация стрелки 4. Определение новых координат и адреса 5. Просмотр опций (data),Просчет таблицы (новой разумеется) 6. Все должно быть готово; мы успели ? 7. EI:HALT ;печать в прерывании 8. Переход на 1. Отойдем от этого ... От некоторых прог просто клонит ко сну. Люди! Все давно проверено и работает. Зачем дело стало ? Hадеюсь - All, тебе пригодится хоть что-то из того, что я здесь накрапал. С наилучшими пожеланиями PHOENIX at 20.02.1998 -+- ZXASM 3.0




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Система - ТЕСТОВАЯ ПАЛАТА: CONSUL COMMANDER v2.7
История Demomakig'a - прошлое и будещее.
brain damage - "папа".
Описание - Описание музыкального редактора для Sound Drive v1.0 - Flash Tracker v2.0
Открытые письма Nemo №4.4

В этот день...   8 мая