'xna'에 해당되는 글 1건

lua와 C# 연동하기 :: 2007/12/29 15:47   by 김기환(17기)

XNA는 하나의 소스 코드로 여러 플랫폼에서 작동이 가능하게 하는 크로스 플랫폼을 지향합니다.
(현재는 Windows와 XBOX360에서만 동작이 가능합니다)
 닷넷프레임웍을 기반으로 하며 통합 개발 환경 및 개발 언어로서
visual C# Express edition을 사용해야 합니다..

이전 게임을 개발할 때에는 Visal C++ 환경에서 lua를 bind시켜 사용해 왔는데요
다음 이매진컵을 준비할 때에는 C#을 이용해서 제작해야 합니다.
이전 프로젝트에서 lua를 상당히 비중있게 사용하였고
lua의 편리함을 여러모로 경험해 봤던 터라 이번 프로젝트에서도 lua를 사용해 보려고 합니다.
XNA의 개발환경인 C#에서도 lua를 사용해 볼 수 없을까 해서
C#에 루아를 사용하는 방법을 좀 찾아보았습니다.
여러가지 방법을 찾아보았는데요..  결론적으로 나온것이 Luainerface입니다.
redwiki의 Lua 관련 페이지에서 찾았습니다..
(http://www.lua.inf.puc-rio.br/luanet/luainterface )

lua와 C#이 상당히 잘 융합되어 있습니다.
원래 lua의 사용법이 그다지 복잡하진 않았지만 더더욱 단순하게 잘 포장되어 있고
CLR환경에서 라이브러리나 객체들을 불러다 사용할수도 있습니다.


간단하게 lua에서 C#에 있는 라이브러리를 불러다 사용하는 코드를 보여드리면

require"luanet"
-- Loads the System.Windows.Forms and System.Drawing assemblies
luanet.load_assembly("System.Windows.Forms")
luanet.load_assembly("System.Drawing")
Form = luanet.import_type("System.Windows.Forms.Form")
Point = luanet.import_type("System.Drawing.Point") -- structure
-- Loading an enumeration
StartPosition = luanet.import_type("System.Windows.Forms.FormStartPosition")

Lua 내부에서는 이렇게 사용 할 수 있고


C# 에서는 lua환경에 이런식으로 접근이 가능합니다

// Start a Lua interpreter
Lua lua = new Lua();
// Create global variables "num" and
lua["num"] = 2;
lua["str"] = "a string";
// Create an empty table
lua.NewTable("tab");
// Read global variables "num" and
double num = (double)lua["num"];
string str = (string)lua["str"];


주석 부분을 빼면 코드도 몇줄 안되고 사용법도 굉장히 단순합니다.
아직은 lua에서 C#의 라이브러리를 가져다 쓸 일은 많지 않을듯 싶지만
C#을 좀 더 공부해보고 사용법을 더 연구해 볼 생각입니다.



☆ 글쓴이 소개☆
김기환(17기)님의 글입니다.

Trackback Address :: http://blog.swssm.org/trackback/117
Name
Password
Homepage
Secret