User Tag List

Показано с 1 по 10 из 70

Тема: C чего начать геймдэв для горбатыша?

Древовидный режим

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

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

    По умолчанию

    Процедура вывода спрайта (без масок):
    Код:
    ; подпрограма вывода спрайта
    ; входные параметры: HL=адрес спрайта, D=вертик.координата вывода на экране, E=гориз.координата вывода на экране
    ; выходных параметров нет
    
    PUTSPR		LD	A,(HL)
    		AND	A
    		RET	Z				; выход, если пустой спрайт
    		LD	B,A
    PUTS1		PUSH	BC				; B = количество знакомест в спрайте
    
    		INC	HL
    		LD	A,(HL)
    		ADD	A,D
    		LD	B,A
    		INC	HL
    		LD	A,(HL)
    		ADD	A,E
    		LD	C,A
    		INC	HL
    		PUSH	DE				; DE = координаты спрайта на экране
    		EX	DE,HL				; DE = адрес нахождения в спрайте, HL = свободно
    
    
    
    
    
                    LD      A,B				; расчет адреса первого байта знакоместа в HL
                    LD      H,A
                    RRCA
                    RRCA
                    RRCA
                    AND	A,224
    		ADD	A,C
                    LD	L,A
                    LD	A,H
                    AND	24
                    OR	64
                    LD	H,A				; HL = адрес вывода знакоместа на экране, DE = адрес изображения в спрайте
    
    		; вывод знакоместа (8 строк)
    
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    		INC     DE
                    INC     H
    
    		LD	A,(DE)
    		LD	(HL),A				; вывели байт спрайта
    
    		EX	DE,HL				; HL = адрес нахождения в спрайте
    
    		POP	DE				; HL = адрес нахождения в спрайте, DE = координаты спрайта на экране
    		POP	BC				; B = цикл по количеству знакомест в спрайте
    		DJNZ	PUTS1
    		RET
    
    
    
    ; спрайты
    
    SPRITE01
    DEFB 14                                                   ; количество знакомест в спрайте
    DEFB 14,3, 0,0,0,0,0,0,255,255                    ; знакоместо 1: координата y, координата x, 8 байтов изображения
    DEFB 15,3, 0,23,20,243,0,0,0,0                    ; знакоместо 2
    ...            и так 14 знакомест ...


    ---------- Post added at 10:32 ---------- Previous post was at 10:30 ----------

    Цитата Сообщение от jerri Посмотреть сообщение
    Andrew771, подожди физикой грузить
    пусть сначала лирику опишет
    ALKO уже умеет игры на Бейсике и Дельфи писать, к асму надо приучить.

    ---------- Post added at 10:46 ---------- Previous post was at 10:32 ----------

    Цитата Сообщение от ALKO Посмотреть сообщение
    Как можно перевести из указания координат видом X/Y в адрес хранящийся ввиде двух байт (DEC)? Что б записывать значения через Poke.
    Код:
                    LD      B,Y
                    LD      C,X
    
                    LD      A,B
                    LD      H,A
                    RRCA
                    RRCA
                    RRCA
                    AND	A,224
    		ADD	A,C
                    LD	L,A
                    LD	A,H
                    AND	24
                    OR	64
                    LD	H,A	  ; HL = адрес вывода знакоместа на экране
    Последний раз редактировалось Andrew771; 16.01.2012 в 10:35.

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

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

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

Похожие темы

  1. Голая Амига с чего начать
    от alex51 в разделе Amiga
    Ответов: 335
    Последнее: 22.02.2016, 00:26
  2. Концепции? Для чего?
    от GNTB в разделе ZX Концепции
    Ответов: 107
    Последнее: 09.01.2010, 14:08
  3. Как заставить плеер PT3 начать играть заново?
    от GriV в разделе Программирование
    Ответов: 18
    Последнее: 17.10.2008, 14:17
  4. Подскажите с чего начать знакомство со спекки...
    от aleksej в разделе Несортированное железо
    Ответов: 33
    Последнее: 28.12.2005, 23:00

Ваши права

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