반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
그동안 이론 공부하고 빌드하고 안드로이드 마켓하고 앱스토어에 업로드하고....
그런것들 다루느라 좀 지루하지 않았나요?

그냥 화면에서 막 움직이는거를 해야 재밌는데요..

그래서 오늘은 코로나의 강력하고 현란한 Physics Engine 에 대해 보겠습니다.


화면과 같이 하늘에서 큰박스, 작은박스, 캔이 마구마구 떨어집니다.
그리고 이게 진짜 실물처럼 서로 부딪히고 튕겨나가고 뭐 그렇게 됩니다.

이걸 표현하는데 단 40줄이면 된다면 여러분 믿으시겠습니까?

이 앱은 코로나에서 제공하는 샘플 앱입니다.
코로나를 까셨다면 Corona SDK 폴더에서 SampleCode-Physics-ManyCrates 폴더로 가세요.

그리고 전체 이미지와 소스를 압축해서 파일첨부도 했습니다. 참고하시구요.

아래가 전체 소스입니다.

--
-- Abstract: ManyCrates sample project
-- Demonstrates simple body construction by generating 100 random physics objects
--
-- Version: 1.1 (revised for Alpha 2)
--
-- Sample code is MIT licensed, see http://developer.anscamobile.com/code/license
-- Copyright (C) 2010 ANSCA Inc. All Rights Reserved.

local physics = require("physics")
physics.start()

display.setStatusBar( display.HiddenStatusBar )

local bkg = display.newImage( "bkg_cor.png" )

local grass = display.newImage("grass.png")
grass.x = 160; grass.y = 430

local grass2 = display.newImage("grass2.png") -- non-physical decorative overlay
grass2.x = 160; grass2.y = 440

physics.addBody( grass, "static", { friction=0.5, bounce=0.3 } )


function newCrate()   
    rand = math.random( 100 )

    if (rand < 60) then
        j = display.newImage("crate.png");
        j.x = 60 + math.random( 160 )
        j.y = -100
        physics.addBody( j, { density=0.9, friction=0.3, bounce=0.3} )
       
    elseif (rand < 80) then
        j = display.newImage("crateB.png");
        j.x = 60 + math.random( 160 )
        j.y = -100
        physics.addBody( j, { density=1.4, friction=0.3, bounce=0.2} )
       
    else
        j = display.newImage("crateC.png");
        j.x = 60 + math.random( 160 )
        j.y = -100
        physics.addBody( j, { density=0.3, friction=0.2, bounce=0.5} )
       
    end   
end

local dropCrates = timer.performWithDelay( 500, newCrate, 100 )

아주 간단하죠?

오늘은 간단히 이 소스를 다루고 다음시간에는 본격적으로 Physics Engine 을 공부해 보도록 할께요.

local physics = require("physics")
Physics Engine을 사용하려면 위와같이 합니다.
자바의 import 와 비슷한 겁니다.

physics.start()
physics를 시작하는 함수입니다.
위에 local physics 라는 이름으로 physics engine을 불러와서 이 physics변수명을 쓰고 점을 찍고 사용할 함수명을 적은 겁니다.

display.setStatusBar( display.HiddenStatusBar )

local bkg = display.newImage( "bkg_cor.png" )

local grass = display.newImage("grass.png")
grass.x = 160; grass.y = 430

local grass2 = display.newImage("grass2.png") -- non-physical decorative overlay
grass2.x = 160; grass2.y = 440

첫번째는 아이폰의 statusbar를 없애는 겁니다.안드로이드폰에서는 필요없는 부분입니다.
코로나는 디폴트로 안드로이드에서는 Full Screen을 적용합니다.
 그 다음 이미지들을 불러오고 그 이미지들에 대한 x,y 좌표를 줍니다.

physics.addBody( grass, "static", { friction=0.5, bounce=0.3 } )
이 부분이 해당 object에 physics를 적용한 겁니다.
grass 이미지 적용했고 이 이미지는 움직이지 않을 겁니다.
그리고 마찰력과 튕기는 값을 각각 0.5, 0.3으로 주었습니다.

그 다음은 랜덤하게 이 이미지들을 불러올 로직이구요.

local dropCrates = timer.performWithDelay( 500, newCrate, 100 )

이것은 타이머를 적용해서 특정 시간 동안 특정회수로 newCrate를 불러온다는 내용입니다.

한번 실행해 보세요. 너무 간단한 코드로 너무 그럴싸한 앱이 완성됐습니다.

오늘은 그냥 간단한 설명으로 끝내는데요.
다음부터 Physics Engine에 대해 본격적으로 파헤쳐 보도록 하겠습니다.


반응형

'Corona SDK > Corona Doc' 카테고리의 다른 글

Physics Joints 예제 코드  (0) 2011.09.29
Physics Joint  (0) 2011.09.28
Physics Bodies 코딩 하기  (5) 2011.09.28
Physics Bodies  (0) 2011.09.27
Physics의 Collision Event  (0) 2011.09.27
Corona SDK Physics API  (1) 2011.09.22
config.lua 파일과 build.lua 파일...  (2) 2011.09.19
코로나 프로그래밍 기본 규칙...  (0) 2011.09.15
폰트 및 config.lua 파일에 대하여.  (10) 2011.09.14
처음으로 코딩 해 보기  (2) 2011.09.13

앱스토어에 업로드 하기

2011. 9. 20. 05:56 | Posted by 솔웅


반응형
안드로이드는 마켓에 Publish 하는 걸 많이 해봐서 이 부분은 그냥 패스 했는데요.
앱스토어에 올리는건 처음이라 왠지 정리해 두고 싶네요.

이제 Distribution 버전으로 빌드한 앱을 앱스토어에 올리려면 Provisioning Portal 에서 iTunes Connect 버튼을 클릭합니다.

그럼 아래와 같은 화면을 보시게 됩니다.


이번 첫번째 앱은 free 버전입니다.
그래서 Contracts, Tax & Banking Information  같은건 건너 뜁니다.
다음에 유료버전 올릴때 작성해야 겠네요.

오른쪽의 Manage Your Applications 를 클릭합니다.
진행하기 전에 미리 준비해야 할 것들입니다.
빌드한 앱을 zip 으로 압축합니다.
스크린 샷 파일 1~5개
57X57 아이콘 이미지와 같은 512X512 아이콘 이미지 파일 png


이제 Add New App 버튼을 클릭한 후 진행합니다.

그 이후 자세한 설명은 아래 싸이트를 참조하세요.
http://codecrue.egloos.com/1933192

앱에 대한 설명이 다 끝나면 빌드 후 압축한 앱 파일을 Load해야 합니다.
Xcode의  Aplication Loader 로 업로드 하면 된다고 하는데요.

해 보니까 간단하기도 하고... 또 헛갈리기도 하고...
한번 다 통과되면 간단하게 느껴질 거예요.
앱스토어에 올리느라 하루종일 보냈더니 머리가 좀 아프네요...

질문 있으면 올려주세요.

반응형

빌드하기 (아이폰) - 2

2011. 9. 20. 03:59 | Posted by 솔웅


반응형
아이폰 개발 프로그램은 팀당 100개의 디바이스를 등록할 수 있도록 한답니다.
디바이스를 등록하기 위해서는 Uniques Device Identification(UDID) 번호가 필요합니다.
이 번호는 Xcode와 iTunes 에서 구할 수 있습니다.

Xcode에서 구하기

- 아이폰이든 아이패드 등 디바이스를 맥 컴퓨터에 연결한다
- XCode - Window - Organizer 를 클릭한다.


- Organizer 왼쪽편에 있는 DIVICES-mobile 을 선택한다.
- Identifier 에 있는 번호를 복사해 둔다.

- Web Page의 Provisioning Portal 로 가서 Devices 를 클릭하고 Add Devices 버튼을 클릭한다.
- 디바이스 이름과 아까 복사해 둔 Identifier를 넣는다.


====> 이렇게 하면 디바이스가 등록이 됩니다.

나중에 여러분이 앱을 빌드하고 테스트하기 위해 디바이스에 install, Uninstall 할 때도 이 Organizer를 열어서 합니다.
그러면 Applications에 디바이스에 깔린 앱들이 나올테구요.
+를 눌러서 여러부들이 빌드한 앱 파일을 선택하시면 디바이스에 자동으로 인스톨 됩니다. (앱이름.app 파일. 여기서는 zip으로 압축할 필요 없습니다.)

*   App IDs 생성
Provisioning profiles를 얻기 위해서는 먼저 App ID를 생성해야 합니다.
아이폰에서 모든 애플리케이션은  App ID를 가지고 있어야 합니다.

App ID를 생성하려면 Web Provisioning Portal로 가서  App IDs를 클릭합니다.

그리고 Description을 씁니다.
App  ID로는 안드로이드에서 말하는 패키지명을 써 넣습니다.
혹시 자신이 개발하는 모든 애플리케이션을 빌드할 때 사용하시려면 끝에  .*를 넣으면 된다고 하네요.
물론 그 앞에 이름들은 다 같아야 하겠죠?

* 배포용 Provisioning Profile 만들기
지난시간에 한 키 등록 이번시간에 한 디바이스 등록 그리고 App IDs 생성 이렇게 다 완료 됐으면 그 다음 메뉴가 Provisioning 이네요.

Provisioning Profiles에는 세가지가 있습니다.
Ad Hoc, Development, Distribution 이 그건데요. 앱스토어에 올리려면 Distribution profile을 사용해야 합니다.

Distribution Provisioning Profile
iOS Provisioning Poral 웹 화면에서 왼쪽에 있는 Provisiioning을 클릭합니다.
Distribution Tab을 클릭합니다.


Destribution Method 는 App Store를 선택하시고
Profile Name에는 앱 이름을 그리고 App ID에는 아까 만든 App ID를 선택하세요.

Submit을 누르고 잠시 기다리신 후 Status가 Active 되면 Distribution Provisioning Profiles를 다운 받습니다.

다운받은 파일을 아래 폴더에 복사해 넣습니다.
/Users/(your user)/Library/MobileDevice/Provisioning Profiles/
Provisioning Profiles 폴더가 없으면 생성해서 넣습니다.

이제 Provisioning Profiles 등록은 다 됐구요.
앱을 빌드 해 보겠습니다.

* 코로나로 앱 빌드하기


프로비저닝 프로파일을 디스트리뷰션 버전으로 만들어서 세팅 해 놨으면 빌드하는 과정은 간단합니다.
해당 앱을 코로나 시뮬레이터로 불러옵니다.
File-Build-iOS 를 선택합니다.
앱 이름과 버전 그리고 Build for 를 선택하시고
Supported Device를 선택하세요.
그리고 Code Signing Identity를 아까 만들었던 배포용 프로비져닝 프로파일을 선택합니다.
Build 버튼을 누릅니다.

그러면 빌드가 됩니다.

이렇게 간단하게 빌드하기 위한 환경을 조성하려고 그 어려운 과정을 거쳐 왔네요.


완료되면 위와 같은 화면이 뜹니다.

반응형