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

User Tag List

Страница 7 из 9 ПерваяПервая ... 3456789 ПоследняяПоследняя
Показано с 61 по 70 из 90

Тема: Перевод гайда How to Write ZX Spectrum Games

  1. #61
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновление. Перевел пятую главу.
    =======================================
    Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
    =======================================
    Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
    =======================================
    ZX Spectrum +2, ZX Evolution Rev. C

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

  3. #62
    Activist Аватар для kgbplus
    Регистрация
    15.02.2005
    Адрес
    Санкт-Петербург
    Сообщений
    406
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    Обновление. Перевел пятую главу.
    Все отлично, кроме "текущиИ координаты"
    Живи, играй!

  4. #63
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от kgbplus Посмотреть сообщение
    Все отлично, кроме "текущиИ координаты"
    Спасибо. На следующей неделе, по завершении перевода шестой главы, исправлю эту опечатку.
    =======================================
    Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
    =======================================
    Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
    =======================================
    ZX Spectrum +2, ZX Evolution Rev. C

  5. #64
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Шестая глава практически переведена, осталось немного причесать. Однако, в первый раз меня подвел встроенный ассемблер эмулятора ZX Spin. Ругается на строчку ld a,(ix), выдает "Invalid combination of opcode and operands". Не понимаю что его смущает в данной конструкции. Все же верно: загрузить в аккумулятор значение, которое находится по адресу указанному в ix, так? Скомпилировал в sjasm'е и проверил в Spectaculator - все работает нормально. Может кто подскажет, что нужно подправить, чтобы в ZX Spin заработало (он кстати, гад еще и выражения вычислять не умеет).
    Второй момент: я не понял что такое аббревиатура GP в комментариях к коду (Generic Point??). Коментарии я так же выделил жирным шрифтом и оставил непереведенными. Прошу помочь с этим.
    Листинг программы из этой главы в приложении.centipede.zip
    =======================================
    Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
    =======================================
    Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
    =======================================
    ZX Spectrum +2, ZX Evolution Rev. C

  6. #65
    Member
    Регистрация
    16.06.2008
    Адрес
    Челябинск
    Сообщений
    56
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за перевод! Набрал "простую игру" из второй главы...запустил ...вроде цвет поменялся и всё, курсор мигает и больше ничего...
    Участок кода из-за которого не работало:

    ; Initialise coordinates.

    ld hl,21+15*256 ; load hl pair with starting coords. эта начальная координата по x, оставил ld hl,21 и все заработало.
    ld (plx),hl ; set player coords.

    call basexy ; set the x and y positions of the player.
    call splayr
    Последний раз редактировалось megozavr; 22.12.2015 в 17:59.

  7. #66
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,491
    Спасибо Благодарностей отдано 
    227
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    116 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от megozavr Посмотреть сообщение
    Спасибо за перевод! Набрал "простую игру" из второй главы...запустил ...вроде цвет поменялся и всё, курсор мигает и больше ничего...
    Какой ещё курсор? :/
    Скормил это sjasm-у, скомпилировалось. Запускаю в эмуле - чёрный экран с треугольничком, управляется цифровыми клавишами.

    Код:
    	DEVICE ZXSPECTRUM48
    
    	org 25000
    	
    	; Устанавливаем черный экран.
    	ld a,71 ; белые чернила (7) на черной бумаге (0),
    
    	; яркость (64).
    	ld (23693),a ; устанавливаем наши цвета.
    	xor a ; быстрый способ загрузить 0 в аккумулятор.
    
    	call 8859 ; устанавливаем постоянный цвет бордюра.
    
    	; Настраиваем нашу графику.
    	ld hl,blocks ; адрес данных UDG.
    	ld (23675),hl ; переменная теперь указывает на него.
    
    	; ОК, начнем игру.
    	call 3503 ; Процедура ПЗУ – очищает экран, открывает канал 2.
    
    	; Инициализация координат.
    	ld hl,21+15*256 ; загружаем в hl начальные координаты.
    	ld (plx),hl ; устанавливаем координаты игрока.
    
    	call basexy ; устанавливаем координаты x,y игрока.
    
    	call splayr ; выводим изображение игрока.
    
    	; Здесь основной цикл.
    mloop equ $
    	; Стираем изображение игрока.
    	call basexy ; устанавливаем координаты x,y игрока.
    	call wspace ; выводим пробел поверх изображения игрока.
    
    	; Теперь после стирания мы можем передвигать игрока, перед тем как вывести
    	; его по новым координатам.
    	ld bc,63486 ; группа клавиш 1-5/порт джойстика 2.
    	in a,(c) ; смотрим какие клавиши нажаты.
    	rra ; крайний бит = клавиша 1.
    	push af ; запоминаем значение.
    
    	call nc,mpl ; если была нажата, двигаем влево.
    
    	pop af ; восстанавливаем аккумулятор.
    	rra ; следующий бит (значение 2) = клавиша 2.
    	push af ; запоминаем значение.
    
    	call nc,mpr ; если была нажата, двигаем вправо.
    
    	pop af ; восстанавливаем аккумулятор.
    	rra ; следующий бит (значение 4) = клавиша 3.
    	push af ; запоминаем значение.
    
    	call nc,mpd ; если была нажата, двигаем вниз.
    
    	pop af ; восстанавливаем аккумулятор.
    	rra ; следующий бит (значение 8) считывает клавишу 4.
    
    	call nc,mpu ; если была нажата, двигаем вверх.
    
    	; После передвижения игрока можем снова отобразить его.
    	call basexy ; устанавливаем координаты x,y игрока.
    	call splayr ; выводим игрока.
    
    	halt ; задержка.
    
    	; Переходим на начало основного цикла.
    	jp mloop
    
    	; Движение игрока влево.
    mpl 
    	ld hl,ply ; запомните, y координата по горизонтали!
    	ld a,(hl) ; каково текущее значение?
    	and a ; оно равно нулю?
    	ret z ; если да – мы не можем больше идти влево.
    	dec (hl) ; вычитаем 1 из координаты y.
    	ret
    
    	; Движение игрока вправо.
    mpr 
    	ld hl,ply ; запомните, y координата по горизонтали!
    	ld a,(hl) ; каково текущее значение?
    	cp 31 ; это правый край экрана (31)?
    	ret z ; если да - мы не можем больше идти вправо.
    	inc (hl) ; прибавляем 1 к координате y.
    	ret
    
    	; Движение игрока вверх.
    mpu 
    	ld hl,plx ; запомните, x координата по вертикали!
    	ld a,(hl) ; каково текущее значение?
    	cp 4 ; это верхний край экрана (4)?
    	ret z ; если да – не можем двигаться выше.
    	dec (hl) ; вычитаем 1 из координаты x.
    	ret
    
    	; Движение игрока вниз.
    mpd 
    	ld hl,plx ; запомните, x координата по вертикали!
    	ld a,(hl) ; каково текущее значение?
    	cp 21 ; это нижний край экрана (21)?
    	ret z ; если да – не можем двигаться ниже.
    	inc (hl) ; прибавляем 1 к координате x.
    	ret
    
    	; Установка координат x, y для позиции игрока.
    	; Эта процедура вызывается перед выводом и стиранием изображения игрока.
    basexy
    	ld a,22 ; управляющий ASCII-код AT.
    	rst 16
    	ld a,(plx) ; x координата игрока.
    	rst 16 ; устанавливаем ее.
    	ld a,(ply) ; y координата игрока.
    	rst 16 ; устанавливаем ее.
    	ret
    
    	; Вывод игрока в текущей позиции печати.
    splayr
    	ld a,69 ; голубые чернила (5) на черной бумаге (0),
    	; яркость (64).
    	ld (23695),a ; устанавливаем наши временные цвета.
    	ld a,144 ; ASCII-код для символа UGD 'A'.
    	rst 16 ; выводим изображение игрока.
    	ret
    
    wspace
    	ld a,71 ; белые чернила (7) на черной бумаге (0), яркость (64).
    	ld (23695),a ; устанавливаем наши временные цвета.
    	ld a,32 ; символ пробела.
    	rst 16 ; выводим пробел.
    	ret
    
    plx defb 0 ; x координата игрока.
    ply defb 0 ; y координата игрока.
    
    ; UDG графика.
    blocks defb 16,16,56,56,124,124,254,254 ; изображение игрока.
    
    
    	SAVESNA "program.sna",25000

  8. #67
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от megozavr Посмотреть сообщение
    Спасибо за перевод! Набрал "простую игру" из второй главы...запустил ...вроде цвет поменялся и всё, курсор мигает и больше ничего...
    Участок кода из-за которого не работало:

    ; Initialise coordinates.

    ld hl,21+15*256 ; load hl pair with starting coords. эта начальная координата по x, оставил ld hl,21 и все заработало.
    ld (plx),hl ; set player coords.

    call basexy ; set the x and y positions of the player.
    call splayr
    Пожалуйста. Жаль, что переводить в более быстром темпе никак не получается. Все дело в том, что встроенный ассемблер ZX Spin не умеет вычислять выражения, поэтому здесь необходимо поставить конкретное число 3861. Тогда все будет ОК.
    Последний раз редактировалось helcril; 23.12.2015 в 09:09.
    =======================================
    Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
    =======================================
    Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
    =======================================
    ZX Spectrum +2, ZX Evolution Rev. C

  9. #68
    Member
    Регистрация
    16.06.2008
    Адрес
    Челябинск
    Сообщений
    56
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    встроенный ассемблер ZX Spin не умеет вычислять выражения
    Я так и понял) Ждем новых глав!!!

  10. #69
    Member Аватар для helcril
    Регистрация
    15.12.2009
    Адрес
    Angarsk
    Сообщений
    191
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обновление. Перевел шестую главу. Еще раз попрошу людей разбирающихся помочь с переводом комментариев к коду:
    GP x area.
    GP y area.
    set up GP y coord.

    Сам я так и не разобрался для чего эти строчки, а самое главное, что здесь означает GP?
    =======================================
    Мой профиль на Pixeljoint: http://pixeljoint.com/p/35576.htm
    =======================================
    Мой профиль на ZXArt.ee: http://zxart.ee/rus/avtory/h/helcril/
    =======================================
    ZX Spectrum +2, ZX Evolution Rev. C

  11. #70
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,491
    Спасибо Благодарностей отдано 
    227
    Спасибо Благодарностей получено 
    150
    Поблагодарили
    116 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от helcril Посмотреть сообщение
    а самое главное, что здесь означает GP?
    Не вникал. Может, "graphics primitive"?

Страница 7 из 9 ПерваяПервая ... 3456789 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Games Compo "From the Arcade to the Spectrum"
    от Rindex в разделе Игры
    Ответов: 5
    Последнее: 28.10.2014, 11:07
  2. 30 ZX Spectrum Games - угадываем названия игр
    от Sabrewulf в разделе Игры
    Ответов: 156
    Последнее: 17.06.2009, 12:41
  3. The Spectrum Games Bible
    от ant222 в разделе Игры
    Ответов: 1
    Последнее: 26.07.2008, 18:35
  4. Read-write vTR-DOS
    от Sonic в разделе Оси
    Ответов: 3
    Последнее: 23.04.2007, 15:34
  5. ZX Spectrum games after 1993
    от alone в разделе Игры
    Ответов: 4
    Последнее: 01.03.2007, 20:42

Ваши права

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