XCODE2011.04.09 11:09

기사 요약 및 의견 :

 

맥용 앱스토어 개발에도 염두해 두고 나오는 새버전 같습니다.
개발환경 또한 점점 좋아지고 있네요.

가장 큰 특징을 정리해 보자면

- 싱글윈도우, Interface Builder inside
개발툴이 xCode 와 Interface Builder로 나뉜데다가 각각의 윈도우가 중구난방으로
화면을 차지 했는데 마이크로소프트의 비주얼 스튜디오처럼 한 위도우에 화면을 분할해서
보기 깔금하게 정리되고, xCode 와 Interface Builder가 통합되었습니다. 
또한 화면디자인시 픽셀단위로 하기 쉽도록 그리드(모눈종이)도
지원을 해서 편리해 졌네요. 

- LLVM Compiler 2.0, new Debugger
컴파일러와 디버거의 기능 및 속도의 향상.

- Fix it, Version Editor
코딩시 문법적인 오류뿐만 아니라 실시간으로 논리적인 오류도 잡아주는 Fix it,
버전별로 2개의 소스를 손쉽게 관리할 수 있는 Version Editor.
 
- Assistant
클래스상속 관계나 인터페이스 등을 다이어그램으로 보기쉽고 편하게 관리할 수 있습니다.

자세한 내용은 아래의 사이트에서 참고 하세요.

출처(URL) : 
http://developer.apple.com/technologies/tools/whats-new.html


출처 : http://blog.naver.com/PostView.nhn?blogId=mirnae&logNo=100115655741
Posted by 오늘마감
XCODE2011.04.09 11:09

출처 : http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&keywords=%C0%D0%C0%BB%B0%C5%B8%AE%3B%B5%F0%BA%A7%B7%CE%C6%DB+%C7%C3%B7%AF%BD%BA&page=1&wr_id=36298

새로운 개발 환경 Xcode 4 집중리뷰 #2

지난 호에 이어 Xcode 4를 활용해 여러 가지 앱을 만들어 보자. 외형적으로 보기에 Xcode 4로 만든 앱에 특별히 다른 점은 없다. 하지만 개발자의 입장에서 보면 좀 더 편리한 환경에서 쾌적하게 개발할 수 있다는 장점이 있다.

안경훈 linuxgood@gmail.com | 리눅스와 맥OS에 관심이 많으며, 모바일 디바이스에서 동작되는 사용자 중심의 프로그램을 개발하는 것에 흥미를 가지고 있다. 현재 삼성SDS에서 근무 중이다.

지난 호 내용을 기반으로 이번에는 Xcode 4를 사용해 실제로 몇 가지 애플리케이션 기능들을 작성해 보자. 참고로 이 글을 쓰는 동안 Xcode 4 디벨로퍼 프리뷰(Developer Preview) 4 버전이 나왔다(2010.10.14).

이번 호에서 Xcode 4를 사용해 작성할 기능들은 다음과 같다.

- URL을 입력해 이미지 가져오기
- switch 버튼의 활용(On/Off 버튼)
- mp3 플레이하기(프레임워크의 활용)


<화면 1> Xcode 3 초기 화면


<화면 2> Xcode 4 초기 화면


<화면 3> Template 선택 화면(Ver 4)


<화면 4> Template 선택 화면(Ver 3)

Xcode 4 버전은 시작 시 나타나는 초기 화면이 <화면 1>과 같이 달라졌다. 항목이 좀 달라진 모습을 볼 수 있다.

‘Create a new Xcode project’를 선택해 새로운 프로젝트를 시작한다. 새로운 프로젝트 템플릿을 선택하는 화면은 별로 달라진 것이 없다(버전 4는 배경화면이 생겼다는 정도일 뿐).


<화면 5> 애플리케이션 정보 입력


<화면 6> 애플리케이션 정보 저장

‘View-based Application’ 템플릿을 선택하면서부터 버전 4의 달라진 점을 볼 수 있다. 버전 3에서는 바로 프로젝트를 저장하는 화면이 보였지만 버전 4에서는 Product Name이나 Company Identifier 등 버전 3에서 plist를 열어서 작성해야 했던 일부 항목들을 프로젝트를 시작하기 전에 입력할 수 있다.

또한 Xcode에서 사용되는 소스 컨트롤을 위한 형상관리 툴로 git를 선택할 수 있다(https://git.wiki.kernel.org/index.php/ GitDocumentation 참조). 버전 3에서는 Subversion을 디폴트로 사용했었다(버전 4에서도 물론 사용 가능하다). 체크박스를 선택하면 로컬 저장소(repository)를 만들 수 있는 선택 화면이 나온다.


<화면 7> 형상관리 툴의 선택

최초 화면은 지난 호에서 설명한 것처럼 버전 3과는 많이 다른 모습이다. 더욱 자세한 설명은 애플이 배포하는 문서를 참조하자(http://adcdownload.apple.com/Developer_Tools/xcode_ 4_developer_preview_4/xcode4_transitionguide.pdf, Apple developer 프로그램에 가입해서 로그인을 해야 볼 수 있는 문서다).


<화면 8> Xcode 에디터 초기 화면

일반적으로 개발 시에는 특정 기능만을 자주 사용하게 된다. 버전 4의 화면 여러 곳에서 사용자가 특정 기능을 세밀하게 설정할 수 있는 버튼들을 볼 수 있다. 사용자 설정이 가능한 기능들이 너무 많아서 처음 Xcode로 개발을 시작하는 개발자들은 어려울 수도 있을 것이다. 하지만 기능들을 살펴보면 유용한 것들이 매우 많다.

<화면 9>는 처음 프로젝트를 시작할 때 형상관리 툴인 git를 선택했기 때문에 실시간으로 변경된 코드를 비교할 수 있도록 보여주는 화면이다.


<화면 9> 소스코드 비교 화면

이제 앞에서 언급한 예제 프로그램들을 하나씩 만들어 보자.

URL 입력해 이미지 가져오기 
먼저 다음과 같은 형태로 뷰를 구성한다. 버전 4의 대표적인 특징인 Xcode 에디터 안으로 들어온 인터페이스 빌더를 사용해 만들 수 있다. 만약 이전 버전처럼 IB를 별도로 사용하려면 소스 트리에서 xib 파일의 오른쪽을 클릭해 ‘Open with External Editor’ 항목을 선택하면 된다.


<화면 10> 외부 IB 선택해 열기


<화면 11> 뷰 설정 화면

<리스트 1>과 같은 코드를 작성한다.

<리스트 1> maso11ViewController.h

<maso11ViewController.h>

#import <UIKit/UIKit.h>

@interface maso11ViewController : UIViewController {
   UIImageView* imgView;
   UIWebView* webView;
   UIButton* ViewURLimage;
   UISwitch* uswitch;
   UISlider* slider;
}

@property(nonatomic,retain)IBOutlet UIImageView* imgView;
@property(nonatomic,retain)IBOutlet UIView* webView;
@property(nonatomic,retain)IBOutlet UIButton* ViewURLimage;
@property(nonatomic,retain)IBOutlet UISwitch* uswitch;
@property(nonatomic,retain)IBOutlet UISlider* slider;
-(IBAction)showkImage:(id)sender;

@end

<connections> 버튼을 선택해 헤더 파일에서 선언한 각각의 Outlet 항목들과 showkImage라는 Action 함수를 연결한다. 연결 방법은 각각의 항목을 뷰 화면의 오브젝트들로 드래그하면 된다. 연결할 때 ‘File’s Owner’라는 아이콘을 먼저 선택해 둬야 <화면 12>와 같은 연결화면이 나온다.


<화면 12> 파일 Owner 화면


<화면 13> 각종 아이템 설정 및 연결

Action 함수를 연결할 때는 함수에 적당한 이벤트도 작성해 줘야 한다. 해당 함수(showkImage)를 ‘드래그 앤 드롭’하면 <화면 14>와 같은 이벤트 선택창이 나온다.


<화면 14> 이벤트 지정 화면

다음으로 <리스트 1>의 maso11ViewController.m에 <리스트 2>와 같이 코딩한다. 

<리스트 2> maso11ViewController.m

#import "maso11ViewController.h"

@implementation maso11ViewController

@synthesize imgView;
@synthesize ViewURLimage;
@synthesize webView;
@synthesize uswitch;
@synthesize slider;

-(IBAction)showkImage:(id)sender {
NSURL *aTempURL = [NSURL URLWithString: @"http://cafefiles.naver.net/20100910_53/16914752_1284122573453_
IncFx9_png/16914752_logoPixelImage_214253_1.png"];
NSData *aTempData = [NSData dataWithContentsOfURL:aTempURL];
imgView.image = [UIImage imageWithData:aTempData];
}
...

실행해 <View URL Image> 버튼을 누르면 <화면 15>와 같은 화면을 볼 수 있다.


<화면 15> URL 이미지 보여주기

switch 버튼의 활용(On/Off 버튼) 
<화면 15>에서 switch 버튼을 On/Off 한 후에 버튼을 터치할 때마다 그림이 보이거나 보이지 않도록 하려고 할 때 <리스트 3>과 같은 코드를 사용한다.

<리스트 3> Switch event 설정

-(IBAction)tip03Action:(id)sender{   
   if (uswitch.on == TRUE)
   {
      imgView.hidden = YES
   }
   else
   {
       imgView.hidden = NO
   }
}

 

<리스트 3>을 실행하면 <화면 16>과 같은 결과를 볼 수 있다.


<화면 16> Switch Objects 실행 결과

MP3 플레이하기(프레임워크의 활용)
이번에는 Xcode 4에서 프레임워크를 불러와서 활용하는 앱을 작성해 보자. 이 예제를 위해 MP3 파일을 재생하는 코드를 작성해 보자. MP3 파일을 플레이하기 위해서는 AVFoundation. framework를 추가해야 한다. Xcode SDK에는 여러 가지 기능을 하는 라이브러리 형태의 코드가 있는데, 이것을 프레임워크라고 한다. 버전 3에서는 <화면 17>과 같이 프레임워크를 추가할 수 있다.


<화면 17> 프레임워크의 선택

버전 3과 비교해서 달라진 점은 프레임워크를 파인더에서 드래그 앤 드롭으로 가져온다는 점이다. 이를 위해 다음과 같이 약간의 팁이 필요하다. 먼저 프레임워크 디렉토리에 있는 어떤 항목을 선택한 후 오른 쪽 클릭을 선택해 ‘Show in Finder’를 선택한다. 그 후 <화면 18>과 같이 파인더 창에서 폴더 자체를 Xcode 에디터의 트리 화면으로 드래그해 추가한다.


<화면 18> 프레임워크 선택 화면


<화면19> Finder 선택 화면

<화면 20>과 같이 프레임워크를 해당 프로젝트로 복사할 것인지 묻는 화면이 나온다.


<화면 20> MP3 파일 추가 후 화면

추가된 후에는 <화면 21>과 같은 화면을 볼 수 있다. 이제 MP3 파일을 플레이하기 위한 프레임워크를 사용할 준비가 된 것이다.


<화면 21> 프레임워크 선택 화면

이 예제를 위해서는 MP3 파일이 하나 있어야 한다. MP3 파일도 프레임워크를 추가할 때처럼 파인더를 통해 프로젝트에 넣으면 된다. da.mp3라는 이름으로 추가했다.

뷰는 이전에 사용한 것을 그대로 사용하고 버튼에 이벤트를 재설정하겠다. 프레임워크를 추가한 후에는 다음과 같이 헤더 파일을 프로젝트에 include하는 코드를 작성해야 한다.

#import <AVFoundation/AVAudioPlayer.h>

이후에 실제로 구현될 Action 함수에 <리스트 4>를 추가한다.

버튼을 터치하는 순간 da.mp3가 실행될 것이다.


<화면 22> 에디터에서 해당항목을 보여준다.

 

<리스트 4> mp3 Play

NSString *path = [[NSBundle mainBundle] pathForResource: @"da" ofType:@"mp3"];

AVAudioPlayer* fAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];

[fAudio play];

Xcode 4의 리소스 확인
버전 4에서는 <화면 22>처럼 멀티미디어 리소스가 포함됐을 경우 즉시 확인할 수 있도록 간단한 정보를 보여준다. <화면 22>는 MP3 파일에 대한 정보를 보여주는 화면인데, 실제로 <play> 버튼을 누르면 음악이 연주된다.

Xcode 4의 Organizer Devices 항목
Organizer는 아이폰 사용 중에 발생한 여러 가지 유용한 정보나 사용자 인증서 파일 등의 정보를 보여주는 프로그램이다. 이 프로그램에서 개발 시 필요한 여러 가지 정보들을 살펴볼 수 있는데, <화면 22>는 아이폰에 올려진 프로그램이 실행되면서 남긴 로그를 보여주는 화면이다.

여기서 개발자는 프로그램이 이유 없이 죽는 이유나 해당 파일의 실행 위치 정보, 사용했던 라이브러리, 아이폰 OS 버전, CPU에 따른 코드타입, 실행된 프로세스의 개수 등 아이폰에서 일어났던 모든 사항들을 들여다 볼 수 있다. 심지어 메모리가 부족해 실행되지 못했던 상황까지도 체크할 수 있다. 그리고 아이폰에서 사용 중인 애플리케이션을 아이콘과 리스트 타입으로 볼 수 있으며, 삽입(Add)과 삭제(Remove)도 가능하다.

Repositories 항목
여기서는 형상 관리 도구인 git를 사용해서 개발 중인 파일의 변경 정보 등을 보여줄 수 있다.


<화면 23> Device의 각종 정보 취득 화면


<화면 24> 사용자 정보 입력창


<화면 25> 버전 컨트롤 화면

Xcode 4에서는 디폴트 형상관리 툴로 git를 사용한다. <화면 24>에서 보는 것처럼 사용자 정보와 개발 중에 변경했던 소스의 정보를 보여준다. 사용자별로 설정이 가능하고 로그인 후 사용이 가능하다. 사용자 이름을 선택하면 사용자의 기본 정보를 변경할 수 있는 화면이 나온다.

Projects 항목
프로젝트 자체에 대한 다양한 이력정보를 보여주는 항목이다. 실행될 때 디렉토리 위치나 현재 실행 중인지 또는 최종 실행 시간 정보 등을 보여줄 수 있다. 또한 해당 애플리케이션이 실행되면서 만들어낸 각종 메타데이터 등도 확인할 수 있다.


<화면 26> 사용자 정보 입력창

Archives 항목
애플 앱스토어에 올려진 애플리케이션의 유효성 여부를 판별하는 항목이다. 권한이 없는 앱을 실행하려고 하면 <화면 27>과 같은 경고 메시지가 나온다. 하단부에 실행 가능한 아이콘들이 자리잡고 있는 것을 볼 수 있다.


<화면 27> 실행 오류 발생 시 화면

Documentation 항목
각종 라이브러리 문서들을 버전별로 찾아볼 수 있도록 인터페이스를 제공해 준다.


<화면 28> 버전별 문서 파일


<화면 29> 실시간 에러 메시지

이번 호에서는 Xcode 4 버전을 실제로 사용하는 방법에 대해 알아봤다. code sense가 완벽하지 않은 점이나 프레임워크 등을 추가할 때 불편한 점, <화면 29>와 같은 실행 오류가 나는 경우 등 Xcode 4 버전은 아직까지 개선돼야 할 부분들이 몇 가지 보인다.



출처 : http://blog.naver.com/PostView.nhn?blogId=damanegi_kr&logNo=116338707
Posted by 오늘마감

● Xcode 4

2011년 2월 4일 GM으로 릴리즈된 애플 데브센터에 개발자 등록이 되어있어야 다운받을 수 있는 개발툴 및 가이드입니다. 첨부파일로 올려놨습니다. 토런트파일이며 파일크기 3.69GB 입니다.

 

 

Xcode is the complete toolset for building Mac OS X and iOS applications - and with Xcode 4, the tools have been redesigned to be faster, easier to use, and more helpful than ever before. The Xcode IDE understands your project’s every detail, identifies mistakes in both syntax and logic, and will even fix your code for you. Quite simply, Xcode 4 will help you write better code.

Xcode 4 has a brand new user interface, built upon proven technologies that Apple itself uses to build Mac OS X and iOS, and that have produced over a quarter million Mac OS X and iOS apps.

Single Window

As an experienced Xcode user, the first thing you will notice about Xcode 4 is that the many windows used to perform the development tasks you work on every day have been consolidated into a single window. The Xcode 4 work area has several unique UI elements that make it easy to work on many different tasks, even multiple projects, without cluttering your work area. Your editor is always front and center.

Navigators

On the left side is a collection of navigators, including the list of files in your project, sorted symbols, a central search interface, issue tracking, debugging data with compressible stack traces, active and inactive breakpoints, and a persistent collection of logs. The unified navigator UI provides live filtering of content and search results, so you can focus on your current task.

Jump Bar

At the top of every editor pane is a path bar showing the relative location of your current file. Click any location in the path to immediately jump to any other file at that level. This is the Jump Bar, and it is so efficient you may wish to dedicate your entire desktop to source code, quickly jumping from file to file.

Interface Builder - Inside

In Xcode 4, Interface Builder has been completely integrated within the Xcode IDE - there is no separate application.

Selecting an interface file (.nib/.xib) in your project will open the IB editor within Xcode. Opening the right-hand Utility area will show the full complement of interface inspectors, as well as the library of controls and UI objects. Drag a control from the library, and drop onto the canvas, to layout your Mac OS X or iOS application.

The best part: you can drag connections directly from the UI design to the source code. Xcode 4’s new split editor layout makes it easy to wire up your actions and outlets simply by dragging a connection to existing code - one gesture and you’re done. Don’t yet have the code ready to connect? Xcode will create a new outlet or action for you, just drag to an empty space in your source file and Xcode will generate the code.

Assistant

Whether writing code, or designing an interface, no change happens in isolation. Even the smallest edit can have a cascading effect throughout your project. You often need to see more than just your current file; you need to see related documents as well.

With the new Xcode Assistant, the two-pane editor layout in Xcode 4 becomes dramatically more powerful. When you turn on Assistant, the IDE will anticipate which other files you need to see, as you work. Editing a new derived class? The Assistant will show you the code for the class you are inheriting. Writing new implementation code? The Assistant will automatically show you the corresponding header. When designing an interface, the Assistant will show you the appropriate controller, making drag-and-drop code connections extremely simple. Data model designing will bring up the classes that back your models - all automatically.

LLVM Compiler 2.0

The LLVM compiler is the next-generation, open source compiler technology, being used in high-performance projects around the world, and is led by engineers on Apple’s compiler team. With LLVM compiler 2.0, the full compiler stack - from the front end parser, to the back end code optimizer - completely supports C, Objective-C, and C++.

LLVM is fast. It compiles code twice as quickly as GCC, yet produces final applications that also run faster. This is because the compiler was built from the ground up as a set of highly optimized libraries, easy to extend, easy to optimize, and designed for today’s modern chip architectures.

With Xcode 4, the compiler is more than a command-line tool. LLVM is fully integrated into the IDE itself. Syntax highlighting, code completion, and every other index-driven feature is handled by the LLVM parser. If the compiler knows about a symbol, so does the Xcode IDE. C, C++, and Objective-C are all accurately understood at editing time, exactly as they are when building.

Fix-it

By utilizing the embedded LLVM engine, Xcode 4 can do a lot more than code completion and syntax highlighting. The new Fix-it feature alerts you to coding mistakes as you type. Just like a word processor will highlight spelling errors, Xcode 4 will highlight common coding mistakes, without the need to click ‘build’ first.

But why stop at alerting you to problems?

The IDE knows what you did wrong because it understands your code. It understands it so well, Xcode 4 can even fix it for you. A single key-press can correct an assignment to a comparison, or append that missing semicolon.

Fix-it is a great as-you-type companion to the rigorous testing performed by the Build and Analyze feature. The Xcode static analyzer will walk through thousands of potential code paths, looking for places where code, while valid, would behave in unexpected ways, such memory allocation mistakes, never-hit case statements, or improperly constructed loops.

Together, Fix-it and Build and Analyze will find bugs long before your users.

Version Editor

The new Version editor in Xcode 4 makes it easy to see any two versions of your source code, side by side, in a live editor. More importantly, the Version editor is a new way to think of source control management in an IDE, because the comparison view is also a timeline. Drag the slider in the middle and you travel back in time through your project, comparing any two versions.

The Version editor can also show you a detailed log of past events, and track blame for past check-ins. Complex SCM commands are managed for you behind the scenes. It is even possible to manage multiple projects within a single Xcode 4 workspace, one project managed in Subversion, the other in Git, all updated automatically.

New Debugger

Xcode 4 introduces LLDB, a brand new debugging engine contributed by Apple to the LLVM.org open source project. Like LLVM, the new LLDB engine is designed from the ground up to consume much less memory, and be a rocket when it comes to performance.

The new LLDB debugging engine is the perfect fit for the new Xcode 4 debugging interface. When your app is running, the navigator will show a stack trace you can expand or compress to show or hide stack frames as you debug. As you step through, you can even lock onto a single thread then click “continue” and follow that specific thread of execution. Multicore debugging in Xcode 4 is now as easy as multicore coding with blocks and Grand Central Dispatch.

Instruments for Xcode 4

Instruments has a streamlined interface, complete with the new Jump Bar, and stack compression from Xcode 4’s UI. Using Xcode4’s new launch schemes, it is easier than ever to create a robust test harness to run your app in Instruments. That includes launching Instruments in “deferred mode”, keeping the data collection UI off screen and saving system resources for running and metering your application.

New data collection instruments are also available, including OpenGL ES for tracking iPhone graphics performance, new memory allocation monitoring that can find unintended memory growth, Time Profiler on iOS for collecting samples with very low overhead, and complete System Trace for insight into how all system processes interact.

Instruments covers even more ground, has even lower overhead, and is more useful than ever before.

 

 

 

 

 

 

 

 ■ 참고

 

[다운로드 관련]

더 필요한 Cydia 어플을 찾으시면... : http://blog.naver.com/premiumlux/90108957007

더 필요한 iProgram(관련어플)을 찾으시면... : http://blog.naver.com/premiumlux/90106711660

펌웨어(iOS) 다운로드(모든버전) : http://blog.naver.com/premiumlux/90106331013

아이튠즈(iTunes) 다운로드(모든버전) : http://blog.naver.com/premiumlux/90107773156

 

[팁 관련]

아이폰 관련 팁 총망라 : http://blog.naver.com/premiumlux/90107121935

아이튠즈 오류 해결 방법 : http://blog.naver.com/premiumlux/90108494813

SHSH 백업 및 복원(다운그래이드) 방법 : http://blog.naver.com/premiumlux/90105983785

데비안 패키지(*.deb) 파일 설치 가이드 : http://blog.naver.com/premiumlux/90108367976

데비안 패키지(*.deb) 파일 삭제 가이드 : http://blog.naver.com/premiumlux/90109072379

 

도움이 되셨다면 댓글과 추천 한번씩 눌러주시면 포스팅에 도움이된답니다 ^^*

[관련태그] 아이폰4,아이폰5,아이폰,아이패드,안드로이드,아이팟터치,iPhone,iPad,Apple,AppleTV,아이폰4,아이폰5,아이폰,아이패드,안드로이드,아이팟터치,iPhone,iPad,Apple,AppleTV,아이폰4,아이폰5,아이폰,아이패드,안드로이드,아이팟터치,iPhone,iPad,Apple,AppleTV

 

-

 

 



출처 : http://blog.naver.com/PostView.nhn?blogId=premiumlux&logNo=90106752410
Posted by 오늘마감
[MammothHunting] - Cocos2D를 사용한 아이폰 게임 개발 튜토리얼 4

출처 :http://lambert.tistory.com/294

비록 예제를 위한 게임이지만 3단계까지 진행한 상태에서는 별반 감흥이 없다. 이유는 바로 소리(배경음악, 효과음)가 없기 때문이다. 지금까지 게임 개발의 문외한 이었지만 "게임은 종합 예술"이라는 말을 자주 들었었다. 정말 그렇다. 아주 간단한 게임조차 그래픽과 사운드는 필수 요소이다.

사운드 샘플은 원문의 샘플을 그대로 사용하기로 한다. 아니면 Cocos2D에서 소개하는 게임 관련 리소스(Game Resources)를 이용해도 좋을 것 같다.

배경 음악과 효과음 추가
다음 두 개의 파일을 다운 받아 Xcode 프로젝트의 Resources 폴더에 추가한다.
우선 MammothHuntingScene.h에 다음 임포트 문을 추가한다.

#import "SimpleAudioEngine.h"


init 메소드에 다음과 같이 배경음악을 시작하는 코드를 추가하자. 마지막 부분에 추가하면 된다.

[[SimpleAudioEnginesharedEngine] playBackgroundMusic:@"background-music-aac.caf"];


그리고 ccTouchesEnded 메소드에 총알 발사 효과음을 추가한다.

[[SimpleAudioEnginesharedEngine] playEffect:@"pew-pew-lei.caf"];


빌드앤런! 이제 배경 음악과 효과음을 들을 수 있다.

게임 진행 로직 추가
다음은 간단한 게임 진행 로직을 추가할 것이다. 프로젝트에 GameOverScene 이라고 새로운 클래스를 추가하자. 그리고 다음과 같이 GameOverScene.h와 GameOverScene.m을 수정한다.

[GameOverScene.h]
@interface GameOverLayer : CCColorLayer {

CCLabel *_label;

}


@property (nonatomic, retain) CCLabel *label;


@end




@interface GameOverScene : CCScene {

GameOverLayer *_layer;

}


@property (nonatomic, retain) GameOverLayer *layer;


@end



[GameOverScene.m]
#import "GameOverScene.h"

#import "MammothHuntingScene.h"



@implementation GameOverLayer


@synthesize label = _label;



-(id) init {

if ((self=[super initWithColor:ccc4(255,255,255,255)])) {

CGSize winSize = [[CCDirectorsharedDirector] winSize];

self.label = [CCLabellabelWithString:@""fontName:@"Arial"fontSize:32];

_label.color = ccc3(0,0,0);

_label.position = ccp(winSize.width/2, winSize.height/2);

[selfaddChild:_label];

[selfrunAction:[CCSequenceactions:

[CCDelayTimeactionWithDuration:3],

[CCCallFuncactionWithTarget:selfselector:@selector(gameOverDone)],

nil]];

}

returnself;

}



- (void)gameOverDone {

[[CCDirectorsharedDirector] replaceScene:[MammothHuntingScenescene]];

}



- (void)dealloc {

[_labelrelease];

_label = nil;

[superdealloc];

}



@end



@implementation GameOverScene


@synthesize layer = _layer;



- (id)init {

if ((self = [super init])) {

self.layer = [GameOverLayernode];

[selfaddChild:_layer];

}

returnself;

}



- (void)dealloc {

[_layerrelease];

_layer = nil;

[superdealloc];

}



@end


위 소스에서 한 가지 주목할 것은 하나의 파일에 두 개의 서로 다른 객체, 즉 Layer와 Scene이 있다는 점이다. 보통 하나의 Scene은 여러 개의 Layer를 포함할 수 있다. 그러나 본 예제에서는 오직 하나의 Layer만 사용한다. 화면의 중앙에 라벨을 그리는 Layer이다.

마지막으로, 단순한 게임 진행 로직 추가를 위해, MammothHuntingScene.h에 다음의 멤버 변수를 추가하자. 

int_projectilesDestroyed;


MammothHuntingScene.m에는 다음 임포트 구문을 추가한다.

#import "GameOverScene.h"


그리고 게임의 승리 조건을 판단하기 위해 update 메소드의 targetsToDelete 루프에 다음 코드를 추가한다.

_projectilesDestroyed++;

if (_projectilesDestroyed > 30) {

GameOverScene *gameOverScene = [GameOverScenenode];

[gameOverScene.layer.label setString:@"You Win!"];

[[CCDirectorsharedDirector] replaceScene:gameOverScene];

}


다음 spriteMoveFinished 메소드의 sprite.tag == 1 조건 부분에 아래의 코드를 추가한다.

GameOverScene *gameOverScene = [GameOverScenenode];

[gameOverScene.layer.label setString:@"You Lose :["];

[[CCDirectorsharedDirector] replaceScene:gameOverScene];


드디어 아주 아주 간단한 게임 개발이 끝이 났다. 다시 빌드앤런! 추가된 게임 로직이 제대로 작동될 것이다.

MammothHunting 프로젝트 소스
MammothHunting.zip



출처 : http://blog.naver.com/PostView.nhn?blogId=cbdman&logNo=130085022641
Posted by 오늘마감