Що саме складає екран у типовій грі C64?


10

Я намагаюся розібратися з основами розробки ігор C64 минулого BASIC, і я міг би скористатись порадами щодо чогось дуже елементарного, але важливого: Що це все на екрані та як його намалювати?

Погляньте на Катакіс / Денаріс :

Скріншот Katakis

На екрані принаймні 9 різних речей:

  1. Рядок оцінки, з різними шрифтами
  2. Сам корабель
  3. Супутник, прикріплений до корабля, знімний
  4. Вторинні збройові снаряди
  5. Первинні снаряди зброї
  6. Рухомі об'єкти (можуть бути кораблі противника)
  7. Рядок стану із зображенням корабля, кількістю життя та трьома розділами, які можна заповнити
  8. Первинний заряд зброї, може заповнити до кінця
  9. Прокручується зоряне поле на задньому плані
  10. (не пронумеровано на екрані) Тверді предмети, як скелі або металеві стіни, які є частиною фону

C64 підтримує лише 8 спрайтів на горизонтальну лінію сканування, тож я не думаю, що все в середині екрана може бути спрайтом? Я б припустив, що все, що вимагає зіткнення, було би спрайтом (оскільки я можу отримати апаратне виявлення зіткнення зі спрайтами), але навіть тоді я швидко досягнув межі 8 спрайтів. Крім того, моя зброя може вистрілити набагато більше, ніж один снаряд - мій корабель, супутник і 6 куль вже будуть 8 спрайтів поспіль (дивіться приблизно 50 секунд на відео).

Також, у якому графічному режимі буде така гра, як це використання? У посібнику з програмування перелічено режим бітової карти, який суттєво змінює екранну пам'ять. Це режим, в якому я зазвичай повинен працювати? Як би я склав усі не-спрайтові елементи разом, щоб вивести їх на екран?

Багато речей у шкалі та статусному рядку є статичними ("Площа: 01" чи "кадр"), тому я думаю, що я просто заповнити їх один раз, коли рівень почнеться. Те, що потребує оновлення - оцінка, бари заряду внизу - буде оновлено, заповнивши екранну пам'ять чорним кольором, а потім намалювавши новий бал кожного кадру?

Або мені потрібно намалювати весь екран на кожному кадрі?

Відповіді:


13

На c64 ви можете "мультиплексувати" спрайти. Після того, як вони намальовані, ви переміщуєте їх на нове місце і повторно використовуєте. Більшість об'єктів посередині, ймовірно, мультиплексовані спрайти. У c64 дуже просто використовувати більше 8 спрайтів, доки вони не займають однакові горизонтальні лінійки. Крім того, ви можете фактично виготовляти програмні спрайти, використовуючи шрифтову графіку, якщо це потрібно (снарядів не менше, ніж у цьому випадку).

2, 3, 6. Це, швидше за все, спрайт.

4, 5, 9. Це, ймовірно, графічні символи (8x8 пікселів) програмного забезпечення "спрайти"

Гра використовує режим не растрового зображення, це вимагатиме занадто багато переміщення пам’яті (якщо тільки ви не виконайте фокуси з чіпами VIC ...). Використовуваний режим буде графічним режимом символів.

Що вам потрібно намалювати залежатиме. У цьому випадку, якщо ви придивитесь досить уважно, є певні розміри (x * y пікселів) зірки візерунка, які повторюються, так що в основному ви б оновили пам'ять символів цих шрифтів, щоб імітувати прокручування зоряного поля.

Оцінка / статус, який ви заповнюєте на старті, а потім оновіть їх, коли потрібно.

Вам доведеться оновлювати спрайти та їхню позицію в кожному кадрі. Ви також оновили снаряди. Крім того, ви б оновили шаблон x * y пікселя.


5
Придивився уважніше до відео Катакіса. Деякі з цих об'єктів - насправді шрифтова графіка. Ви насправді можете бачити, дивлячись на використані кольори. Також зоряне поле насправді не просто піксель X * Y, але трохи відрізняється, але все ще є в графіці шрифтів. Вам доведеться оновлювати прокручену графіку шрифтів на кожен 8-й піксель, оскільки апаратні прокрутки реєструють лише графіку 8 ​​пікселів, що підтверджує хитрість програмного забезпечення. Також ви не хочете використовувати апаратні спрайти зі спрайтом. Вони не можуть розрізнити, що спрацьовує насправді стикаються, якщо задіяно більше 2 спрайтів. Просто проста математика стане в нагоді в зіткненнях.
Просто старий c64 geezer

2

Я прочитав статтю деякий час тому в німецькому журналі C64. Кулі - це символи, які виконують роль спрайтів, як хтось уже вказував. Корабель і вороги - спрайти.

Рівні також складаються з символів, але з поворотом. Оскільки рівні настільки величезні, а пам'ять дорогоцінна, Тренц написав власний набір інструментів для групування символів у модулі.

Тож він може використовувати більші модулі і складати їх. Також він би використовував певні патч-модулі, щоб отримати перетин модулів красивим і чистим.

Загалом це свого роду стиснення, де рівні описуються будівельними блоками замість char за допомогою char.

Також ви могли помітити, що в Катакісі деякі рівні мають паралакс.

Це зроблено за допомогою шаблону для заповнення фону, в основному з 2x2 або 3x3 символів, і анімації його (бітового зміщення) проти напрямку прокрутки. Наприклад, рівень прокручує 2 пікселі ліворуч, фоновий малюнок прокручується на 1 піксель праворуч, отже, здається, він прокручується повільніше.

Сподіваюся, що це допомагає

Ще одне, що ви можете побачити окремі модулі, і ось тут https://archive.org/details/64er_1989_10/page/n27 прокрутіть до сторінки 24

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.