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

LeshaInc

Пользователи
  • Публикации

    777
  • Зарегистрирован

  • Посещение

  • Победитель дней

    68

Все публикации пользователя LeshaInc

  1. Пятнашки надо с рисунком, а то скучно.
  2. так можно и на луну улететь. а выделять таблицу на прямоугольник избыточно в данном случае можно было сделать и так local function contains(rx, ry, rw, rh, x, y) return x >= rx and y >= ry and x < (rx + rw) and y < (ry + rh) end if contains(tab.x, tab.y, tab.w, tab.h, clickX, clickY) and clickButton == tab.button then ... end
  3. if x >= rx and y >= ry and x < (rx + w) and y < (ry + h) and btn == rbtn then ... end -- VS local function buttonClickInBox(x, y, btn, rx, ry, rw, rh, rbtn) return x >= rx and y >= ry and x < (rx + w) and y < (ry + h) and btn == rbtn end if buttonClickInBox(x, y, btn, rx, ry, rw, rh) then ... end сравни и сделай вывод, какой код понятнее
  4. local event = require("event") local computer = require("computer") local keyboard = require("keyboard") local running = false local commands = {} function commands.exit() running = false end commands["run hadron collider"] = function() print("Hadron Collider has been runned!") os.sleep(5) print("Boom! Universe has been destroyed!") while true do computer.beep() computer.pullSignal(2) end end local funcion onKeyDown(_, _, _, code) if keyboard.keys[code] == "q" then running = false end end event.listen("key_down", onKeyDown) while running do local command = io.read() local handler = commands[command] if handler then handler() end end event.ignore("key_down", onKeyDown) это полезнее будет, вселенную уничтожает и даже без рекурсии
  5. Индентация из одного места, задача кода не понятна. Что это? Командная оболочка? Программа управления адронным коллайдером? Рекурсия в бесконечном цикле в рекурсии? Что это з зверь? test запускается, в нем бесконечный цикл, потом очередной test при нажатии. Я нажму 100 раз на клаву и прога вылетит, вероятно. А если ничего не трогать, овердофига раз в секунду будет зачем то сетиться надпись. Каждый раз, черт возьми. Непонятна суть листенеров тут, они только ухудшают все. Решение (лучшее, имхо): ^A; Del; ^S; переписать.
  6. Это не к нам, а к ECS (тут его нет). Тут ему можно написать.
  7. можно так local function wrap(fn, desc) return setmetatable({}, { __call = function (_, ...) return fn(...) end, __tostring = function () return desc end }) end local test = { something = wrap(function () return 42 end, "function (): number -- does cool things") } print(tostring(test.something), test.something()) = в оболочке луа просто показывает ключи таблицы и их содержимое при помощи tostring(). такой вариант пойдет.
  8. local coroutines = {} coroutines[coroutine.create(function () -- код игрока end)] = 0 -- количество операций debug.sethook(function () local running = coroutine.running() if running then coroutines[running] = coroutines[running] + 100 coroutine.yield(--[[ ... ]]) end end, 100) что тут сложного?
  9. Заблокирует навечно, пока не встретит EOF. Во взрослых протоколах пишется в первых байтах размер сообщения. Например так: <4 байта - размер сообщения как N: 15> <текст сообщения, N байт: something 12345> Но в таком случае достаточно чтения одной строки, да. Строки, да, но внутри них мы можем писать бинарные данные, например длину сообщения ту же.
  10. Нужно в первую очередь определиться с целью обмена. А некоторых случаях нужно использовать UDP, в некоторых TCP. Насчет луа-скриптов от игроков: исполнять их в любом случае надо на сервере. Пока неизвестно на чем будет написан сервер нельзя точно сказать как прервать блокирование такого потока, ограничение по ресурсам и прочие хитрости. Конечно можно написать сервер и на самом love2d, но скорость будет хромать. love2d не предназначен для высоконагруженных серверов, это фреймворк для 2д игр.
  11. есть, & | << >> ~, зачем мозги пудрить людям. берешь и переходишь на луа 5.3, вот тебе и битовые операции
  12. Что тебя заставило вообще полезть в жизнь? Какие ты цели себе ставишь? Что рассчитываешь получить от жизни и что уже получил? Если не хочешь отвечать здесь, то хотя бы подумай и ответь самому себе на эти вопросы. Возможно, это просто не твоё.
  13. Gloria per tempus, grando Primarch!

×
×
  • Создать...