Lomohome.com :: 괴발자 모근원



음식앞에 숙연해지시는 쏘

인상좋은 옆집 아저씨?

한땀 한땀 장인의 손길이 베여있는 쿠션

장인 인증샷

쿠션 방석 그리고 초콜릿
방석 정말 따뜻하다 ㅠ_ㅠd

까르보나라

해물 토마토 스파게티~ 맛나~ 맛나~

2차는 항상 이정도

치킨 떡볶이!


Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 2. 14


'내가찍은사진 > 디카사진들' 카테고리의 다른 글

호루스벤누 35mm 테스트 샷  (2) 2011.03.09
SBS 미라클 아트전  (0) 2011.03.02
AKAI LPD8  (0) 2011.03.01
로또  (0) 2011.02.27
짱어  (0) 2011.02.27
우리집 설 풍경  (0) 2011.02.27
Posted by 모근원

될리가 없다는걸 알면서도 가지게되는 미련한 미련


Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 2. 14

'내가찍은사진 > 디카사진들' 카테고리의 다른 글

SBS 미라클 아트전  (0) 2011.03.02
AKAI LPD8  (0) 2011.03.01
발렌타인 데이  (0) 2011.02.28
짱어  (0) 2011.02.27
우리집 설 풍경  (0) 2011.02.27
오랜 친구들의 저녁식사  (0) 2011.02.27
Posted by 모근원



파주 갈릴리 농원에서 맛나는 짱어 6Kg!!!


Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 2. 12


'내가찍은사진 > 디카사진들' 카테고리의 다른 글

AKAI LPD8  (0) 2011.03.01
발렌타인 데이  (0) 2011.02.28
로또  (0) 2011.02.27
우리집 설 풍경  (0) 2011.02.27
오랜 친구들의 저녁식사  (0) 2011.02.27
생일선물  (0) 2011.02.01
Posted by 모근원


올해도 배터지게 드시는 할아버지 할머니.

늦었지만 떡국많이 드시고 새해복 많이 받으세요~


Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 2. 3


'내가찍은사진 > 디카사진들' 카테고리의 다른 글

발렌타인 데이  (0) 2011.02.28
로또  (0) 2011.02.27
짱어  (0) 2011.02.27
오랜 친구들의 저녁식사  (0) 2011.02.27
생일선물  (0) 2011.02.01
내 생일 @2011.1.22  (2) 2011.01.23
Posted by 모근원

영등포가는 길 중에 구로역에서.

신도림 디큐브시티 공사현장

영등포 타임스퀘어



책읽는 소영. 요즘 부쩍 인터리어에 관심을..


친구들 만나러 가는 길

커피기다리는 상민이 

당구집 아들경력 동안이


자넷 쏘?

오랜친구 동안이와 상민이

당구만 15년을 쳐도 실력은 그바닥들 ㅋ


귀여운(?) 상민

파마한 동안이




Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 1. 29

'내가찍은사진 > 디카사진들' 카테고리의 다른 글

로또  (0) 2011.02.27
짱어  (0) 2011.02.27
우리집 설 풍경  (0) 2011.02.27
생일선물  (0) 2011.02.01
내 생일 @2011.1.22  (2) 2011.01.23
MT  (0) 2011.01.23
Posted by 모근원

COCOSDenshion (of cocos2d 0.99.5) 의 SimpleAudioEngine 믿고 배경음을 출력했었다.
시뮬레이터에서 잘 되고~ 아이팟 터치 2세대에서 잘 되고~

그런데!! iPhone 4에서만 배경음악이 출력이 안되는것~! (효과음 effect 출력은 잘 되고있는데?!)
로그를 찍어보니 파일의 위치를 읽어오지 못하고 있었다.
참고로 한 Sample 의 TomTheTurret 도 마찬가지의 버그를 내고있었고..
버그인지.. cocos2d 라이브러리를 직접 수정하다가. 곧 업데이트가 될것 같아서 원복하고..
그냥 임시로 업데이트될때까지 SimpleAudioEngine 에서 배경음 재생 실패할 경우 AVAudioPlayer 를 이용해서 재생하도록 했다.
그리고 Fadein/out 시켜주는 메소드 하나 추가하고..
결과는 기종에 관계없이 배경음이 자~알 출력된다.
사운드 엔진은 싱글턴으로 프로그램내에서 어디서든지 불러다 쓸수있게 했다.

SimpleAudioEngine *soundEngine_;



//-- 이 아래에는 AVAudioPlayer를 위한 멤바들.

BOOL isAVAudioPlayer; //한번이라도 AVAudioPlayer 이용하여 배경음을 재생하면 셋팅된다.

//차선책으로 쓰는 AVAudioPlayer

AVAudioPlayer *bgmPlayer;

CGFloat fadeAmt; //Fadeout 감소값.

CGFloat fadeDesc; //Fadein 목표값.

요러한 멤버객체가 인터페이스에 선언이 되어있다 치고..

-(SimpleAudioEngine *) soundEngine

요런식으로 심플 오디오 엔진을 리턴하는 메소드가 있다 하자..

객체 init 해줄때 초기화 꼼꼼히 해주고..

isAVAudioPlayer = NO;

fadeAmt = 0;


dealloc  해줄땐 AVAudioPlayer 로 배경음 재생중이면 꺼주고 죽여주자.

if (self.bgmPlayer != nil) {

[self stopBGMwithAudioPlayer];

}




발로짠 오디오 플레이어 부분.

//배경음 재생을 시작한다.

-(void)playBGMwithAudioPlayer:(NSString*)filename ext:(NSString*)ext volume:(CGFloat)vol{

if (self.isSoundOn) {

[self stopBGMwithAudioPlayer];

if(self.bgmPlayer == nil){

self.bgmPlayer = [self createAudioPlayer:filename ext:ext volume:vol];

//-1 무한반복

self.bgmPlayer.numberOfLoops = -1;

}

[self.bgmPlayer play];

}

}


-(void)stopBGMwithAudioPlayer{

if (self.isSoundOn && self.bgmPlayer != nil) {

NSLog(@"AVAudioPlayer 스탑!");

[self.bgmPlayer stop];

// self.bgmPlayer.currentTime = 0; //rewind

self.bgmPlayer = nil;

}

}



//오디오 플레이어를 만든다.

-(AVAudioPlayer*)createAudioPlayer:(NSString*)filename ext:(NSString*)ext volume:(CGFloat)vol{

NSString *audioPath = [[NSBundle mainBundle]pathForResource:filename ofType:ext];

NSLog(@"새로운 AVAudioPlayer 생성 %@.%@ (%f%%)",filename,ext,vol);

AVAudioPlayer *tmpAudioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:audioPath] error:nil];

tmpAudioPlayer.numberOfLoops = 0;

tmpAudioPlayer.volume = vol;

//소리를 위해 버퍼에 로딩

[tmpAudioPlayer prepareToPlay];

isAVAudioPlayer = YES;

[tmpAudioPlayer autorelease];

return tmpAudioPlayer;

}



//음악을 서서히 죽여준다.

-(void)fadeoutBGMwithAudioPlayer{

    if (self.bgmPlayer!=nil && self.bgmPlayer.volume > 0.01f) {

//2초정도 소리를 줄여주기 위하여

if (fadeAmt == 0) fadeAmt = self.bgmPlayer.volume/20;

        self.bgmPlayer.volume = self.bgmPlayer.volume - fadeAmt;

        [self performSelector:@selector(fadeoutBGMwithAudioPlayer) withObject:nil afterDelay:0.1f];

} else {

NSLog(@"fadeOut finish");

fadeAmt = 0;


[self stopBGMwithAudioPlayer];

}

}



//음악을 서서히 살려준다.

-(void)fadeinBGMwithAudioPlayer{

//NSLog(@"fadeIn %f amount %f desc %f",self.bgmPlayer.volume,fadeAmt,fadeDesc);

    if (self.bgmPlayer!=nil && self.bgmPlayer.volume <= fadeDesc) {

//2초정도 소리를 줄여주기 위하여

if (fadeAmt == 0) fadeAmt = fadeDesc/20;

        self.bgmPlayer.volume = self.bgmPlayer.volume + fadeAmt;

        [self performSelector:@selector(fadeinBGMwithAudioPlayer) withObject:nil afterDelay:0.1f];

} else {

NSLog(@"fadeIn finish");

fadeAmt = 0;

}

}


그리고 SimpleAudioPlayer 를 같이 쓰면서 배경음 재생 실패하면 바로 AVAudioPlayer 를 이용.

//BGM재생.

-(void) playBGM:(NSString*)filename ext:(NSString*)ext volume:(CGFloat)vol{

if (self.isSoundOn){

//soundEngine

if (!isAVAudioPlayer && [self soundEngine] != nil) {

NSLog(@"soundEngine 으로 배경음 재생 시도.");

[self soundEngine].backgroundMusicVolume = vol;

[[self soundEngine] playBackgroundMusic:[[NSBundle mainBundle] pathForResource:filename ofType:ext] loop:YES];

}

NSLog(@"soundEngine : isBackgroundMusicPlaying (%d), isAVAudioPlayer(%d)",[[self soundEngine] isBackgroundMusicPlaying],isAVAudioPlayer);

if (isAVAudioPlayer || [self soundEngine] == nil || ([self soundEngine] != nil && ![[self soundEngine] isBackgroundMusicPlaying])) {

//AudioPlayer

NSLog(@"soundEngine 으로 배경음 재생 실패하여 AVAudioPlayer 시도.");

[self playBGMwithAudioPlayer:filename ext:ext volume:vol];

}

}

}


-(void) fadeinBGM:(NSString*)filename ext:(NSString*)ext volume:(CGFloat)vol{

if (self.isSoundOn){

//soundEngine

if (!isAVAudioPlayer && [self soundEngine] != nil) {

NSLog(@"soundEngine 으로 배경음 페이드 재생 시도.");

[self soundEngine].backgroundMusicVolume = 0;

[[self soundEngine] playBackgroundMusic:[[NSBundle mainBundle] pathForResource:filename ofType:ext] loop:YES];

[CDXPropertyModifierAction fadeBackgroundMusic:2.0f finalVolume:vol curveType:kIT_SCurve shouldStop:NO];

}

if (isAVAudioPlayer || [self soundEngine] == nil || ([self soundEngine] != nil && ![[self soundEngine] isBackgroundMusicPlaying])) {

//AudioPlayer

NSLog(@"soundEngine 으로 배경음 재생 실패하여 AVAudioPlayer 페이드 재생 시도.");

fadeDesc = vol;

[self playBGMwithAudioPlayer:filename ext:ext volume:0];

[self fadeinBGMwithAudioPlayer];

}

}

}


-(void) stopBGM{

if (self.isSoundOn){

if (isAVAudioPlayer) {

[self stopBGMwithAudioPlayer];

} else {

if ([self soundEngine] != nil){

[[self soundEngine] stopBackgroundMusic];

}

}

}

}


-(void) fadeoutBGM {

if (self.isSoundOn) {

if (isAVAudioPlayer) {

[self fadeoutBGMwithAudioPlayer];

} else {

if ([self soundEngine] != nil){

//2 페이드 아웃.

[CDXPropertyModifierAction fadeBackgroundMusic:2.0f finalVolume:0.0f curveType:kIT_SCurve shouldStop:YES];

}

}

}

}


끗. (이랬는데 뭔가 잘못써서 SimpleAudioEngine 에서 출력이 안된거라면 대략 난감.. 삽질의 향기가..)


- (덧) COCOS 2D 1.0rc 버전에서는 수정되었음 -_-......... 
Posted by 모근원
상황 1 : 
SuperScene 이라는 상위클래스에서 private 변수로 CGPoint winSize 라는 변수를 생성해 두었음.

//  SuperScene.h

...

@interface SuperScene : CCScene {

CGSize winSize; //윈도우 사이즈

}

...


상황 2 : 
이 SuperScene 을 상속 받은 다른 클래스들에서는 상위 클래스에서 선언한 winSize 변수에 자유롭게 접근이 가능함. 이렇게 구현된 클래스가 수십개가 있는데 문제가 없었다.

그런데 SuperScene을 상속받은 수많은 클래스 중에서 유독 한 클래스에서 선언하지 않았다고 에러.. 
뭔가가 잘못되었음. (이밖에 상위 클래스인 SuperScene 에서 선언한 변수들은 죄다 에러)

상속받은 클래스에서 변수를 선언하려고하면 중복선언이라고 에러..





해결책 : 
@property 와 @synthesize 를 구현한 멤버변수가 없으면 엄한데서 오류가 나오기 시작한다!!!
내 경우엔 BattleScene 이란 하위 클래스(SuperScene을 상속받은..) 에서 @property 로 CurrentWeapon 이라는 멤버 변수를 보내주고 @synthesize 로 구현까지 해주었는데 정작.. CurrentWeapon 이라는 멤버변수를 선언하지 않았다;;;

- 이렇게 되어있으면 문제.. 정작 변수 선언이 되어있지 않았다.

@interface BattleScene : SuperScene {

}


@property (nonatomic, retain) CCSprite* currentWeaponMark;

@synthesize currentWeaponMark;


- 요렇게 해주거나 변수가 필요없으면 @property 와 @synthesize 를 삭제한다.

@interface BattleScene : SuperScene {

CCSpritecurrentWeaponMark;

}


@property (nonatomicretain) CCSprite* currentWeaponMark;

@synthesize currentWeaponMark;

Posted by 모근원


사랑스런 쏘쏘가 저번주에 선물해준 필립스 전기 면도기~
면도좀 깨끗이 하고 다니라는 여느님의 계시?





Sony NEX-5 / E18-55mm F3.5-5.6 OSS / RAW / Lightroom 3 / 2011. 1. 22

'내가찍은사진 > 디카사진들' 카테고리의 다른 글

짱어  (0) 2011.02.27
우리집 설 풍경  (0) 2011.02.27
오랜 친구들의 저녁식사  (0) 2011.02.27
내 생일 @2011.1.22  (2) 2011.01.23
MT  (0) 2011.01.23
눈오던 날  (0) 2011.01.23
Posted by 모근원