Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 16.09.2007, 22:00   #1
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос C++ to Макс

Есть такой вот кусок кода на С++ по созданию луа-библиотеки из набора функций.
luaL_Reg _gamelib[] = {
		{"new", le_game_new}, 
	  {"quit", le_game_quit}, 
		{"trigger", le_game_trigger}, 
		{"quest", le_game_quest}, 
		{"setmod", le_game_setmod}, 
		{"pause", le_game_pause},
		{"addwall", le_game_addwall},
		{"speed", le_game_speed},
		{NULL, NULL}};
Не подскажете ли, как перевести его на Макс? Все мои попытки оказались тщетными... ):
Заранее спасибо.
(Offline)
 
Ответить с цитированием
Старый 16.09.2007, 22:07   #2
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: C++ to Макс

не знаю, но может так...
Local _gamelib:luaL_Reg[] = [["new", le_game_new], ... ]
(Offline)
 
Ответить с цитированием
Старый 16.09.2007, 22:11   #3
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: C++ to Макс

Забыл уточнить. Сам тип описан как:
extern
  type lua_Reg
    field name:byte ptr                                         ' no ~0 expected
    field func:int(ls:byte ptr)
  end type
end extern
dimanche13
Это было первое, что я попробовал. У меня не заработало...

P.S. Харе уже отвечать типа "Может так, но я сам не знаю". Меньше флейма - больше инфы! (:
(Offline)
 
Ответить с цитированием
Старый 16.09.2007, 22:35   #4
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: C++ to Макс

Сообщение от elmortem
P.S. Харе уже отвечать типа "Может так, но я сам не знаю". Меньше флейма - больше инфы! (:
Харе орать-то) Что мне в голову пришло, я и написал. Проверить-то негде

function luaL_register (lua_state:byte ptr, libname$z, l:lua_Reg ptr)
(Offline)
 
Ответить с цитированием
Старый 16.09.2007, 22:40   #5
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: C++ to Макс

Да я ж не ору, прошу. (:
А-то поиском потом столько хрени найти можно... (:

А функция, которую ты привёл как раз и принимает уже готовый массив. Но его сначала нужно создать и заполнить. Но у меня прога валится на доступе к нулевому элементу массива и показыват, что все элементы массива - нули. чзх? ):
(Offline)
 
Ответить с цитированием
Старый 17.09.2007, 02:15   #6
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: C++ to Макс

Плюнул на эту неблагодарную затею и портировал функцию регистрации своей луа-библиотеки на Макс. Так что скрипты пашут теперь в полную силу...
Типа тема закрыта. (:
(Offline)
 
Ответить с цитированием
Старый 17.09.2007, 12:00   #7
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: C++ to Макс

Погоди плевать-то))) смотри:
Type TA
	Field name:String
	Field num:Int
End Type

Function Create:TA(name:String , num:Int)
	Local T:TA = New TA
	T.name = name
	T.num = num
	Return T
End Function	

Local array:TA[] = [ Create("A" , 1) , Create("B" , 2)]
во как я исхитрился.
(Offline)
 
Ответить с цитированием
Старый 17.09.2007, 12:34   #8
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: C++ to Макс

Там фишка в екстерне. Т.е. для екстерновых типов нужно писать свои new и delete. На С++. (:
А потом ещё лезут всякие косяки с памятью.
Мне стало проще написать свой класс CLuaReg, пихать его в TList, а затем отдавать в свою функцию регистрации луа-библиотеки, полностью портированную на Макс из исходников Lua.
Так что пофиг, всё работает. (:
(Offline)
 
Ответить с цитированием
Старый 17.09.2007, 12:38   #9
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: C++ to Макс


Ну ты хитёр))) ты уже наверное половину ЛУА функций переделал...
стало быть тема закрыта. Когда будет новая версия?
(Offline)
 
Ответить с цитированием
Старый 18.09.2007, 23:34   #10
elmortem
Нуждающийся
 
Регистрация: 20.08.2007
Сообщений: 93
Написано 0 полезных сообщений
(для 0 пользователей)
Re: C++ to Макс

Да нет, пока вроде только одну функцию "экстернул" и одну портировал. (:
Луа вообще мне идеологически не нравится. Этот его долбаный стек - бррр... Быстро, конечно, но чертовски неудобно. ):

Завтра релиз моей шароварки, после релиза будет много работы. Так что с новой версий х3 когда теперь...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3Д Макс mumo1991 3D Моделирование 5 04.03.2010 08:32
макс скелет.. требуется помощ falcon 3D Моделирование 8 19.08.2008 12:13
Звучащий макс AndruXa 3D Моделирование 4 08.05.2008 20:21
Макс не работает hunt 3D Моделирование 21 21.08.2006 12:24
Глючащий макс Akima 3D Моделирование 1 18.06.2006 11:22


Часовой пояс GMT +4, время: 11:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com