급하게 배포 하느라.... jar 파일로 배포하게 되었습니다. 좀 있다 exe로도 실행 가능하도록 만들어보겠습니다. (지금 시각이 11시 57분이니 오늘 내로는 무리네요.) jar 파일이다보니 java가 설치되어 있어야만 가능하겠네요.... (1) ImageCollector 실행 방법 ImageCollector.jar 파일이 있는 위치로 커맨드라인에서 이동하여 java -jar ImageCollector.jar를 입력하고 엔터를 누릅니다. ImageCollector가 실행됩니다. (2) 사용방법 디씨인사이드 야옹이 갤러리의 사진을 다운로드하는 예제입니다. (다른 갤러리에서도 저런 방식으로 입력하여 이미지들을 다운로드하시면 됩니다. )
AnscaMobile 홈페이지에 검색하면 나오는 인기있는 글에도 이미지를 드래그하는 것에 대해서 다루고 있습니다. 하지만 제가 그 소스로 만들었을 때 발견한 문제점이 있는데, 바로 드래그를 너무 빨리 해서 드래그를 하다가 터치 이벤트의 위치가 이미지 위가 아닐 경우에는 포커스를 놓치는 문제점이 발생됩니다. 그래서 어떻게 해야할지 방법을 찾다가 샘플 소스에서 그 답을 찾았습니다. 소스 상태가 상당히 쾌적해서 그대로 복사 붙여넣기 해도 됩니다. 저 같은 경우에는 양 그림(Image/Object/sheep.png)을 이용하였습니다. 저작권 문제가 될까봐 소스를 그대로 올릴테니 영어로 된 주석을 잘 보시면 될 것 같습니다. 소스가 같이 있으니 영어 주석을 읽는데 어려움은 별로 없을겁니다. module( ...,..
제목 그대로.... 랭킹 데이터를 받아와서 그것을 split 하는 작업을 하고 있는데 발견한 문제입니다. 애초에 컴파일할 때 에러를 뱉어주는데, 육안으로는 절대 찾을 수가 없는 버그입니다. (이 사실을 알고 있지 않다면) 에러 메세지도 이상합니다. main.lua:60: '' expected near 'in' in 근처에 문제가 있다고 합니다. 왜 이런 에러 메세지를 뿜어내는지도 잘 모르겠네요. 눈에 보이는 문법상으로는 문제가 없거든요. 아래는 문제의 코드 입니다. for in pairs 내부에 for in pairs가 존재하고 있습니다. data = string.gsub(data, " ", "\n") local t = string.split( data, "\n") local count = 1 for i..
Runtime Event로 자주 사용하는 "touch" 이벤트와 "enterFrame" 이벤트를 add, remove하는 것에서 문제를 발견하였습니다. 먼저 소스를 첨부하겠습니다. local enterFrame1, enterFrame2 local touch1, touch2 local release1, release2 local release1 = function() print ("release1") --Not OK --Runtime:removeEventListener( "touch", touch1 ) end local release2 = function() print ("release2") --Not OK --Runtime:removeEventListener( "touch", touch2 ) end lo..
어떤 게임이던지 훌륭한 이펙트는 게임의 재미요소 중 하나로 작용합니다. (그렇다고 위의 이펙트가 멋지고 훌륭한 이펙트라는 것은 아닙니다. 제가 처음으로 친구와 게임 만들면서 손에 쥐게 된 이펙트니까요.) 이런 이펙트들은 파티클을 파티클 엔진을 통해서 만들어낼 수도 있지만 역시 2D 게임에서 가장 많이 사용하는 방법은 위의 사진처럼 여러 장의 사진을 빠르게 교체하여 보여주는 방식입니다. 이것을 스프라이트 애니메이션(Sprite Animation)이라고 합니다. Corona SDK에서도 마찬가지로 스프라이트 애니메이션을 지원하기 위한 API들이 있습니다. Sample Project들을 보면 알 수 있는데요. (Horse Animation, Jungle Scene) 여기서 나오는 애니메이션들은 모두다 마찬가지..
Corona에는 Easing이라는 편리한 수치 반환 객체가 있었네요. 저는 잘 몰랐어서.... cocos2d에는 있는 action이 없다고 징징댔는데 이 easing이라는걸 오늘 제대로 써보면서 그런 생각이 팍 죽었습니다. 물론 cocos2d의 action 체제를 절대 무시하는 것은 아닙니다. cocos2d::action은 여러가지 액션들을 충분한 상속관계를 통해 유연하게 구현해놓았습니다. 다만 Corona에도 그런 것을 편리하게 구현할 수 있게 도와주는 API가 있다는 것이지요. Easing에 대한 내용은 시뮬레이터의 easing 샘플을 직접 보시는 것이 더 효과적일 것입니다. 이 글에서는 easing과 transition을 이용하여 어떻게 팽창과 수축을 반복하는 로고를 구현하는지에 대한 언급만을 하도..
http://developer.anscamobile.com/content/application-programming-guide-graphics-and-drawing#Removing_Objects_Properly Corona SDK Docs >> Images, Shapes, and Text >> Working with Display Objects and the Stage 문서의 Removing Objects Properly ( 객체들을 적절히 지우기 ) 부분을 번역한 내용입니다. 기기의 자원은 한정되어 있기 때문에 display 객체들을 오래 사용하지 않을 때는 지워주는 것이 중요합니다. 메모리 소모(특히 이미지들)를 줄임으로써 전체 시스템의 성능향상과 불필요한 drawing을 없앨 수 있습니다. 당신이 ..
게임을 만들다 보면 객체를 초기화 해야할 경우도 있고 다시 로드해야할 경우도 있습니다. Lua에선 이걸 module로 해서 처리하죠. require을 하면 모듈의 내용이 루아 캐시에 저장됩니다. 따라서 그냥 로드 하면 안되구요. 캐시에 로드했던걸 지워준 다음 다시 로드 해야 합니다. main.lua local player = require("player") player:printHp() player:damaged() player:printHp() package.loaded.player = nil player = require("player") player:printHp() player:damaged() player:printHp() player.lua module(..., package.seeall) l..
코로나로 하루 하루 프로그래밍하면서 어떤 삽질을 했는지, 어떻게 해결했는데 쓰려고 합니다. 클린업이라는 안드로이드로 만들어져 있는 게임을 코로나로 다시 만드는 작업을 합니다. 1. 버튼 만들기 버튼이 눌러졌을 때의 이미지, 평소의 이미지 두개를 이용하여 버튼을 누르는 효과를 주도록 했습니다. 코로나 자체 예제 (Interface - ButtonEvents)를 참고하였습니다. 이 예제에서 ui.lua를 만들어서 쓰고 있는데, 저는 이 ui.lua의 내용을 확실하게 이해하고 제게 필요한 부분만 빼내어 새롭게 구성하였습니다. 이것을 하면서 느낀 점은.... 그냥 여기서 예제로 나와 있는 것들 그대로 갖다 쓰면 속편하다 입니다 -_- 제 성격상 이게 왜 이렇게 돌아가는지 모르면 쓰기 껄끄러워서 파헤치느라 고생했..
- Total
- Today
- Yesterday