Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Вопроссы по Lua и SDL
Автор Сообщение
zaero Не на форуме
Супермодератор
******

Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
Сообщение: #1
Вопроссы по Lua и SDL
Вобщем такой вопрос:
У меня есть прога написанная на Луа под консоль. Нельзя ли как нибудь сделать такую фишку, чтоб дримшелл не ждала окончания ввода? Т.е. под окончанием ввода я имею ввиду его подтверждение клавишей ентер. Мне надо на определенную группу клавишь назначить управление...

[Изображение: Ubuntu-User.png]
Dreamshell fAn
30.01.2007 00:52
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #2
Вопроссы по Lua и SDL
Ну а в чем проблема то? При выполнении какой либо задачи, консоли пофиг на что ты жмешь в это время...
Или я что то не до конца понял?

[Изображение: barbers.png]
31.01.2007 22:38
Вебсайт Найти все сообщения Цитировать это сообщение
zaero Не на форуме
Супермодератор
******

Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
Сообщение: #3
Вопроссы по Lua и SDL
вот например тут:

Код:
while exit do

  ibuff[bc] = DS.getchar();

if ibuff[bc] == 102 then break end

elseif bc == bufsizt then
fout=assert(io.open(argv[2],"w"))
fout:write(argv[3])
io.close(fout)
print("Saved\n")
end

else bc = bc + 1 end

После того как я что-то напишу в консоле, то требуется нажатие ентер. Т.к. по другому я не могу подтвердить ввод... Например как у казано в примере то после нажатия 102 кода клавиши (вроде консоль, тильда) скрипт выполнится послетого как я подтвержу ентером. А мне надо чтоб я нажал сразу на клавишу и он выполнился..

ПС мудренно получилось... Если не совсем понял, то в аське тебя выловлю и наживую поговорим)) Верней попытаюсь обьяснить...

[Изображение: Ubuntu-User.png]
Dreamshell fAn
01.02.2007 01:46
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #4
Вопроссы по Lua и SDL
Ээм... ты хочеш назначить выполнение скрипта на отдельную клавишу?
То есть стоит се консоль стоит, ты ниче там не пишеш, нашимаеш кнопку и бах, выполился какой то скрипт?
Или я опять не понял?:))))

[Изображение: barbers.png]
01.02.2007 10:35
Вебсайт Найти все сообщения Цитировать это сообщение
zaero Не на форуме
Супермодератор
******

Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
Сообщение: #5
Вопроссы по Lua и SDL
Я хочу чтоб привыполнении скпипта, когда нажмешь клавишу "2" то писалось, например, в консоле "Вы нажали клавишу 2", но чтоб оно сразу так происходило. А то приходится после нажатия на клавишу "2" еше жать и ентер.

[Изображение: Ubuntu-User.png]
Dreamshell fAn
01.02.2007 12:05
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #6
Вопроссы по Lua и SDL
А ну теперь понял:)
Вот накидал тебе пример, попробуй.


Код:
-- Урок управления событиями клавиатуры с помощью SDL.


-- Простая функция обработки событий клавиатуры.
function handle_event(event)

if event.type == SDL.SDL_KEYDOWN then

local sym = event.key.keysym.sym

if sym == SDL.SDLK_q or sym == SDL.SDLK_ESCAPE then
print("Exit");

elseif sym == SDL.SDLK_s then
print("Pressed - s");
end

elseif event.type == SDL.SDL_QUIT then
print("SDL quit");
end
end




function App_Loop_Iteration()



event_buffer = SDL.SDL_Event_new();


while SDL.SDL_PollEvent(event_buffer) ~= 0 do
handle_event(event_buffer)
end


-- Тут будет что то делать твой скрипт.

end




local action = 1

-- Главный цикл всего скрипта
function AppRun()

while action == 1 do
App_Loop_Iteration()
end
end

AppRun()

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 02.02.2007 в 11:27, отредактировал пользователь SWAT.)
02.02.2007 11:24
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #7
Вопроссы по Lua и SDL
Кстати я это практически просто тупо взял и выдернул из исходников простой игрушки на lua и SDL, исходники которой я выкладывал уже давно в теме по исходникам:)

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 03.02.2007 в 13:37, отредактировал пользователь SWAT.)
02.02.2007 21:13
Вебсайт Найти все сообщения Цитировать это сообщение
zaero Не на форуме
Супермодератор
******

Сообщений: 1228
Зарегистрирован: 05.01.2005
Рейтинг: 0
Сказал спасибо: 4
Поблагодарили 2 раз(а) в 2 сообщ.
Сообщение: #8
Вопроссы по Lua и SDL
Цитата:которой я выкладывал уже давно в теме по исходникам
Епт! Как же я пропустил? Мля... Я себе все нервы измотал...

ПС прикольно что на сдл)))
ПСС респ)

еще не проверял. Т.к. пришел с Дня встречи выпускников. Ик ...

[Изображение: Ubuntu-User.png]
Dreamshell fAn
03.02.2007 02:43
Вебсайт Найти все сообщения Цитировать это сообщение
Genrih Не на форуме
Пользователь
**

Сообщений: 22
Зарегистрирован: 24.02.2007
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #9
Вопроссы по Lua и SDL
Люди нужна помощь! Как писать lua скрипты в dreamshelle? например я делаю так когда загрузится dreamshell нажимаю f1 потом пишу скрипт и сохраняю в ram клавишей print screen. в ram появятся ds_shot.txt как его переконвертировать чтобы он был ds_shot.lua. у меня dreamshell NG v3.0.0.500 beta. если я делаю чтото неправильно то объясните как делать правильно.заранее благодарен.
12.03.2007 09:37
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #10
Вопроссы по Lua и SDL
Я в шоке просто, прогресс!:)))
Я сделал так чтобы можно было сохранять скрин экрана в текстовом виде, а Genrih умудряется таким способом использовать экран DreamShell как текстовый редактор:))))

Скачай себе последнюю версию, она лучше твоей.

Теперь по вопросу.
Как я поял ты хочеш писать скрипты(еще что то) через консоль DS?:)
Это можно сделать.
Но есть тут небольшая проблемка, неполучится полностью очистить экран чтобы небыло лишних символов, которые бы помешали синтаксису скрипта и он вывалился в ошибку. Конвертировать то ничего ненада, этот файл(ds_shot.txt) по идее можно было так и запускать, но, лишние символы все косячат(типа перед каждой строкой D$ будет).
По идее это можно осуществить небольшим модулем, но тебе тогда точно придется новую версию качать.
Хотя это было и в lua предусмотрено, но там я заметил косячек, а вот в модулях вроде все ок.
Основная мысль в том, что нужно добраться до главного массива с настройками DreamShell, чтобы можно было работать с переменной хранящей данные экрана. Можно было бы и полностью очистить или взять все что нужно из нее самим и что самое главное потом с этим работать программно. Ну и написать немного управления данными.
Чтобы выкидывались лишние символы и сохранялось все в один файл, постепенно, даже после нескольких нажатий на какую нибудь кнопку для сохранения текста, не отрываясь от своей писанины, чтобы не сохранять каждый скрин экрана по отдельности и соединять их потом.
Скачай новую версию, я накатаю тебе такой модуль и дам исходники всем, для примера работы. Ну а дальше по желанию и до текстового редактора не далеко:)
Дальше можно было бы сделать скроллинг свой, было бы удобней работать, ну это оставлю просто идеей для кого то.


А вообще еще можно сделать просто модуль - обновление, в котором исправить косяк в lua функции DS.GetDSet(); и потом все это можно будет осуществить на lua самому. Просто если редактор будет написан как модуль, то будет больше возможностей для дальнейшей разработки, ведь не на скрипте пишеш... Хотя и так возможностей хоть *опой жуй, толку то:))) интересно когда нибудь кто то воспользуется ее возможностями хотябы на 50%.

[Изображение: barbers.png]
12.03.2007 20:53
Вебсайт Найти все сообщения Цитировать это сообщение
Genrih Не на форуме
Пользователь
**

Сообщений: 22
Зарегистрирован: 24.02.2007
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #11
Вопроссы по Lua и SDL
Пасибо SWAT буду качать новою версию!
13.03.2007 10:03
Вебсайт Найти все сообщения Цитировать это сообщение
Genrih Не на форуме
Пользователь
**

Сообщений: 22
Зарегистрирован: 24.02.2007
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #12
Вопроссы по Lua и SDL
и еще такой вопрос, SWAT у меня записан dscript в ram как его можно сохранять на vmu? и все это в dreamshelle. а еще про lua script при его запуске появятся ds_error: lua: error at management chunk! и точно также при запуске блокнота на ds 500.beta из-за чего это может быть ? Новую версию скачаю не раньше четверга.А и еще в каком 7z или gz aрхиве лежит dreamshell образ для nero eсли этот образ есть там?
13.03.2007 20:05
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #13
Вопроссы по Lua и SDL
Любой файл можно сохранить на VMU просто тупо скопировав его туда командой cp:)
Но если этот файл не специализированный VMU файл, то во всяческих КП меню ты будеш видеть типа что этот файл косяченный(хотя на самом деле он просто обычный) и ничего кроме удаления через эти меню ты не сделаеш.
Для того чтобы небыло таких недопониманий, существует команда vmcp
Набери ее в консоли без флагов и увидиш как ей пользоваться, там все просто, думаю разберешся сам.
Если не понятно будет, я тебе дам примеры как все это сделать.

Скрипты вываливающиеся в ошибку, просто небыли переделаны под более новую версию, они остались со старой, поэтому могут не запускаться.

Последняя версия DreamShell лежит в 2х видах архивов. Это 7zip и bzip2.
Качай любой, они одинаковы по содержанию, просто сначало выложил в 7zip, а потом попросили люди с dcemulation чтобы я сделал архив который можно распаковать из под linux/unix
Вот только образа там нет, тебе придется самому диск бутить, там лежат файлы для диска, в принципе сделать selfboot диск с DreamShell просто, ненужно никаких хаков и т.п. любой прогой мона сделать. В этом даже есть свой плюс, можеш накидать на диск еще то что тебе нужно:)

[Изображение: barbers.png]
14.03.2007 11:59
Вебсайт Найти все сообщения Цитировать это сообщение
alex Не на форуме
Ветеран
*****

Сообщений: 1276
Зарегистрирован: 11.07.2005
Рейтинг: 2
Сказал спасибо: 4
Поблагодарили 69 раз(а) в 53 сообщ.
Сообщение: #14
Вопроссы по Lua и SDL
2swat
видел в твоих исходниках файл notepad.c (блокнот)
он работает???

Здесь была подпись.
14.03.2007 21:09
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #15
Вопроссы по Lua и SDL
А ты смотрел что в нем?:))) У него размер 586 байт:))) это только задумка:)там практически ничего нет, просто пустая страничка GUI.
Да в GUI оболочке вообще в принципе все только задумка и работает кое что как небольшой пример, функциональности там никакой, некогда делать было это все.
Я на то и выложил исходники модуля GUI оболочки, чтобы кто то его поковырял хоть:)
Блокнот я щас пытаюсь сделать отдельным модулем:)не в GUI а под консоль.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 14.03.2007 в 21:47, отредактировал пользователь SWAT.)
14.03.2007 21:44
Вебсайт Найти все сообщения Цитировать это сообщение
alex Не на форуме
Ветеран
*****

Сообщений: 1276
Зарегистрирован: 11.07.2005
Рейтинг: 2
Сказал спасибо: 4
Поблагодарили 69 раз(а) в 53 сообщ.
Сообщение: #16
Вопроссы по Lua и SDL
Цитата:А ты смотрел что в нем?
видел
там как я понял только форма, самого блокнота там нет.
вопрос то в чем запускается-ли она в GUI МОДУЛЕ ДРИМШЕЛЛ и как её запустить (на что жать надо:))

Здесь была подпись.
14.03.2007 23:42
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #17
Вопроссы по Lua и SDL
Ну на иконку блокнота кликаеш и переходиш на эту страничку:)))
Кстати сделал альфа версию текстового редактора. Сделал конечно на скорую руку, по идее нада все нафиг переделывать, просто щас немогу тестить на дриме, только в чанке, а в чанке смог проверить только открытие файлов в нем и сохранение, это прошло успешно, правда нада бы кое что поправить с невидимыми символами:)
Всю навигацию и принцип редактирования проверить не смог:(т.к. клаву не поддерживает чанка, а на вируальной хоть и можно визуально потыкать, а в буфере ничего не будет, только на экране.
Выложил на скачку на страничке DreamShell вместе с исходниками(и настроеный make), мож кто возьмется на доработку.

[Изображение: barbers.png]
15.03.2007 01:18
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 3 Гость(ей)