DevMaster.net 피드를 통해서 알게 된 엔진. 멀티 플랫폼 기반에 BSD 라이센스 적용.
IDE, eC(객체지향 C 정도 된다고 함) eC 는 스크립트가 아니라 네이티브라고 함. IDE, SDK 를 eC 로 개발했고 c 와 링크도 된다고 함. eC sharp 라고 하는것도 언뜻 본것 같긴한데 일단 간략한 소스를 보니 너무 씸플해 보임.
소스를 구할 수 있는곳은 대부분 오픈소스 프로젝트를 호스팅 하는 곳에서는 다 구할 수 있는듯 너무 많음;
국민 예제..
gui 코드도 살짝 살펴보면..
일단은 여기까지.. 3월 21일 추가 -----
음 간단한 내용을 컴파일해보고 ide 를 돌려본 결과.. 생각만큼의 퀄리티가 나오지 않더라 하는 깨닳음을 얻음. 그리고 ec 포멧을 컴파일 하는 중간 파일이 c 파일이 나와서 그것이 컴파일 되는것으로 보임.
IDE, eC(객체지향 C 정도 된다고 함) eC 는 스크립트가 아니라 네이티브라고 함. IDE, SDK 를 eC 로 개발했고 c 와 링크도 된다고 함. eC sharp 라고 하는것도 언뜻 본것 같긴한데 일단 간략한 소스를 보니 너무 씸플해 보임.
소스를 구할 수 있는곳은 대부분 오픈소스 프로젝트를 호스팅 하는 곳에서는 다 구할 수 있는듯 너무 많음;
국민 예제..
class HelloApp : Application { void Main() { PrintLn("Hello, World!!"); } }
gui 코드도 살짝 살펴보면..
// ecas -- By Joey Adams import "ecere" import "expression" class Form1 : Window { text = "Simple Parser"; background = activeBorder; borderStyle = sizable; hasMaximize = true; hasMinimize = true; hasClose = true; size = { 576, 432 }; anchor = { horz = -3, vert = -4 }; bool OnCreate(void) { return true; } bool OnKeyHit(Key key, unichar ch) { if (ch=='\r') DoParse(true); return true; } void DoParse(bool simplify) { EditBoxStream s; CASDictionary dict {}; Expression expr {}; Expression exprCopy; outputTree.Clear(); s = {editBox=outputTree}; if (expr.FromString(inputString.contents, dict)) { statusLabel.SetText("Parse successful"); if (simplify) expr.Simplify(dict); } else statusLabel.SetText("Invalid expression"); expr.DebugPrint(s, dict, 0, null); s.Printf("\nCopy:\n"); exprCopy = expr.Copy(null); delete expr; exprCopy.DebugPrint(s, dict, 0, null); delete s; delete dict; delete exprCopy; } Button parseButton { this, text = "Parse", size = { 75, 30 }, position = { 10, 40 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { DoParse(false); return true; } }; Button simplifyButton { this, text = "Simplify", size = { 75, 30 }, position = { 90, 40 }; bool NotifyClicked(Button button, int x, int y, Modifiers mods) { DoParse(true); return true; } }; bool TypeButton(Button button, int x, int y, Modifiers mods) { inputString.Activate(); inputString.Deselect(); inputString.AddS(button.text); inputString.Update(null); } Label statusLabel { this, size = { 274, 21 }, position = { 250, 45 } }; Button ebutton { this, text = constant_string[e], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 170, 45 } }; Button ibutton { this, text = constant_string[i], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 195, 45 } }; Button pibutton { this, text = constant_string[pi], NotifyClicked = TypeButton, size = { 20, 20 }, position = { 220, 45 } }; EditBox outputTree { this, font = { "Courier New", 10 }, size = { 286, 219 }, position = { 10, 80 }, hasHorzScroll = true, true, readOnly = true, true }; EditBox inputString { this, text = "inputString", size = { 350, 19 }, position = { 10, 10 } }; void OnResize(int width, int height) { inputString.size.w = clientSize.w-20; //parseButton.position.x = (clientSize.w-parseButton.size.w)/2; statusLabel.size.w = clientSize.w-statusLabel.position.x-10; outputTree.size.w = clientSize.w-20; outputTree.size.h = clientSize.h-outputTree.position.y-10; } } Form1 form1 {};
일단은 여기까지.. 3월 21일 추가 -----
음 간단한 내용을 컴파일해보고 ide 를 돌려본 결과.. 생각만큼의 퀄리티가 나오지 않더라 하는 깨닳음을 얻음. 그리고 ec 포멧을 컴파일 하는 중간 파일이 c 파일이 나와서 그것이 컴파일 되는것으로 보임.
'게임 프로그래밍 > [엔진] 오픈소스' 카테고리의 다른 글
[irrlicht-1.7] 요약... (0) | 2012.03.13 |
---|