Ну что, дорогие мои детишечки, пришло время заняться серьезными вещами и немножечко напрячь свой мозг, который у вас большой, огромный, как у доцентов.
Давайте-ка начнем с чего-нибудь простого и всем известного. Так сказать, разомнем ваши пальчики. Хорошо? нет
Вот вам первый вопрос в качестве тренировки. Давайте думать вместе. Рассуждения и обсуждения, конечно же, происходят в комментариях. Потому что тс может нести хуйню... Уже начал есичо
Но если вы не хотите обсуждать и рассуждать, то просто молча ткните кнопку и идите по своим делам дальше, скролить бесконечную ленту.
Итак.
Фая!
ВикторинаВыберите 1 вариант
Правильный ответ задан автором.
Что из перечисленного, согласно самой строгой лингвистической трактовке, НЕ является исконно русским матерным корнем (основой трёхэтажной конструкции)?
Следующим этапом сделаем систему отображения тайлов на игровом поле. Мы предполагаем, что у нас есть тайлы разных типов: кирпичи там, бетон, вода, лёд, кусты.
И чтобы эти самые блоки рисовать на игровом поле, нужно ввести сущность карты и самих блоков.
Сущность карты:
class GameMap {
constructor() {
// Сетка 26x26 субтайлов
this.tileGrid = [];
for (let y = 0; y < GRID_SIZE; y++) {
this.tileGrid[y] = new Array(GRID_SIZE).fill(TILE_EMPTY);
}
// Карта для хранения состояния повреждений разрушаемых тайлов
this.damageMask = new Map();
// Флаг необходимости перерисовки фона
this.dirty = true;
}
}
Ну и в нашем основном классе надо карту создать:
/** @type {GameMap} */
let gameMap = null;
...
// в методе init
// Создаём и загружаем карту
gameMap = new GameMap();
gameMap.loadLevel(TEST_LEVEL_1);
// Рисуем фон (карта + рамка)
renderBackground(gameMap);
gameMap.dirty = false;
Не знаю, пока, на сколько такой формат хранения данных корректен и будет удобен в использовании в дальнейшем, но сейчас он по крайне мере очень нагляден и удобен для ручного левел дизайна.
Рисование блоков достаточно просто:
export function renderBackground(gameMap) {
const ctx = backgroundCtx;
// Очищаем весь фон
clearBackground();
// Рамка игрового поля
renderGameFieldBorder();
// Рисуем все непустые тайлы
for (let y = 0; y < GRID_SIZE; y++) {
for (let x = 0; x < GRID_SIZE; x++) {
const tileId = gameMap.getTile(x, y);
if (tileId === TILE_EMPTY) continue;
const tileDef = TILE_DEFS[tileId];
if (!tileDef) continue;
// Логические координаты → физические координаты на canvas
const px = GAME_FIELD_X + x * TILE_SIZE * GAME_SCALE;
const py = GAME_FIELD_Y + y * TILE_SIZE * GAME_SCALE;
const size = TILE_SIZE * GAME_SCALE;
ctx.fillStyle = tileDef.color; // цвет в самих тайлах пока храню
ctx.fillRect(px, py, size, size); // потом буду спрайты рисовать
}
}
}
Хранятся тайлы у меня вот таким образом:
TILE_DEFS = {
[TILE_EMPTY]: {
id: TILE_EMPTY,
name: 'empty',
blocksTank: false,
blocksBullet: false,
destructible: false,
overlay: false,
color: COLOR_EMPTY // эта вся фигня в константах забита
},
...
У сущности карты есть метод для загрузки из вот того текстового бреда, который чуть выше скинут
loadLevel(levelData) {
for (let y = 0; y < GRID_SIZE; y++) {
for (let x = 0; x < GRID_SIZE; x++) {
const char = levelData[y]?.[x] || '.';
this.tileGrid[y][x] = charToTile(char);
}
}
// Инициализируем damageMask для всех разрушаемых тайлов
this.damageMask.clear();
for (let y = 0; y < GRID_SIZE; y++) {
for (let x = 0; x < GRID_SIZE; x++) {
const tileDef = TILE_DEFS[this.tileGrid[y][x]];
if (tileDef && tileDef.destructible) {
this.damageMask.set(`${x},${y}`, DAMAGE_FULL);
}
}
}
this.dirty = true;
console.log(`Level loaded. Destructible tiles: ${this.damageMask.size}`);
}
function charToTile(char) {
switch (char) {
case 'B': return TILE_BRICK;
case 'S': return TILE_STEEL;
case 'W': return TILE_WATER;
case 'F': return TILE_FOREST;
case 'I': return TILE_ICE;
case 'E': return TILE_BASE;
default: return TILE_EMPTY;
}
}
И вот такой вот получается итог
В целом, уже похоже на правду и с этим можно работать.
Что ж, на волне про значение слов, парочка их есть у меня. Так сказать, поддержим волну и все дела, как мы любим. И буду это делать в виде размышлительниншны. Потому что размышлять в 6 утра это лучшее время для того, чтобы остаться наедине с собой и поговорить в телефон в одиночестве. Как это прекрасно. Сукаблять
Будучи совсем юным и тупорылым, был не просто ребенком, а был ебучим лингвистическим диверсантом, который с самыми лучшими намерениями закладывал смысловые значения в слова и потом удивлялся, почему же они врываются мне же в еблище.
Почему так получилось? И история про то, как слова живут своей, отдельной от наших намерений жизнью. Начну с первой истории. Это было слово "тугодум".
Где-то в моей голове возникло слово "тугодум". И мой еще не испорченный цинизмом мозг провел гениальный, но тупорылый анализ. Тугой - это значит крепкий, сильный, надежный. А дум - думать, ну от глагола думать, как мы все понимаем. То есть мыслить. И вывод. Тугодум это тот, кто крепко, надежно, качественно думает, проводит какой-то мыслительный анализ, то есть такой мыслитель, философ что ли, не знаю даже. То есть человек-танк в мире идей. И я, сияющий от своего открытия, начинал величать так всех, кто, по моему мнению, умен. А в ответ получал не благодарность, а пиздюлей и взгляд полный ненависти, чему был сам несказанно удивлен.
Потому что те, кто удостоился чести называться из моих уст Тугодумом, знали буквальное значение этого слова и не разделяли со мной это название. То есть получилось так, что Тугодум это не крепкодумающий, не умный, а это тупой, медленно соображающий тормоз. То есть по сути каждым таким комплиментом говорил человеку "эй, уважаемый дебил", а потом искренне удивлялся агрессии. Наверное, это как подарить похоронный венок на день рождения, только потому, что там цветочки красивые. Намерение одно, а восприятие диаметрально противоположное. То есть пытался подарить золото, а вручал говно, может быть, даже в красивой обертке. И меня били за вручение говна, а не за намерение сделать человеку приятное.
Вторая история. Это уже было слово "доцент". Тут было немножко круче. Я посмотрел фильм "Джентльмены удачи", и там главаря ихнего называли доцентом. Но я уже чувак опытный - взял большую советскую энциклопедию и посмотрел, что такое доцент. И смотрю, что доцент оказывается весьма умный человек, звание ученое, степень какая-то. И для меня слово "доцент" навсегда слилось с образом уважаемого, умного, своего в доску и крутого мужика. Я прихожу в школу и начинаю называть людей именно так, желая подчеркнуть их крутость и уважение, подчеркнуть их ум и стремление к впитыванию знаний. но не учел местный контекст.
Во-первых, у нас в школе уже был живой доцент. Пацан по фамилии Доценко. Как это ни странно, но он был двоечником. То есть в локальной иерархии его фамилия уже была клеймом и маркером неуспеха. Называя кого-то доцентом, я автоматически приравнивал его к этому типуле, по сути говорил "ты такое же чмо, как этот двоечник Доценко". То есть, вне моей личной ассоциации с фильмом или с словом, которое я прочитал в энциклопедии, слово "доцент" в школьной, дворовой среде 90-х вообще не было крутым. Это было слово занудного, оторванного от жизни, неприкольного уёбка, которому учителя пророчили сгнить в канаве. Это был антиидеал.
И опять получается с самыми лучшими побуждениями награждал человека статусом, который в его собственной системе координат, в локальной, нашей, был позорным, унизительным и вообще обзывательством. То есть я столкнулся с тем, что слова это не просто ярлыки для моих мыслей, их значение определяется не мной и не словарем, а понятиями той группы, в которой я находился.
То есть, доброе намерение было в моей голове, остальным всем плевать, а значение слова было в их головах, в головах всех окружающих. И когда эти два, когда эти две сущности не совпадали, получалось замыкание. Плюс на минус - бах, в итоге у меня синий еблет, а у них чувство выполненного долга. То есть, наверное, меня можно сравнить с каким-то иностранцем, который выучил слово на чужом языке по какому-то кривому разговорнику, который сделала нейросеть. И потом удивлялся, почему меня бьют местные за это, казалось бы, безобидное слово.
Поэтому с тех пор я перестал называть людей как бы то ни было, даже если они этого заслуживали, просто молча и старался всегда не отсвечивать. Потому что вдруг опять в яблище прилетит, это будет очень неприятно. Как минимум.
Есть такой страшный грех - выесть тайком серединку арбуза в одно лицо, а остальное порезать кусочками и сложить в мисочку - типа это всё, что было.
Думаю, этим грешат все нарезчики арбузов в магазинах, продающих летом стаканчики с порезанным арбузом. Никогда в этих стаканчиках не бывает сладких кусочков... Загадка дыры!
Булочки сладкие :3
Фасция ) пучок вроде. Особено доставляло тем, кто узнал от Пучкова )))
Вот что это за звуки по ночам)!