Магнитовофон старый касетник

Утро факапов

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

Cтоя в душе придумал одну штуку. Присвоить номера кнопкам, вместо #PB_Any. Первый столбец от 1 до 5, второй от 10 до 15, третий от 20 и так далее. Но при этом и от человеко-понятных переменных не избавляться. Проверил — работает:
Код
Это нужно, чтобы упростить процедуру отключения всех кнопок. Не собирать их в массив, как я делал это в первой версии:

NewList ab() ;all btn
add_btn(ab(),btn_name)
ForEach ab()
   HidGad(ab(),1)
Next

А просто пройтись по номерам:

  If dead
    For i = 2 To 53
      HideGadget(i,1)
    Next
    dead = 0
  EndIf

Такой подход не прокатил, т.к. цикл обходит все цифры и спотыкается на отсутствующихз гаджетах. Пронумеровал из без группирования по десяткам. Просто подряд. Работает.

UPD Нифига не работает. Я в примере в Case использовал цифры. А должен был использовать человеческие названия переменных. Вот так: код

Печаль. Возвращаемся к массиву с кнопками.

В первой версии у меня был массив ab() (all buttons) в который я добавял кнопку в момент её создания. Сейчас я хочу создать все кнопки разом, чтоб они у меня были в одном месте, а потом «появлять» и скрывать их при необходимости. Процедура добавления кнопок выглядела так:

Procedure add_btn(List lname(), name_of_btn)
AddElement(lname())
lname() = name_of_btn
EndProcedure

Я хочу её упростить, т.к. у меня только один массив и каждый раз его указывать нет смысла. Пытаюсь вот так:

Procedure add_btn(name_of_btn)
  AddElement(all_btn())
  all_btn() = name_of_btn
EndProcedure

Пишет ошибку, мол это не функция, массив, список, карта…
add_btn_error

Пробовал добавить List all_btn() в Global — ругается на синтаксическую ошибку… Да здравствует Sublime Multi Cursor

Итого, финальный код за сегодня: тыц

Оживил все кнопки разом, но пока ни одну из них не наполнил смыслом.
Почему-то не работают процедуры Hide и Show.

;чувак ты забыл кнопку «выиграть»
;кнопка гуглить не исчезает. просто когда заканчивается список фраз пишет «что гуглить-то?»
;идея: можно дать пользователю реальную возможность гуглить через игру, чтобы он мог ввести что-то и игра выдала это в лог

Сегодня меня разбудила кошла в 6 утра. А посольку я теперь ложусь спать рано — я легко встал и сделал все дела, о которых спорил: программирование, английский.

Сенсей, продублирую вопрос в конце:
Как правильно добавить List в глобал, чтобы обращаться к нему из процедуры?

Утро факапов: 9 комментариев

  1. Global NewList …
    или в процедуре уже добавить его с помощью Shared

    чтобы не спотыкаться на несуществующих гаджетах есть IsGadget() и я тебе уже показывал как его использовать на примере

  2. А, ну и да, все что ты хочешь сделать с интерфейсом (клик по ярлыку в виртуальном компьютере) делается через канвас. Не обещаю что будет просто.

  3. Вот, сделал очень просто, чтобы тебе было максимально понятно. По-хорошему надо это все обернуть в LinkedList с соответствующей структурой и тогда можно будет даже таскать ярлычки.
    Бинарник — http://dl.dropbox.com/u/943974/canvaspc.exe
    Исходник — http://dl.dropbox.com/u/943974/canvaspc.zip
    http://dl.dropbox.com/u/943974/Screenshots/03co0z~ihd_h.png

      1. Ты недооцениваешь возможности)
        Можно серьезно сэкономить на графике, например сильно снизив качество картинок. Можно также часть графики (или всю) генерировать процедурно.
        Вот комбинированный вариант на 93Кб (иконки растр, ноут процедурный), хоть и примитивно (лень было более подробно делать ноут), но я думаю принцип ты понял. Рисовать это весело!
        Бинарник — http://dl.dropbox.com/u/943974/canvaspcproc.exe

        Исходники — http://dl.dropbox.com/u/943974/canvaspc2.zip
        http://dl.dropbox.com/u/943974/Screenshots/nvby067_ym3g.png

  4. Уведомление: Полиног! | at02.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *