ноябрь 17, 2018

Breakout 280

Добавить в
Мои игры
Торрент
Скачать

Вот клон Breakout, умещающийся в один твит (эта версия на три два символа короче оригинала). Используйте мышь для управления веслом. Игра начнется сразу после загрузки/сброса, так что будьте готовы поймать мяч. Игра сделана для PICO-8. См. ниже оригинальную и прокомментированную версии исходного кода и подписывайтесь на меня в Twitter, чтобы увидеть больше похожих вещей.

1 2 3 4 5b,a={64,99},{.5,-1}тыкать(24365,1)memset(0,153,9215)::_::для z=0,5 делать cls()map()rect(0,0,127,128)p=stat(32)rect(p-8,126,p+8,127)i=z%2+1y=b[i] b[i]+=a[i]if(pget(b[1],b[2])>0)mset(b[1]/8,b[2]/8,0)a[i]* =-1 b[i],a[i-1]=y,b[2]>119 и(b[1]-p)/8 или a[1] конец pset(b[1],b[2])flip()goto _

А вот версия с комментариями:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86-- установите положение шара (b) и вектор скорости (a) -- начать игру с мячом, движущимся вверх-вправо б, а={64,99},{.5,-1} -- включить управление мышью тыкать(24365,1) -- заполнить данные спрайта и верхнюю часть карты значением 153 -- данные спрайта начинаются с адреса 0 и карта правильная -- после этого. это делает все спрайты оранжевыми (один байт кодирует -- два пикселя в спрайте, 153 -> 0x99 в шестнадцатеричном формате -> 9 - это индексИкс -- для оранжевого цвета) и карта заполняется тайлом 153. как -- пока на карте есть ненулевые тайлы, это будет работать как все -- спрайты/плитки теперь полностью оранжевые. набор памяти (0,153,9215) -- метка цикла для запуска игровой логики ::_:: -- повторять шесть раз за отображаемый кадр, чтобы игровой процесс был быстрее -- это должно быть число, кратное двум (см. ниже, почему) -- реальный множитель скорости на самом деле равен трем (см. ниже) для z=0,5 сделать клс() -- просто нарисуйте всю карту - выше была заполнена только верхняя часть карта() -- рисовать границы игрового поля прямоугольник (0,0,127,128) -- взять положение весла (p) n из координаты x мыши р=статистика(32) -- нарисуйте ракетку шириной 16 пикселей в позиции ракетки в нижней части -- экран прямоугольный(p-8,126,p+8,127) -- построить индексный счетчик (i) из счетчика циклов кадров (z) -- счетчик индексов теперь можно использовать для доступа к обоим шарам -- компоненты положения и скорости (x и y, 1 и 2) с -- тот же код -- он сначала перемещает мяч по горизонтали, а затем -- по вертикали на следующем цикле кадра. эффективно нет - движение по диагонали (правда, оно похоже на это) я=г%2+1 -- сохранить предыдущее значение компонента текущей позиции у=б[я] -- перемещаем мяч вдоль текущей оси, используя вектор скорости б[я]+=а[я] -- проверка на столкновение (значение пикселя под мячом не равно нулю) если pget(b[1],b[2])>0, то -- оператор if использует сокращение препроцессора pico8, которое -- позволяет использовать более короткий код.здесь написано с использованием стандарта -- структура if-then-end вместо структуры if(x) -- обнулить тайл карты под мячом (каждый тайл имеет размер 8x8, поэтому мы -- необходимо разделить координату мяча на 8, чтобы получить доступ к правильному -- плитка) mset(b[1]/8,b[2]/8,0) -- сгруппированные задания здесь записываются в развернутой форме. -- вернуть сохраненное предыдущее значение в координату (шарик -- ударить что-нибудь, так что переместите это обратно за пределы того, что оно ударило) б[я]=у -- изменить составляющую скорости -- подпрыгнуть! обратите внимание, что это может -- также можно записать как a[i]*=-1 (a[i] = -1 * a[i]), но это не может -- быть сделано а[я]=-а[я] -- это подло: [i-1] используется для доступа к компоненту x -- вектора скорости (a) при обработке y -- компонент (i == 2, i-1 == 1): он установит нулевой индекс, когда -- обработка x (i == 1, i-1 == 0), но это никогда не используется. этот -- задает компонент x вектора скорости на основе - положение весла. чем левее от ударов весла, тем -- больше левое движение будет иметь скорость и наоборот. -- если компонент позиции y (b[2]) больше 119 (мы знаем все -- удары будут ударами веслом, а не верхом -- стена/кирпичи) -- в противном случае он просто переназначает оригинал -- значение (a[1] == скорость x). -- -- это можно было бы записать следующим образом (но это на два символа длиннее): -- -- если b[2]>119, то -- а[i-1]=(b[1]-p)/8-- конец a[i-1]=b[2]>119 и (b[1]-p)/8 или a[1] -- конец логики столкновения конец -- конец цикла кадра конец -- нарисуйте мяч в позиции мяча набор(б[1],б[2]) -- перевернуть рамку подбросить() -- цикл к началу игровой логики идти к _

Как скачать Breakout 280 через торрент

Всего несколько простых шагов:

  • Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
  • Выбираем и скачиваем подходящий торрент-файл репака Breakout 280
  • Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
  • После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!