Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 30.08.2020 в Сообщения

  1. 1 балл
    Оставлять подмену прокси не обязательно, ибо прокси компонента под капотом обращается к invoke: machine.lua#L1226
  2. 1 балл
    Не советую переопределять прокси. Через component.invoke можно обратится напрямую к методу, поэтому переписывать нужно invoke, а не proxy.
  3. 1 балл
    Даже в реальном мире иногда включается режим отображения границ чанков. Подробности тут.
  4. 1 балл
    Библиотека для загрузки трехмерных моделей в формате OBJ и вывода их на очки OpenGlasses. (Формат OBJ - один из самых широко распространенных форматов моделей. Практически все пакеты трехмерного моделирования его поддерживают. Помимо этого, большое количество готовых моделей можно найти в интернете.) Исходный код: http://pastebin.com/JyK7KTCQ Используя несложный интерфейс, вы легко можете сделать что-то вроде этого: Единственный минус - скорость отрисовки, которая возврастает пропорционально количеству полигонов. Череп на скриншоте состоит приблизительно из 9000 полигонов и отрисовывался около 5 минут. API библиотеки load(filename: string) - загружает модель из указанного файла. Расширение ".obj" указывать. draw(glasses: table) - отрисовывает модель на указанном компоненте типа "glasses". setPosition(x: number, y: number, z: number) - положение модели относительно терминала очков setScale(s: number) - масштабирование модели. 1.0 - масштаб 1 к 1. Размеры моделей могут очень варьироваться в разных OBJ файлах, поэтому подстройка масштаба вам скорее всего потребуется в любом случае. setColor(r: number, g: number, b: number) - цвет модели. Указывается числами от 0.0 до 1.0, в стандартной палитре RGB. getPosition(): table - возвращает таблицу вида {x, y, z}. Ключи полей - числа от 1 до 3. getScale(): table - возвращает масштаб модели. getColor(): table - возвращает цвет модели вида {r, g, b}. Ключи полей - числа от 1 до 3. getVertexNum(): number - возвращает число вершин модели getPolyNum(): number - возвращает число полигонов модели Пример использования local obj = require('obj') local com = require('component') local glasses = com.glasses glasses.removeAll() obj.load('wolf.obj') obj.setScale(0.01) obj.setPosition(0, 0, 5) obj.setColor(1, 1, 1) obj.draw(glasses) print('Vertex: '..obj.getVertexNum(), 'Poly: '..obj.getPolyNum()) Файл библиотеки при этом должен иметь название obj.lua. Результат выполнения будет выглядеть примерно так: P.S. Модели с большим количеством полигонов будут мерцать, так как очень сильно увеличат расход энергии на терминал очков. На сервере рекомендуется использовать менее полигональные модели. А в сингле - отредактировать файл конфигурации мода OpenGlasses и снизить расход энергии.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...