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

BenniShifer919

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

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

  • Посещение

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

    7

Сообщения, опубликованные пользователем BenniShifer919


  1. 2 минуты назад, DrZeon сказал:

    Что-то типа пушки которая сама будет наводится на ближайшие сущьности

    Если мне память не изменяет, то в СС подходящих для такой задачи блоков нету. Без жутких костылай или ухищрений просто так это не сделать


  2. Микро-обновление (прямо реально, поменялся всего 1 символ) для версии ОС&СС. Теперь, если у клетки верхний "проход" (не знаю как по-другому назвать) "открыт", то уголок не будет рисоваться. Зачем это? В первую очередь, чтобы убрать сетку. А во-вторых, ради красоты. А ещё версия ОС стала чуть-чуть более оптимизированной. Теперь не рисуются заведомо пустые символы.

    • Нравится 1

  3. В общем, сначала предыстория. Захотел я сделать другую игру, но с многим общим с этой бродилкой, в первую очередь в ходьбе и реализации карты. И тут у меня появилась идея: удалить из версии СС всю игру и оставить только отображение, ходьбу и все, что нужно для этого. Получился некий "движок" (пусть таковым и не является) для новой игры. Можете свободно пользоваться. Игра лежит на GitHub под именем maze_game_engine_cc.lua. Размер файла уменьшился с 600 до 200 строк.

     

    Скрытый текст

    image.png

     


  4. 3 минуты назад, Oleshe сказал:

    Привет, по поводу ревизий для OpenCompuetrs.

    Она работает, но до определённого условия, либо много уйти в сторону, либо гэйм овер:

      Скрыть содержимое

    Только по ссылке

    https://youtu.be/whsGVMua5qo

     

    Объязательно посмотрю! И да, ссылка приватная
     

     

    3 минуты назад, Oleshe сказал:

    В общем: Цветовая палитра снизу сливается с текстом. Жёлтый и белый особенно. Так-же было-бы ну прикольно сделать так что-бы та полоска на которой текст уходила вместе со значениями. Меньше значение- меньше полоска, наглядно понимать когда тебе конец.

    Насчёт цветов: Я особо незнаю на что именно поставить, и, ещё возможно, что это проблема именно ОС, потому-что на СС я не замечал чтобы сильно сливалось. Насчёт полоски - была такая затея, в основном трудность в том как это грамотно реализовать на СС, однако есть пару идей как для ОС так и для СС.

     

     

    5 минут назад, Oleshe сказал:

    В уникоде есть сплошной символ, закрашенный пиксель, и есть решето (Куча точек). Залить сплошным стены а то что там серое на дороге сделать точками. Не знаю как с этим в СС.

    В СС Есть много разных декораций, а ОС нету поскольку я не занимался этим пока-что. И да, если не сложно, не знаешь где можно найти таблицу символов и их код для ОС?
    Насчёт серого, это "темнота", она может скрывать простую комнату или магазины.
     

     

    7 минут назад, Oleshe сказал:

    А еще было-бы неплохо начать загружать всё на GitHub т.к. там есть удобный GitHub Desktop (2 кнопки и обновление выкачено), можно посмотреть историю версий да и ссылка будет всегда одинаковая.

    Сейчас залью!


  5. Перенёс на OpenComputers, есть "мигание", это связано с тем что я не использовал какие-либо библиотеки для двойной буфферизации.

     

    Пастебин

     

    Изменения по отношению к версии СС:

    • Магазины, порталы, а также игрок теперь просто буквы, а не символы
    • Моргание

  6. 1 минуту назад, Fingercomp сказал:

    colors для указывания цветов видеокарты не подходит (ну, если не юзать палитру). Там true color нужен, 24-битный:

    
    gpu.setForeground(0xffffff) -- белый: 0xff красного, 0xff зелёного, 0xff синего
    gpu.setBackground(0x000000) -- чёрный

    А так он пытается поставить цвет 0x00000f (colors.white — это вроде число 15). Градаций синих в цветах T3-видеокарты — 6: 0, 51, 102, 153, 204, 255. OpenComputers ищет ближайший цвет к 0x00000f из имеющихся и получает чистый чёрный (15 ближе к 0, чем к 51). И итого рисуется чёрным по чёрному.

    Мгм, а ведь я посути могу просто подменить эту таблицу своей верно? Но уже с правильными значениями?


  7. Помогите пожалуйста найти ошибку! Я переношу свою игру на ОС, и у меня появились определенные трудности с отрисовкой. Я рисую, но оно не рисуется


    Полный код

    Скрытый текст
    
    local function draw()
            local width = panelWidth
            gpu.setBackground(colors.black)
            gpu.fill(0,0,w,h," ")
            --Map draw logic
            local offset = 2
            for y=cntY-range,cntY+range,1 do
                for x=cntX-range,cntX+range,1 do
                    gpu.setForeground(colors.white)
                    gpu.setBackground(colors.black)
                    dx,dy = x*2+offset-(cntX-range)*2,y*2+offset-(cntY-range)*2
                    if map[y][x].top == true then
                        gpu.set(dx, dy,"# ")
                    else
                        gpu.set(dx, dy,"##")
                    end
                    dx,dy = x*2+offset-(cntX-range)*2,y*2+1+offset-(cntY-range)*2
                    local s = ""
                    local sC = colors.white
                    if y == cntY and x == cntX then
                        s = plrS
                        sC = colors.yellow
                    elseif map[y][x].dark == true then
                        s = "#"
                        sC = colors.gray
                    end
                    if map[y][x].dark == false  or (y == cntY and x == cntX) then
                        if map[y][x].type == "shop" then
                            s = shpS
                            sC = colors.lime
                        elseif map[y][x].type == "portal" then
                            s = prtS
                            sC = colors.cyan
                        elseif map[y][x].type == "lava" then
                            s = lavS
                            sC = colors.red
                        elseif map[y][x].type == "ushop" then
                            s = ushS
                            sC = colors.blue
                        elseif map[y][x].type == "oshop" then
                            s = oshS
                            sC = colors.yellow
                        end
                    end
                    if map[y][x].left == true then
                        gpu.set(dx,dy," ")
                        gpu.setForeground(sC)
                        gpu.set(dx+1,dy,s)
                    else
                        gpu.set(dx,dy,"#")
                        gpu.setForeground(sC)
                        gpu.set(dx+1,dy,s)
                    end
                end
            end
            -- Coins, Food, Water level
            --FOOD
            gpu.setBackground(colors.brown)
            gpu.fill(0,h,w,1," ")
            gpu.set(1,h,"Food level: "..tostring(food))
            gpu.setForeground(colors.white)
            --Water
            gpu.setBackground(colors.cyan)
            gpu.fill(0,h-1,w,1," ")
            gpu.set(1,h-1,"Water level: "..tostring(water*10))
            gpu.setForeground(colors.white)
            --Coins
            gpu.setBackground(colors.orange)
            gpu.fill(0,h-2,w,1," ")
            gpu.set(1,h-2,"Coins: "..tostring(coins))
            gpu.setForeground(colors.white)
            --Shop menu display
            gpu.setBackground(colors.black)
            gpu.setForeground(colors.white)
            if map[cntY][cntX].type == "shop" then
                dx,dy = w-width,1
                gpu.setForeground(colors.lime)
                gpu.set(dx,dy,"Shop menu")
                for i=1,#shop_items,1 do
                    gpu.setForeground(colors.white)
                    dx,dy = w-width,i*2
                    gpu.set(dx,dy,shop_items[i].name)
                    if coins < shop_items[i].price then
                        gpu.setForeground(colors.red)
                    end
                    dx,dy = w-width,i*2+1
                    gpu.set(dx,dy,tostring(shop_items[i].price))
                end
            end
            if map[cntY][cntX].type == "ushop" then
                dx,dy = w-width,1
                gpu.setForeground(colors.blue)
                gpu.set(dx,dy,"Upgrades")
                for i=1,#upgrades,1 do
                    gpu.setForeground(colors.white)
                    dx,dy = w-width,i*2
                    gpu.set(dx,dy,upgrades[i].name..":"..tostring(upgrades[i].level))
                    if coins < upgrades[i].price then
                        gpu.setForeground(colors.red)
                    end
                    dx,dy = w-width,i*2+1
                    if upgrades[i].level >= upgrades[i].max_level then
                        gpu.setForeground(colors.yellow)
                        gpu.set(dx,dy,"Max LVL") 
                    else
                        gpu.set(dx,dy,tostring(upgrades[i].price))
                    end
                end
            end
            if map[cntY][cntX].type == "oshop" then
                dx,dy = w-width,1
                gpu.setForeground(colors.yellow)
                gpu.set(dx,dy,"Upgrades")
                for i=1,#once_upgrades,1 do
                    gpu.setForeground(colors.white)
                    dx,dy = w-width,i*2
                    gpu.set(dx,dy,once_upgrades[i].name)
                    if coins < once_upgrades[i].price then
                        gpu.setForeground(colors.red)
                    end
                    dx,dy = w-width,i*2+1
                    if once_upgrades[i].has then
                        gpu.setForeground(colors.yellow)
                        gpu.set(dx,dy,"Already")
                    else
                        gpu.set(dx,dy,tosting(once_upgrades[i].price))
                    end
                end
            end
            if map[cntY][cntX].type == "portal" then
                dx,dy = w-width,2
                gpu.setForeground(colors.cyan)
                gpu.set(dx,dy,"Portal")
                dx,dy = w-width,4
                gpu.set(dx,dy,"TELEPORT")
            end
            --Inventory menu display
            gpu.setBackground(colors.black)
            gpu.setForeground(colors.white)
            dx,dy = w-width,8
            gpu.setForeground(colors.brown)
            gpu.set(w-width,8,"Backpack")
            dx,dy = w-width,9
            gpu.setForeground(colors.orange)
            gpu.set(dx,dy,"Food")
            dx,dy = w-width,10
            gpu.set(dx,dy,tostring(inventory.food).."x")
            dx,dy = w-width,11
            gpu.setForeground(colors.blue)
            gpu.set(dx,dy,"Water")
            dx,dy = w-width,12
            gpu.set(dx,dy,tostring(inventory.water).."x")
            dx,dy = w-width,13
            gpu.setForeground(colors.brown)
            gpu.set(dx,dy,"Alcohol")
            dx,dy = w-width,14
            gpu.set(dx,dy,tostring(inventory.poison).."x")
            --Room inventory display
            gpu.setBackground(colors.black)
            gpu.setForeground(colors.white)
            if #map[cntY][cntX].inventory > 0 then
                dx,dy = w-width,15
                gpu.setForeground(colors.gray)
                gpu.set(dx,dy,"Room")
                for i = 1,#map[cntY][cntX].inventory,1 do
                    gpu.setForeground(colors.white)
                    dx,dy = w-width,15+i
                    gpu.set(dx,dy,map[cntY][cntX].inventory[i])
                end
            end
        end

     

    Я абсолютно непонимаю что не так, никаких ошибок не выдает, клавиши и т.п. обрабатывает правильно, но почему-то только не рисует, черный экран и всё
    2023-11-06-123449.png2023-11-06-123513.png


  8. Только что, Fingercomp сказал:

    Надо не компонент клавиатуры подключать, а библиотеку:

    
    local keyboard = require("keyboard")

    Эта такая извечная проблема: имя одно и то же, а вещи совершенно разные. Аристотель был бы недоволен. Нам, простым смертным, остаётся только смириться...

    Спасибо за помощь!
    А вот в CC всё есть из коробки


  9. Наверное, глупый вопрос, однако, самостоятельно информацию я найти не смог. Я пытался как на вики keyboards.keys, но оно выдает ошибку что keybords.keys не существует! Я незнаю что мне делать

    Ошибка
    2023-11-06-104612.png

    Место возникновения ошибки
    2023-11-06-104644.png


    Объявление keyboard
    2023-11-06-104728.png


  10. Произошло ещё одно обновление!
     

    Изменения:

    • 2 новых вида магазинов - oShop, uShop. В первом - можно купить апгрейды без уровня, типа бессмертие к лаве, 2 жизнь, или даже ноуклип! Во втором улучшения с уровнями, увеличенный радиус зоны которая будет видна, а также больше монет
    • Лава! Она спавнится рандомно, ее частота также зависит от сложности. Убивает моментально если ты зашёл в нее, однако смерть можно избежать купив улучшение.
    • Сложность разработчика! Если при вводе сложности ввести D, то вы получите 200 монет, ноуклип и бессмертие к лаве.
    • Темные комнаты! Они могут появиться в любой комнате, однако, если комната с лавой то "темной" она стать не сможет.

    Планы на будущее:

    • Исправлять багы..?

    Предлагайте ваши идеи для следующих обновлений

    Пастебин


  11. Произошло обновление! Ссылка на пастебин отличается: Пастебин.


    Изменения:

    • Новая комната! Портал - позволяет вас переместить в рандомную точку.(На уровне кода оно просто генерирует всю карту заново)
    • Дизайн! Теперь в игре появилось больше цветов, а также разнообразных символов.(К примеру - персонаж стал космонавтом из Among Us)
    • Размер карты! Теперь игра запоминает поле 25х25, а размер зоны которую видно по умолчанию стала 5х5.
    • Изменение сложности! Влияет только на то сколько голода и жажды вы получите за 1 ход.
    • Монеты за передвижение! Теперь, за каждую комнату которую вы пройдёте вы получите +1 монету.
       

    Планы на будущее обновление:

    • Отдельный магазин для апгрейдов - база для него уже есть в коде, добавление его не станет какой-либо проблемой
    • Что-либо что может закончить вашу игру, враги, ловушки?
    • Ловушки-комнаты
    • Тёмные комнаты

     

    Скрытый текст


    2023-11-05-180957.png
    2023-11-05-180905.png2023-11-05-180825.png

     


  12. 19 минут назад, eu_tomat сказал:

    Проверь остальные участки кода. Просто проговори своими словами, что делает каждая отдельная операция и группы операций. То есть прочитай код. Возможно, таким образом найдёшь и другие ошибки. Это один из стандартных способов поиска ошибок в коде.

    Спасибо за совет! Объязательно проверю и буду следовать ему в будущем

    • Нравится 1
×
×
  • Создать...