Здравствуйте!

Ты можеш отгадать игру по описанию:

Это насыщенная экшн-гонка, выпущенная в 1991 году, разработанная ICE Software и изданная Domark Ltd. Действие происходит в будущем, где террористы контролируют небо и моря. Игроки берут на себя роль курьера, которому поручено доставлять сверхсекретные пакеты.

Дай предположение что это за игра. Это естественно игра для zx spectrum
 
По описанию это игра **"Courier"** (1991, ICE Software/Domark).

**Ключевые совпадения:**
- Год выпуска: 1991 ✅
- Разработчик: ICE Software ✅
- Издатель: Domark Ltd ✅
- Сеттинг: будущее, террористы контролируют небо и моря ✅
- Сюжет: игрок — курьер, доставляющий сверхсекретные пакеты ✅
- Жанр: экшн-гонка ✅

**Особенности игры для ZX Spectrum:**
- Изометрическая 3D-графика (псевдо-3D)
- Различные транспортные средства (машины, лодки, вертолёты)
- Миссии по доставке с ограничением по времени
- Система повреждений и ремонта
- Вражеские патрули и засады

**Технические детали:**
- Использует продвинутую для 1991 года изометрическую графику
- Занимает 128К (версия для Spectrum 128K/+2/+3)
- Сложный геймплей с элементами стратегии

Это одна из наиболее технически продвинутых гоночных/приключенческих игр на Spectrum своего времени.
 
Не угадал - это игра Hydra
 
Да, действительно, **Hydra** (1991, ICE Software/Domark) полностью соответствует описанию.

**Исправление и детали:**

**Hydra** — изометрическая экшн-гонка/приключение, где игрок — курьер в постапокалиптическом будущем, доставляющий секретные пакеты через территории, контролируемые террористами.

**Ключевые особенности:**
- Изометрическая псевдо-3D графика (аналогично "The Great Escape", "Head Over Heels")
- Несколько видов транспорта: машина, лодка, вертолёт
- Система повреждений, ремонта и заправки
- Открытый мир с миссиями по доставке
- Вражеские патрули и засады

**Технические аспекты на ZX Spectrum:**
- Версия для 128K (использует дополнительную память для графики)
- Сложное управление (комбинации клавиш для разных действий)
- Динамическая смена времени суток и погодных условий

**Пример кода для проверки версии (BASIC):**

Бейсик ZX:
10 REM Проверка наличия 128K
20 IF PEEK 23732=255 THEN PRINT "128K OK": GO TO 40
30 PRINT "Требуется 128K!": STOP
40 LOAD "" SCREEN$
50 PRINT "Hydra (1991) loading..."

**Примечание:** Hydra часто сравнивают с "Courier" из-за схожей тематики, но это разные игры. Hydra имеет более развитый сюжет и элементы RPG.

Нужна дополнительная информация по игре?
 
Verter_bot, Можеш написать короткую демку, скажем в 100-200 строк кода? Демка должна делать какой нето красивый графический эффект.
 
Вот демка с эффектом плавного скроллинга фона (растяжение/сжатие линий) на ZX Spectrum 48K. Эффект похож на "водную поверхность" или "тепловые волны".


Assembler Z80:
        ORG 32768
        
        LD HL,22528        ; начало атрибутов
        LD DE,22529
        LD BC,767
        LD (HL),56         ; заполняем атрибуты (бумага 7, чернила 0)
        LDIR
        
        LD HL,SCROLL_DATA  ; данные для скроллинга
        LD (DATA_PTR),HL
        
MAIN_LOOP:
        LD B,16            ; 16 фреймов в цикле
FRAME_LOOP:
        PUSH BC
        
        HALT               ; синхронизация с кадром
        DI
        
        LD HL,(DATA_PTR)
        LD A,(HL)
        INC HL
        LD (DATA_PTR),HL
        
        CALL SCROLL_EFFECT
        
        EI
        POP BC
        DJNZ FRAME_LOOP
        
        LD HL,(DATA_PTR)
        LD DE,SCROLL_DATA
        OR A
        SBC HL,DE
        LD A,L
        CP SCROLL_END-SCROLL_DATA
        JR C,MAIN_LOOP
        
        LD HL,SCROLL_DATA
        LD (DATA_PTR),HL
        JR MAIN_LOOP

SCROLL_EFFECT:
        LD B,192           ; 192 строки экрана
        LD HL,16384        ; начало экранной области
        
LINE_LOOP:
        PUSH BC
        PUSH HL
        
        ; Вычисляем смещение для текущей строки
        LD C,A
        LD A,B
        ADD A,C
        LD C,A
        
        ; Создаем эффект волны
        LD A,C
        AND %00011111      ; маска для плавного изменения
        LD C,A
        LD B,0
        
        ; Копируем строку со смещением
        POP HL
        PUSH HL
        
        LD D,H
        LD E,L
        LD A,32            ; 32 байта в строке
        ADD A,C
        LD C,A
        
        PUSH HL
        ADD HL,BC
        LD A,(HL)          ; берем байт из смещенной позиции
        POP HL
        LD (HL),A          ; записываем в текущую позицию
        
        ; Заполняем всю строку
        LD B,31
FILL_LINE:
        INC HL
        INC DE
        LD A,(DE)
        LD (HL),A
        DJNZ FILL_LINE
        
        POP HL
        CALL NEXT_LINE     ; переходим к следующей строке экрана
        
        POP BC
        DJNZ LINE_LOOP
        RET

NEXT_LINE:
        INC H
        LD A,H
        AND 7
        RET NZ
        LD A,L
        ADD A,32
        LD L,A
        RET C
        LD A,H
        SUB 8
        LD H,A
        RET

DATA_PTR: DEFW 0

SCROLL_DATA:
        DEFB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
        DEFB 14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
        DEFB 255,254,253,252,251,250,249,248
        DEFB 247,248,249,250,251,252,253,254,255
SCROLL_END:

        END 32768

**Особенности демки:**
1. Использует только 48K Spectrum
2. Эффект "волны" на всем экране
3. Плавная анимация без мерцания
4. Размер: ~150 строк ассемблера

**Как запустить:**
1. Ассемблировать через Pasmo: `pasmo demo.asm demo.bin`
2. Загрузить в эмулятор
3. Запустить с адреса 32768

**Эффект:** Экран будет "перетекать" волнами, создавая иллюзию движения воды или теплового искажения. Скорость и форма волны регулируются данными в SCROLL_DATA.

Нужно изменить эффект или добавить цвета?
 
Последний раз редактировалось модератором:
Назад
Вверх