'분류 전체보기'에 해당되는 글 105건

  1. 2011.09.13 장면전화방법 과 장면전화효과 개념부터 잡고 가자!(cocos2d for android)
  2. 2011.09.11 SoundEngine 간단 정리 (cocos2d 안드로이드 )
  3. 2011.09.10 CCMenu 관련 총정리 (cocos2d 안드로이드)
  4. 2011.09.10 CCCamera 클래스 분석
  5. 2011.09.10 CCGridSize 클래스 분석 (미친척하고 해보자 cocos2d for androd)
  6. 2011.09.09 안드로이드 cocos2d 예제 분석강좌 - 네번째- (메뉴 MenuTest.class)
  7. 2011.09.09 안드로이드 cocos2d 예제 분석강좌 - 세번째- (메뉴 MenuTest.class)
  8. 2011.09.06 안드로이드 cocos2d 예제 분석강좌 - 첫번째- (메뉴 MenuTest.class)
  9. 2011.09.05 2-1. CCAction은 어디에 쓰는걸까?(cocos2d android 강좌)
  10. 2011.09.05 2. CCAction은 어디에 쓰는걸까?(cocos2d android 강좌)
  11. 2011.09.05 1. 개념잡기 sprite,layer,scene,director(cocos2d android 강좌)
  12. 2011.08.31 카오스 템트리 빨리찾기 (안드로이드 어플)
  13. 2011.08.30 카오스 템트리 어플리케이션
  14. 2010.02.08 토익 part2공부법 만점을 위하여 정공법.
  15. 2010.02.07 토익 part2 공부법(토익 LC) 발행 테스트 입니다.
  16. 2010.01.27 토익 시나공 파트7 실전문제집 복습내용.
  17. 2010.01.27 추노 진짜 선정적인가?
  18. 2010.01.11 재미있는 토익공부
  19. 2010.01.01 토익 part3 유수현 닥터스LC 난이도별연습문제1회 테스트및 공부방향
  20. 2009.12.31 토익공부 2번째 단계.(part7에 이어 part3 공부 단계)
  21. 2009.12.31 영화<아바타> 주인공 VS 겜폐인 공통점 몇가지(한국사회에 강력한 메세지를 전하다)
  22. 2009.12.30 토익 part7 공부법(48문제중 8개 내외로 틀리는사람해당)
  23. 2009.12.30 토익 part7에 필요한문법 (to부정사용법 간단정리)
  24. 2009.12.29 토익 파트(part)7 이중지문을 읽는 요령2가지
  25. 2009.12.28 시나공 토익 part7 독해 4회분 첫번째 다시 읽기.
  26. 2009.12.26 토익 파트7 시나공 실전문제집 추천하는 이유 3가지.
  27. 2009.12.26 <우결>임슬옹!! 이제 한계단 남았다.
  28. 2009.12.26 <청춘불패>크리스마스특집 왜 유치리에서 했나?
  29. 2009.12.25 12월20일 토익후기
  30. 2009.12.15 시나공 토익 part7 독해 5~6회분,중급자에서 고수로 가는길.

이전 강좌에서는 메뉴생성과 동작에 대해서 알아 보습니다.  


그리고 나서 sound 에 대해서 간단히 알아 보았습니다. 


자 그럼 이제 무었이 필요할까요?
제목에서도 나와 있듯이 메뉴를 누르고 소리나고 난뒤에 다른  어플리케이션이 먼가 해주어야겟죠. 그대표적인 예가 다른장면. 메뉴를 눌렀으면 그에 합당한. 다른 화면이 나와워야고 생각합니다. 그장면 전환도 그냥 하는게 아니고 먼사 쌈박한게 해주면 좋겟죠 화려하게 ㅎㅎㅎ 

그럼 이제 우리가 알아야 할것은 2가지입니다.

첫번째 : 장면전환 방법과 
두번째 : 장면전환 효과 

이렇게 2가지입니다. 

그럼 그
첫번째  장면 전환 방법입니다. 본개념강좌에서 보앗듯이 
장면 즉  Scene를 관리하는것은 Direction입니다. 그럼 Direction에 보면 장면
전환에 관련된 함수들이 있을거라고 예상할수 있죠. 
실제 소스를 찾아보니 . 

위와 같이 있더군요 . 

runWithScene , replaceScene , pushScene , popScene

runWithScene는 Scene를 시작하는거니까 일단패스
replaceScene 오케이 교체 요거 일단 접수. 
어라 근데 push,pop 오호 ~~~ director는 Scene 관리는 스택 개념으로 
하는구나 . ㅎㅎㅎ 좋았어

그리고 생각해봅시다. 
장면의 전환을 할 때 2가지 경우가 있습니다.(이전과 이후 )
 1. 이전 장면의 데이터를 보관해야 할때!(ex 게임중간에 설정으로 전환)
    ==>
pushScene and popScene
 2. 이전 장면의 데이터를 보관안해도 될때(ex 메뉴에서 게임 화면의로의 전환)
    ==>replaceScene 
으로 사용하면 되겟네요 ㅎㅎ


두번째  장면 전환 효과입니다. 
이것도 어떨때 어떻게 사용하라고 정의하면 좋겟지만 이거야 만들고 싶은 사람 마음니까 
머라고 정의 할 수 없겟네요. 한가지 느낌점은 장면 전환이 Action과 상당히 유사성이 많게 보입니다. 실제 어떤 장면전화효과는 액션을 몇가지 썩어 놓기만 했네요. 
비록 30 여개의 장면전환클래스가 있다지만 이것만이 전부가 아니겟지요. 일단 하나하나 테스트 해보세요 . 그리고 나서 자신만의 장면 정환 효과를 만들어 본다면  상당히 재미있을듯합니다. 

아참 그전에 한가지 정리 할고 갈것이 있네요. 바로 
CCScene에 장면효과를 주는 것이 아니고 장면효과를 가지는 CCScene(CCTransitionScene)를 만든다는것입니다. 언듯 보면 말장난 같지만 이 두가지의 차지점은 상당히 큽니다. 







Posted by 수다쟁이증후군 :

막상 메뉴를 해놓고 보니까 소리가 없어서 먼가 및및하더군요 . 
타격감이 없다고 해야 하나 .  그래서 다른것 하기전에 이것부터 할려구요 

바로 싸운드 음..예제 소스 부터 보실래요 ^^?
 

그냥 쭈욱 한번 보세요 ㅎㅎ

진짜 별거 없죠 ㅎㅎㅎㅎ
그럼 일단 싸운드 정리 부터 할까요?

cocos2d는 게임을 의해 만들 라이브러리 라고 해도 과언이 아니겟죠 ? ^^ 
자 그럼 게임에 싸운드가 나오는 경우가 2가지 있습니다. 

바로 배경음악과  효과음 
2가지로 나누어 집니다. 
cocos2d 그래서 언듯생각한것이 2가지 클래스가 따로 있나 싶었는데 
바로 SoundEngine 바로 여기서 2가지를 전부 관리 하더군요. 

실제 코드에서 쓰인 부분은 간단 합니다. 
첫번째 로 백그라운드음악 설정할때

public void onEnter() {

super.onEnter();

     SoundEngine.sharedEngine().playSound(app, R.raw.backsoundtrue);

}

바로 이부분입니다. 오호 저기또 share  란 접미사가 붙어있는거 보니 싱클톤이네요 

첫번째 인자는 Context
두번째 인자는 Raw 폴더에 있는 파일이름
세번째는 반복재생 할건지 말건지 입니다.(배경음 이니까 당연히 무한 반복 들어값니다.) 


그리고  효과음입니다. 
효과음이 필요한곳에다가 
SoundEngine.sharedEngine().playEffect(app, R.raw.effect);

요렇게만 쓰면 됩니다.
첫번째 인자값은 컨택스트
구번째 인자값은 Raw 폴더에 있는 파일입니다.

진짜 초간단하죠 ㅎㅎㅎㅎ 너무 간단해서 어이가 없을 지경입니다. 
홈피에서는 5초이상 쓰이는건 미디어 플레이어 쓰고  3초 이하 정도면
이펙트를 사용하는것을 추천합니다. 



자이제 간단하게 사용하법 법을 보았습니다. 
일단 비교 대상이 2개뿐이니까 이번엔 표로 한번 정리해볼까요?
   배경음악 효과음 
 안드로이드와 연관성  MediaPlayer사용  soundpool 사용
 적용시점  화면이 있을때   사용자의 반응에 대해서  
 끝나는 시점   어플종료 / 화면이 안보일때  일회성이므로 사용후바로 끝


배경음악의 시작시점을 보겟습니다 이건 어디서 알수 있을까요? 

CCNode  관련 클래스가 화면에 나타날때(생성될 때) onEnter() 함수가 호출됩니다. Layer도 레이어니까 CCNode 클래스를 상속받았으니 OnEnter() 함수롤 오버라이드 한 바로이곳에서 배경음악을 실행합니다. 



배연음악은 언제 안들리게 해야 하나요?

어플이 종료되었을때 와 어플이 화면에서 안보일때(background) 입니다. 그리고 커스텀하게 해당 레이어가 없어지거나 안보일때 입니다. 
일단 레이어가 화면에서 사라지거나 어플이 background로 들어가는 것은 사용자 입장에서는 같다고 할 수 있습니다. 그럼 이때 일시정지를 하고 어플이 종료될때는 Mediaplayer를 realease 해줍니다. 그럼 레이어가 사라질때 호풀되는 함수가  먼고하니 바로
OnExit()입니다 여기에 바로 일시정지를 넣어줍니다. 
그리고 어플이 종료될때 OnDestroy 입니다.여기서종료해 주는거죠 ]
cocos2d에 있는 예제는 워낙 단순하여(한개의레이어) 커스텀한경우는 없네요
차후 실제 게임 만들기 강좌에서 보다 자세히 다룰께요. 




자 이번엔 효과음입니다. 효과음은 언제 이루어질까요?

사용자가 디바이스 어떤 동작을 취할때 입니다. 그때 호출되는 콜백 함수에 
사용하면 됩니다. 보통 터치 이벤트가 발생했을때 사용됩니다.  

 public boolean ccTouchesBegan(MotionEvent event) {

        SoundEngine.sharedEngine().playEffect(app, R.raw.effect);

            return CCTouchDispatcher.kEventHandled;

}
 이건데요 일단 Layer가 터치를 받을때 화면에 누르는 순간에 저함수가 호출됩니다. 


아 참고로 안드로이드 사용할때 보면 soundpool을 좀세부적으로사용하는
아직 cocos2d에서는 그걸 컨트롤하는 함수가 아직 지원되지 않습니다. 이는 추후에  보완되겟죠 . 


오늘은 sound 에 대해서 간단히 진짜 간단히 보았네요 . 추후강좌에서는 좀더 세부적으로 다룰수 있도록 해보겟습니다. 일단 오늘은 요까지만. 


Posted by 수다쟁이증후군 :
메뉴관련 예제를 정리하고  마지막으로 총정리 해봅니다. 

CCMenu  클래스 설명입니다. 

/** A CCMenu
 * 
 * Features and Limitation:
 *  - You can add MenuItem objects in runtime using addChild:
 *  - But the only accecpted children are MenuItem objects
 */
 


특징과 제한 
- CCMenuItem 인스턴스를 넣고 싶은때 언제나 멤버로 넣을수 있다 .
- 다만. CCMenuItem 이나 이를 상속한 클래스만 을 넣을수 있다 .

그럼 이제 CCMenuItem에는 어떤것들이 있나 보겟습니다. 
총 6개가 아래와  같이 있습니다. 

CCMenuItemAtlasFont

CCMenuItemFont

CCMenuItemImage

CCMenuItemLabel

CCMenuItemSprite

CCMenuItemToggle


위에 이놈들은 직접적이든 간접적이든 CCMenuItem을 상속 받았습니다. 
다만 요놈들끼리도 상속 구조를 이루는 부분들이 있는데 확인해보게습니다.



일단 CCMenuItem을 사용처에따라 분류해봅니다. 

1.이미지 메뉴아이템을 만들때 :
CCMenuItemSplite 을 사용하세요  
그리고 좀더 편하게 사용한다면 
CCMenuitemImage 를 사용하세요( 파일 이름으로 바로 생성가능 - 관련 강좌 클릭)
 

2.글자 메뉴아이템을 만들때
:
CCMenuItemLable를 사용하세요
그러나 다른 폰트및 사용자 폰트를 사용하려면 
CCMenuitemFont 와 CCMenuItemAtlasFont 를 사용하세요 
CCMenuitemFont는 디바이스 내장 폰트 사용하고 
CCMenuItemAtlasFont 사용자 폰트를 사용합니다. 
(
CCMenuItemLable 을 이용하여 사용자 폰트도 만들수 있지만. 개인적인 생각으로 는 분명 특화된 클래스가 있는데 그걸 사용하지않고 다른걸 기본클래스를 사용한다는 것은 시간낭비적
요소가 있지 않나 싶습니다.물론 세부적인 컨트롤이 가능하다는 측면이 있지만 그런일은 별로
없을듯 합니다. )



3.메뉴아이템을에 여러가지 상태값을 넣고 변경하고자 한다면 

CCMenuItemToggle을 사용하세요 



위 관련내용중 CCMenuItemSplite와 CCMenuItemImage를 제외하고 
다른 메뉴아이템은 클릭시에 기본액션은 글자확대=>복귀 이 있습니다. 


진짜 상세히는 못다루었지만. 이제 어떤메뉴라도 충분히 다룰수 있지 않았나 합니다. 
지금까지 전체 MenuTest관련 5강좌를 전부 읽고도 
메뉴를 만들지 못하신다면 문의 주세요 만들어 드립니다. ㅎㅎㅎ
 
 
 

 




 
Posted by 수다쟁이증후군 :
카메라 머지 이거 왜 2D에 카메라가 필요하지 흠.....했지만 조금 생각해보니 머 필요할수 있겟다 싶기도 하다 . 머라 설명할길이 없네. ㅠㅠ
아래는 전체 소스입니다.

/**

    A Camera is used in every CocosNode.
    카메라는 모든 CCNoed에서 쓰인다 

    Useful to look at the object from different views.
    다른 시점에서 object를 바라볼때 유용하다 

    The OpenGL gluLookAt() function is used to locate the

    camera.
    카메라의 위치를 변경시키려면 오픈GL의 gluLookat() 함수가 이용된다.
   

    If the object is transformed by any of the scale, rotation or

    position attributes, then they will override the camera.
    오브젝트의 크기라던지 회전이나 위치변경을 한다면 camera를 오버라이딩 해라 

 

       IMPORTANT: Either your use the camera or the rotation/scale/position properties. You can't use both.

    World coordinates won't work if you use the camera.
    정보ㅋ : CCCamera를 쓰던지  CCNode의 
rotation/scale/position 속성값을
    변화시키던 결과물은 같을수 있지만 동시에 사용하지마.
    카메라를쓴다면 월드 축을 변경하지마. (기준이 없어지니까  결과 물을 예측할수가 없으니까 쓰지마라는 뜻인듯)

 

    Limitations:
    제한 : 

 

     - Some nodes, like CCParallaxNode, CCParticle uses world node coordinates, and they won't work properly if you move them (or any of their ancestors)

       using the camera.
몇가지 클래스 특히  
CCParallaxNode, CCParticlesms 월드 Node 축 사용해라.
만약 이놈들(상위클래스 포함)을 카메라를 이용해서 작업하다면 적절하게 동작하지않을수 있다 (결과물을 예측하기 힘들다) 

*/
이거나 해석해볼까요 ㅎㅎ
  
회전각도 변경,크기 변경, 위치변경은 CCNode속성을 이용해서 할수도 있고 CCCamera를 가지고도 할수 있으니 제한적은 부분이 있으니 CCCamera 를 쓰지말것. 이란다.
근데 이거 CCNode 의 레퍼런스 변수로 CCCamera가 있다.  좀 더신중히 접근해봅시다. ㅎ
일단은 직접 사용을 자제 해봅다

                 작성날짜 2011년 09월 10 입니다 추후 변경 해보려 합니다.  
Posted by 수다쟁이증후군 :
cocos2d를 하는 와중에 미친척하고 모든 클래스분석 한번 해봅니다. 

package org.cocos2d.types; 

//! A 2D grid_ size

public class ccGridSize {

    public int x;

    public int y; 

    //! helper function to create a ccGridSize

    public static ccGridSize ccg(final int x, final int y) {

        return new ccGridSize(x, y);

    } 

    public ccGridSize(int x, int y) {

        this.x = x;

        this.y = y;

    } 

    public ccGridSize(ccGridSize gs) {

        this.x = gs.x;

        this.y = gs.y;

    }

}

그리드 사이즈를 위한 클래스 입니다. 
별다른거없고
가로 세로 크기 지정으로 위해서 int 로 값을 만든것뿐이네요

생성 예)
CCGridSize gs = CCGridSize.ccg(4,5); 
입니다.  

Posted by 수다쟁이증후군 :

자자 거의 다와 가네요

이전 시간에는               

1.CCMenuItem 할 때 크기를 따로 지정한다
 item1.setScaleX(1.5f);

2.CCMenu 수직 수평 정렬할때 padding값을 주어서 간격을 
 조절한다. 

 
menu.alignItemsVertically(40);

 menu.alignItemsHorizontally(40);    

요거했네요 진짜 별거 없없죠 ㅎ
이번엔느 Layer3를 해보죠 이번에는 좀더 건질것이 많이 있기를 바라면서
전체 소스 한번 볼까요?

        

아 실망 스럽게도 메뉴 관련해서는 특이할만게 별로없고 다만 Action에 관한것 밖에 없에요 .            
두번째 강좌에서 이미  봤던내용의 반복입니다. 
CCAction 부분도 
기본개념 강좌 2
번째 강좌에서 다루었던내용이고  머 . .


CCJumpBy에대해서 상세하게 다루지 않았기에 간단히 정리 해봅시다.

CCIntervalAction jump = CCJumpBy.action(3.0f, CGPoint.ccp(400,0), 50, 4);

item2.runAction(                CCRepeatForever.action(CCSequence.actions(jump, jump.reverse())));
첫번째 파라미터는 시간
두번째 파라미터는 얼마만큼 이동할것 인가?
세번째 파라미터는 점프을 얼마만큼?
네번째 파라미터는 시간내에 몇번을 점프할것인가?
입니다. 

그리고 CCMenuItem 의 액션을 시행하는데
미리 지정한 점프액션과 그에 대한 역액션을 순서대로 무한반복해라 입니다.
진짜 별거 없죠 ㅎㅎ. 

콜백에서 참고할만 것이 있는가 보니 

disabledItem.setIsEnabled(!disabledItem.isEnabled());
disabledItem.stopAllActions(); 

요고 있네요 .
MenuItem 비 활성화와
해당 MenuItem의 액션을 정지 시키기
입니다.



그럼 Layer4로 바로 갈께요 .  아래는 전체 소스 보기 입니다.
 

오호 라 새로운것 하나 나왔습니다. 

바로 CCMenuItemToggle 입니다.  자자 가볼까요 ?
토글 말그대로 입니다. 2가지의 상태변화 입니다. 
A => B , B => A
입니다.  
CCMenuItemToggle item1 = CCMenuItemToggle.item(this,                                       "menuCallback",

                          CCMenuItemFont.item("On"),
                          CCMenuItemFont.item("Off")};
별거 없죠 
첫번째 파라미터 타겟 CCNode
두번째 파라미터는 콜백함수 
세번째와 네번째는 상태변화 될  MenuItem 입니다. 
상태변화도리 MenuItem은 몇개든지 추가 될수 있습니다. 

CCMenuItemToggle item1 = CCMenuItemToggle.item(this,                                       "menuCallback",

                          CCMenuItemFont.item("On"),
                          CCMenuItemFont.item("Off"),
                          CCMenuItemFont.item("On1"),
                          CCMenuItemFont.item("On2"),
                          CCMenuItemFont.item("On3"),
                          CCMenuItemFont.item("On4"),
                          CCMenuItemFont.item("On5"),
                          CCMenuItemFont.item("On6"),
                          CCMenuItemFont.item("On7"),
                          CCMenuItemFont.item("On8"),
                          CCMenuItemFont.item("On9")
};
이렇게 말이죠 메뉴아이템은 콜백과 별도로
상태변화MenuItem들을 순차적으로 변화시켜줍니다. 맨 끝으로 변화 되면 다시 첫번째가 나타납니다. 한마디로 루프죠 . 

다르게 추가 하는방법은
바로 아래에 나오는데요.
CCMenuItemToggle item4 = CCMenuItemToggle.item(this, "menuCallback", CCMenuItemFont.item("Off")); 

ArrayList<CCMenuItemFont> more_items = new ArrayList<CCMenuItemFont>();

            more_items.add(CCMenuItemFont.item("33%"));

            more_items.add(CCMenuItemFont.item("66%"));

            more_items.add(CCMenuItemFont.item("100%"));
item4.getSubItemsRef().addAll(more_items); 

ArrayList에 추가 해서 한번에 할당하기 입니다.간단하죠 .

한가지 추가로 MenuItemToggle이 첫번째 로딩될때 나올 순서를 미리 정할수 도 있는데 그건 아래와 같습니다.  
item4.setSelectedIndex(2);
이로써 기본적인것은 되었구요 . 

하나 재미난것이 있던데 메뉴 정리할때

CCMenu menu = CCMenu.menu(title1, title2, item1, item2, title3, title4, item3, item4, back); // 9 items.

menu.alignItemsInColumns(new int[]{2, 2, 2, 2, 1}); 

첫번째 라인에 순서대로 2개배치하고
2번째 라인에 그다음 2개를 배치하고
3번째 라인에 그다음 2개를 배치하고 
....

마지막은 1개를 배치합니다. 
이런식으로 배치합니다.  

다됐네요
메뉴관련해서는 별다른 내용이 없네요 다만 MenuItem의 선언부분만 잘체크한다면 별다른 어려움없이 정리 될듯합니다.

이로써 한개의 예제를 끝냈는데요 아직 저도 미숙하고 글적는 솜씨도 부족해서
의도가 잘전달 안됐을것도 같네요 .
다음 예제는 이번에 글적으면서 부족했던점을 좀더 보완하여 체계적으로 적어도록
노력하겟습니다. 다음 강좌도 많이 봐주세요  






 

              

                

                   

Posted by 수다쟁이증후군 :
자 이번엔.menuTest.java 의 마지막 시간이 될듯합니다. 

Layer2 클래스에 대해서 알아보죠  

아래는 전체 소스 입니다. 

 
결과 물입니다.  


첫번째는 가로 정렬 
두번째는 about버튼을 눌렀을때 나타나는 화면입니다.

간단히 이야기 하자면 메뉴 2개 만들어서 가로 정렬 해보고 세로정렬 해봤습니다. 
그럼 일단 메뉴2개를 만들어보죠 

public static final int kTagMenu = 1;

public Layer2() {

   super();

      for( int i=0;i < 2;i++ ) {

         CCMenuItemImage item1 = CCMenuItemImage.item("btn-play-normal.png", "btn-play-selected.png", this, "menuCallbackBack");

         CCMenuItemImage item2 = CCMenuItemImage.item("btn-highscores-normal.png", "btn-highscores-selected.png", this, "menuCallbackOpacity");

         CCMenuItemImage item3 = CCMenuItemImage.item("btn-about-normal.png", "btn-about-selected.png", this, "menuCallbackAlign");

  item1.setScaleX(1.5f);

         item2.setScaleY(0.5f);

         item3.setScaleX(0.5f);

         CCMenu menu = CCMenu.menu(item1, item2, item3); 

               menu.setTag(kTagMenu); 

               addChild(menu, 0, 100+i);

               centeredMenu = menu.getPosition();

        } 

     alignedH = true;

     alignMenusH();
}
생성자에서 만들었네요
CCMenuItemImage 를 이용해서 이미지버튼을 3개 만들고 
각 버튼의 크기를 셋팅합니다.
첫번째 CCMenuItemImage는 원래 사이즈에서 가로 1.5배 
두번째 CCMenuItemImage는 원래 사이즈에서 세로를 0.5배 
세번째 CCMenuItemImage는 원래 사이즈에서 가로 0.5배

이버튼들을 Menu에 넣었습니다. 그리고 수평정렬 함수를 호출합니다.
centeredMenu의 값은 ( 0 , 0 )  입니다 앵커의값이죠 
갤럭시 기준으로 하면 480 800  인니까 240 에 400 이 되겟네요 

------------------2011년 9월 10일 추가 내용 TAG--------------------
제가  이부분을 깝빡 했네요 

menu.setTag(kTagMenu); 
addChild(menu, 0, 100+i);
태그는 말그대로 꼬리표입니다.
안드로이드에서는 View클래스에 id 를 할당합니다.
그 아이디를 기반으로 R.java 클래스 변수로 등록되고 액티비티
어디에서든 접근 가능합니다.

그럼 cocos2d에 대한 구분자는 어떻게 할까요 ?
바로 TAG입니다  

안드로이드 id는  유일한 값입니다 이는 어플리케이션 package에서 관리
하기때문입니다.
그럼 cocos2d에서는 tag는 어디서 관리할까요?
바로 자기 자신이 관리 합니다. 
그럼 으로서 활용방법은 2가지 입니다. 
Node의 독립성을 확보하기 위해 각기 고유 코드값으로 줄수도 있고
분류를 위한  비슷한 역활을 하는 Node들에서 공통의 값을 줄수도 있습니다.(2011년 9월 26일 수정)

바로 부모 CCNode에서 관리합니다.

결국 이말은 부모만 다르다면 같은 TAG 값을 가져도 됩니다. 이명제의 대우는 무엇일까요? 
같은 부모를 가지는 CCNode는 서로 다른 값을 가져야 한다는 말과 같습니다. 즉 유니크 해야 한다는거죠 ㅎㅎㅎ
Tag에 대해서 간단히 살펴 보았습니다.

헷살리는 분이 있으시면 댓글로^^;

-------------------------------------------------------------



자그럼 수평정렬 함수를 확인해보겟습니다.

public void alignMenusH() {

    for(int i=0;i<2;i++) {

       CCMenu menu = (CCMenu) getChildByTag(100+i);

       menu.setPosition(centeredMenu);

       if(i==0) {

           // TIP: if no padding, padding = 5

           menu.alignItemsHorizontally();              

           final CGPoint p = menu.getPositionRef();

           menu.setPosition(CGPoint.ccpAdd(p, CGPoint.ccp(0,30)));

       } else {

           // TIP: but padding is configurable

           menu.alignItemsHorizontally(40);

           final CGPoint p = menu.getPositionRef();

           menu.setPosition(CGPoint.ccpSub(p, CGPoint.ccp(0,30)));

       }

   }
}

메뉴를 불러와서 하나는 CCMenu 에 있는 MenuItem 간의 간격이 을 결정합니다. 
디폴트로 5가 삽입되어있구요  밑에는 40이라는 상수 값을 주었네요 .
menu.setPosition(CGPoint.ccpAdd(p, CGPoint.ccp(0,30)));
menu.setPosition(CGPoint.ccpSub(p, CGPoint.ccp(0,30))); 

그리고 위에는 센터에서 y좌표값이 +30 이니까 화면에서 위로 올라 가겟고 
아래는 센터에서 30 내려 가는 것이니까 화면에서 내려 가겟네요 ^^;


수직정렬도 이와 거의 똑같습니다. 
 public void alignMenusV() {

    for(int i=0;i<2;i++) {

       CCMenu menu = (CCMenu) getChildByTag(100+i);

       menu.setPosition(centeredMenu);

       if(i==0) {

           // TIP: if no padding, padding = 5

           menu.alignItemsVertically();              

           final CGPoint p = menu.getPositionRef();

           menu.setPosition(CGPoint.ccpAdd(p, CGPoint.ccp(100,0)));

       else {

           // TIP: but padding is configurable

           menu.alignItemsVertically(40);

           final CGPoint p = menu.getPositionRef();

           menu.setPosition(CGPoint.ccpSub(p, CGPoint.ccp(100,0)));

       }

   }
}

 이정도야 머 쉽죠이 ㅎ.ㅎ 

자 마지막으로  콜백에서 볼만한게 있는지 확인해볼까요?

public void menuCallbackBack (Object sender) {

     ((CCMultiplexLayer)getParent()).switchTo(0);

}
이거는 이미 한번 했고 레이서 순서 바꾸기 


public void menuCallbackOpacity (Object sender) {

     CCMenuItem item = (CCMenuItem)sender;

     CCMenu menu = (CCMenu)item.getParent();

     int opacity = menu.getOpacity();

     if (opacity == 128)

         menu.setOpacity((byte) 255);

     else

         menu.setOpacity((byte) 128);     
}
opacity 는 불투명도는 나타내죠 그런데 255로 변화 시키니까 아에 안보이고
이벤트도 안먹네요  흠... 이벤트 안먹히고 이건 따로 한번 알아 볼께요 
사라지는것 까지는 이해 했는데 이벤트라 ... 아시는분 댓글좀^^;; 

public void menuCallbackAlign (Object sender) {

     alignedH = ! alignedH;

     if( alignedH )

         alignMenusH();

     else

         alignMenusV();

}
기건머 2말 할필요없죠 ^^





자 그럼 여기까지가 . Layer2엿습니다.


여기서 새롭게 알게 된거는

1.
CCMenuItem 할 때 크기를 따로 지정한다

 item1.setScaleX(1.5f);

2.CCNode 의 TAG
 CCNode는 자식간의 구별과 접근 용이성을 높이기 위해 TAG을 할당한다. 입니다. 

3.CCMenu 수직 수평 정렬할때 padding값을 주어서 간격을
 조절한다.

 menu.alignItemsVertically(40);
 menu.alignItemsHorizontally(40);

딸랑 요거 하나네요 .

Posted by 수다쟁이증후군 :
쏘스를 하나 하나 씹어 먹어 봅시다 . 
일단.  먼저 할것은 Menu 관련 입니다. 
경로는 org.cocos2d.tests 패키지에 MenuTest.class 입니다.  
 @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE); 

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

        mGLSurfaceView = new CCGLSurfaceView(this);

        setContentView(mGLSurfaceView);

    }
 

requestWindowFeature(Window.
FEATURE_NO_TITLE);
==>타이틀바 를 삭제 합니다. 

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                WindowManager.LayoutParams.FLAG_FULLSCREEN);
==>상태바 (안테나 뜨는 부분을 삭제합니다) 

mGLSurfaceView = new CCGLSurfaceView(this);
setContentView(mGLSurfaceView);
==>CCGLSurfaceView 클래스 GLSurfaceView 를 상속합니다. 
여기에 대해서 말할거리는 정말 많죠 그러나 일단은 성능 좋은 이미지뷰를 화면에
생성 한다 라고 만 알아둡시다 . 추후에 여기에 대해서 장기간에 걸쳐서 강좌를
진행해보겟습니다.  

onCreate() 부분을 간단히 요약하자만 cocos2d를 사용하기 위해서 
View 하나 생성 했다 입니다. 물론 전체 화면이니 나발이니 하는것은
하나의 옵션입니다. 이로써 준비는 끝났습니다. 실제 코드에 슬슬 들어 가보죠  

다음 라이프 싸이클에 따라 

@Override

    public void onStart() {

        super.onStart(); 

        // attach the OpenGL view to a window

        CCDirector.sharedDirector().attachInView(mGLSurfaceView); 

        // set landscape mode

        CCDirector.sharedDirector().setLandscape(false); 

        // show FPS

        CCDirector.sharedDirector().setDisplayFPS(true); 

        // frames per second

        CCDirector.sharedDirector().setAnimationInterval(1.0f / 60); 

        CCScene scene = CCScene.node(); 

        CCMultiplexLayer layer = CCMultiplexLayer.node(new Layer1(),

                                    new Layer2(), new Layer3(), new Layer4());

        scene.addChild(layer, 0);

        CCDirector.sharedDirector().runWithScene(scene);

    }

주석이 참 친절하게 잘되어있네요 . 
CCDirector.sharedDirector().attachInView(mGLSurfaceView);
이전강좌에서 CCDirector의 개념을 잠시 언급한적이 있죠 감독이며 자혼자 뿐이라고 
싱글스톤 입니다. CCDirecto 레퍼런스 변수 생성방법이 바로 요헐게 
CCDirector.sharedDirector() 입니다. 그리고 난후에 위의 onCreate에서 생성했던 성능 좋은 이미지뷰를 감독에게 넘겨줍니다. 전권 위임입니다.  

자그럼 프로그래머 입장에서 보면 감독을 한놈 정하고 그놈에서 전권을 맡긴 것이죠.
코드한줄에 주석이빠이 ㅎ. ㅎㅎ 

CCDirector.sharedDirector().setLandscape(false);
이부분은 감독에서 세로모드로 영화를 찍어라고 하는겁니다
인자값이 true면 당연히 가로 16:9 와이드로 영화를 찍어라고 하는것이죠. 근데 막상 감독이라고 해놓고 보니 아직은 지혼자 할 줄 아는게 없네요 프로그래머가 일일이 지시해야 하고 에휴~~ 이래서 머리 좋은 시다바리를 둬야 한다는 거죠 . ㅎ 자자 각설하고 
다음줄 

CCDirector.sharedDirector().setDisplayFPS(true);
화면 귀퉁이 FPS를 숫자로 보여 줄것인가 말것인가를 감독에게 시킵니다. FPS는 초당 프레임수 초당 화면 갱신을 몇번하는가를 말합니다. 그러면 초당 몇번 보여라고 지정하는부분도 있겟죠 그게 바로 다음줄 
 

CCDirector.sharedDirector().setAnimationInterval(1.0f / 60);
입니다. CCAction 기초강좌 에서도 보았듯이 cocos2d의 시간 단위는 1초입니다.
변수 타입은 float 입니다. 그러니까 1.0f는 1초 0.5f는 0.5초 입니다. 이를
60으로 나누었으니 초당 60번의 화면 갱신이 일어나게끔 한다는것입니다. 일반적인
에니메이션은 24프레임이고 디즈니가 36프레임인가로 알고 있는데 상당히 부드럽자나요 .
그것보다 더 부드럽게 움직이라고 하는겁니다.  실제 화면구동에서는 이보다 속도가 안나올수도있습니다 많이 내려갈때는 30프레임 까지 내려가더군요 . 그래도 상당히 아니 매우 빠른속도니까 화면의 대상은 부드럽게 움직입니다.  

CCScene scene = CCScene.node();
드디어 이제 시작인가요 .ㅎ ㅎ 여기서 강좌끝내버리면 낚시겟죠 ㅎㅎ.
CCScene 인스턴스를 생성하는 방법입니다. 참쉽죠 
CCScene.node();이렇게 클래스명적고 .node()라고 하면 되니까 ㅎ 
이렇게 선언하면됩니다. 


CCMultiplexLayer layer = CCMultiplexLayer.node(new Layer1(),

                            new Layer2(), new Layer3(), newLayer4());

입니다. 레이어 선언이네요 CCLayer를 상속한  CCMultiplexLyer
이름도 거창한 멀티플렉스 전부 아시죠 멀티플렉스영화관 영화관은 영화관인데 기본의 상영관이 1개인 영화관은 한건물에 때려넣은 영화관!

자기 이름도 영화관이면서 안에 1개짜리 영화관을 때려넣고 앞에 멀티플렉스라고 명명한
건물. 여기서도 동일하게 적용됩니다. CCLayer클래스인데 안에 멤버변수(ArryList)로 다른 CCLayer를 담을수 있는 이름도 거창한. CCMultiplexLayer 입니다. 
그러고 보니까 안쪽에 레이어를 쳐담고 있죠 new로 생성해서요 . 

" 어라 cocos2d에 Layer1()이란 클래스가 있었나 ?" 라는 궁긍증일어나겟죠  
결론적으로 없습니다, 걍 다음 소스에서 도 나오겟지만. 예제 만든사람이  CCLaer클래스를 상속하여 만든것뿐입니다. 오해가 없으시길. 

scene.addChild(layer, 0);

CCDirector.sharedDirector().runWithScene(scene);

어라 이제까지 우리가 만들어 놓은 걸 담고 있네요 . 이는 기본강좌 에도 나와 있지만. ^^ (거의 중간 광고 수준이네요 ㅋㅋㅋ 한번쯤 읽어 보라는 압력. ㄷㄷ ) 
CCDirector는 CCScene를 담을수 있고  
CCSecen은 CCLayer를 담을수 있고
CCLayer는 CCSplite를 담을수 있습니다. 

담는 방법은 위에 나와 있습니다.
scene.addChild(layer, 0);==>CCSecen은 CCLayer를 담을수 있고
CCDirector.sharedDirector().runWithScene(scene);==>CCDirector는 CCScene를 담을수 있고
입니다. add든 runWithScene든 결과는 담는 겁니다. 

자이제 화면이 ON 되었습니다. 
그럼 이제 화면이 어떻게 움직일까요? 우리가 보았듯이 이름만 거창한 멀플렉스레이어가 실제 우리 눈에 보이는 부분입니다.
그럼 이놈을 분석해보면 화면이 어떻게 돌아 가는지 알수 있겟죠 ㅎㅎ;


일단 중간 정리 한번하고 가죠 . 
OnCreate()에서 한일은 
1.전체화면 만들기 
2.성능좋은 이미지뷰 생성하기

OnStart()에서 한일은. 
1. 감독을 만들어 성능 좋은이미지 뷰랑 연결해주기 
2. 가로모드 세로모드 결정
3. FPS 정해주기 
4. CCScene와 CCLayer를 생성
5. 그릇 순서에 따라 담기 . 

자 ~~ 기본적인 것 정리는 다됐고  슬슬 또 진행해봅시다.


글중 에 잘못된 부분있다면 이야기 해주세요; ㅎㅎ 

Posted by 수다쟁이증후군 :

저번 정리에서는 CCNode에 대해서 알아 봤는데요 그놈이 대충 먼지알았으니까 그놈에 속성을 변경시키는 CCAction에 대해서 알아봅시다.

 

음 본격적으로 알아 보기전에 액션관련 클래스는 얼마나 몇 개나 있을까 하는 궁금함이 들어서확인해봤습니다.


관련 패키지만 8 클래스는 113 .  이런 씨부.~~~진짜 많네


org.cocos2d.actions  (5
)

org.cocos2d. base (5

org.cocos2d.actions. camera (2)

org.cocos2d.actions. ease (22)

org.cocos2d.actions. grid (17)

org.cocos2d.actions. instant(10)

org.cocos2d.actions. interval(28)

org.cocos2d.actions. tile(14)


더럽게 많네요  ㄷㄷ
자 그럼 본격적으로 가보죠 

위에 분류는 패키지별 분류입니다.

홈피에서는 분류는 속성을 기준으로 하여 분류해놓았더군요.

§  position

§  CCMoveBy

§  CCMoveTo

§  CCJumpBy

§  CCJumpTo

§  CCBezierBy

§  CCBezierTo

§  CCPlace

§  scale

§  CCScaleBy

§  CCScaleTo

§  rotation

§  CCRotateBy

§  CCRotateTo

§  visible

§  CCShow

§  CCHide

§  CCBlink

§  CCToggleVisibility

§  opacity

§  CCFadeIn

§  CCFadeOut

§  CCFadeTo

§  r, g, b

§  CCTintBy

§  CCTintTo

 

그럼 가장 첫번째 있는 position 속성을 변화 시키는 CCMoveBy 클래스를 보도록 하겟습니다.

기본액션 이라길래 org.cocos2d. base (5)에 있는줄 알고 차아 보니까 없더군요.. 머지 했습니다 그래서 다시 살펴보니 .
org.cocos2d.actions. interval(28
) 패키지에 있었습니다. 이것도 머지 했죠 . 머지 머지 ? 인터발 이면 시간인데.. 아하 위치 변경할 때도 시간을 줄수 있구나 . 오호 ~~~ 이런 세심한 배려까지 . ㄷㄷ 그래서나머지 부분들도 찾아 보았습니다. 결론은 basic Action중에서 

§  CCPlace

§  CCShow

§   CCHide   

§ CCToggleVisibility

요기 4가지는 org.cocos2d.actions.instant(10)있었습니다. 인스턴스는 일회적이란는 말인데 음....일회적 아니 빠른 순간적 이라는 말인가 ?
그럼
시간속성이 없다라는 말은 순간적으로 이루어 진다 시작 ~ ! 하면 바로 끝난다. 해서

CCInstantAction 

간단하죠 ㅎㅎㅎ 그렇다는 말은 홈피에서 말하는 기본액션중
위에 4가지만 쓰는 방법(함수형식) 다르고 나머지 들은 거의 같다 라는 이상한 결론이 도출되네요 .

그럼 실제로 비슷한지 코드를 한번 볼까요?  

CCMoveTo actionTo = CCMoveTo.action(2, CGPoint.ccp(s.width-40, s.height-40));
CCMoveBy actionBy = CCMoveBy.action(2, CGPoint.ccp(80,80));
CCJumpTo actionTo = CCJumpTo.action(2, CGPoint.ccp(300,300), 50, 4);

CCJumpBy actionBy = CCJumpBy.action(2, CGPoint.ccp(300,0), 50, 4);



CCBezierConfig bezier =
new CCBezierConfig();

bezier.controlPoint_1 = CGPoint.ccp(0, s.height/2);

bezier.controlPoint_2 = CGPoint.ccp(300, -s.height/2);

bezier.endPosition = CGPoint.ccp(300,100);

CCBezierBy bezierForward = CCBezierBy.action(3, bezier);

CCBezierConfig bezier2 = new CCBezierConfig();

bezier2.controlPoint_1 = CGPoint.ccp(100, s.height/2);

bezier2.controlPoint_2 = CGPoint.ccp(200, -s.height/2);

bezier2.endPosition = CGPoint.ccp(240,160);

CCBezierTo bezierTo1 = CCBezierTo.action(2, bezier2);

 

CCScaleTo actionTo = CCScaleTo.action(2, 0.5f);

CCScaleBy actionBy = CCScaleBy.action(2, 2);


CCRotateTo actionTo = CCRotateTo.action(2, 45);

CCRotateBy actionBy = CCRotateBy.action(2, 360);


CCBlink action1 = CCBlink.action(2, 10);

CCFadeIn action1 = CCFadeIn.action(1.0f);

CCFadeOut action1Back = action1.reverse();

CCFadeOut action2 = CCFadeOut.action(1.0f);

CCFadeIn action2Back = action2.reverse();

CCFadeTo action1= CCFadeTo.action1 (2, 3)


CCTintTo action1 = CCTintTo.action(2, ccColor3B.ccc3(255, 0, 255));

CCTintBy action2 = CCTintBy.action(2, ccColor3B.ccc3(-127, -255, -127));

 

오호 비슷하네요 파라미터로 2개를 가지구요.

첫번째는 시간관련 (참고로 데이터 형은 float )이구요

두번째 파라미터는 각속성과 관련된 변수(레퍼런스)들 입니다 

 

이렇게 보니까 간단하게 보이는건 저뿐인가요 ^^;; 아 참고로 한가지 더

시간 관련 파라미터의 단위는 (첫번째 파라미터) “ 입니다.

1 이라고 있으면 1초이고 0.5 0.5초입니다.

 

자그럼 시간이 포함된 기본액션 클래스들을 보았으니 시간 변수가 표함 기본액션들을 살펴 보겟습니다.시간이 포함안되어있으니까 시간 관련 파라미터는 없겟고 기본액션이니까 하나의 속성을 변화 시키는거니까 음.. 그럼 파라미터는 한 개 겟네 ? 라고 생각할수 있습니다.  과련 맞을까요?


그럼 살펴봅시다
.

CCPlace.action(CGPoint.ccp(200,200))

CCShow.action()

CCHide hide = CCHide.action();

CCToggleVisibility tog1 = CCToggleVisibility.action();

 

어라 CCPlace 말고는 파라미터가 없네요 . 이런젠장.

Show Hide로 묶으면 파라미터 하라고 주고 보여줄지 말지를 묶을수 있는데 ㅠ 그러면

ToggleVisibility 묶을수도 있었는데 ㅠㅠ 예상이 빛나가버렸네요 .

이건 cocos2d 있는 코드니까 예측이 빛나갔더라고 실망하지말자궁 ㅠㅠ. 그래도 반은 대충 맞추었자나요 ㅠㅠ  아그러고 보니 jump 인자값이 4개네요 시간 포지션 간격 횟수

이정도 ㅠㅠ아 젠장 페이드인이랑 페이드 아웃도 인자 값이 하나네요ㅠㅠ. 가만히 생각해보니까 인자 하나만 있으면 되네요. 어차피 사라질꺼 시간만 있으면 되는거였네요 . 생각보다 많이 빗나가는뎁쇼 ㅈㅅ. ㅠㅠ

 

 

.. 한가지 중요한 것을 빼먹었네요. 클래스 뒤에 By To 의미가 먼지 궁금하실수도 있겟네요. 이건 바로 절대값 상대값 차이입니다.

By = 상대적 개념
To = 절대적 개념


절대값이라
하면 기준을 0으로 한거구요 위치면 0,0이겟고  회전은 0 scale 이미지 기본사이즈에서 얼마만큼 커지던지 작아 지던지가 되게네요.

그럼 상대값은 준을 자기 자기 위치면 현재위치 회전은 현재 회전된 값부터 scale 조금 애매하긴하네 .
 
 

그리고 재밌는 것은 By To 상속해서 만들었다는 것입니다. 잘생각 해보면 To 기분 이미지정해져 있다는 것뿐이지 실제적인  처리는 By 같다는 거죠 . 다시 말해서

절대적이함은 절대적 기준은 가진다는 결국 기본값이 정해져있다라는 말고 동일하죠 .이걸 디폴트라고 하죠 ㅎㅎ. 이제 어느정도 정리가 되어 가나요?

 

 

마지막으로 cocos2d에서 재밌는 기능을 가진 것이 있네요.

바로 reverse 액션 현재 까지 변화시킨 속성을 반대로 되돌린다 것인데도 쓰는 법도 간단합니다.

action 클래스 변수에 대고 점하나 찍고 reverse라고 써주기만 하면됩니다.  

 

CCFadeOut action2 = CCFadeOut.action(1.0f);

CCFadeIn action2Back = action2.reverse();

 

이렇게요 . ㅋㅋ 쉽죠 ㅎ 

 이로써  기본 액션 Base Action에 대해서 정리 되었습니다.


자 마무리하자면
Action Node의 속성을 변화 시키는 것이다. 그리고

그 속성별로 액션을 구체화 하여 각족 Action 파생클래스를 만들어 쓰기 쉽게 만든것이다.

라고 하면 될까요 ㅎㅎ

 

자 이제 액션을 사용할 Node를 어떻게 선언하는지만 알면 실제 액션 사용 코드를 볼수 있겟네요. ㅎㅎㅎ 

오호 ~~` 그런데 기왕 액션에 온거 단일액션만 보지말고 액션조합 어떻게 하는지 보고 갈까요?


그럼 이제 우리가 알아 보았던 액션들을
  결합해봅시다.

액션을 순차적으로 진행 할수 있고

액션을 모아서 한번에 같이 진행할수 있고 . 

그리고 이런 것들을 몇번이나 반복할것인지 한번 ? 두번? 세번? 무한히?

그것들이 바로

§  Sequence action

§  Spawn action

§  Repeat action

§  RepeatForever action

입니다.

CCSequence  이렇게 사용합니다.

CCMoveBy move_tamara = CCMoveBy.action(1, CGPoint.ccp(100,0));

CCMoveBy move_tamara2 = CCMoveBy.action(1, CGPoint.ccp(50,0));

CCHide hide = CCHide.action();

CCSequence seq_tamara = CCSequence.actions(move_tamara, hide, move_tamara2);

 

CCSpawn 요렇게 사용하구요

CCAction action = CCSpawn.actions(

CCJumpBy.action(2, CGPoint.ccp(300,0), 50, 4),

CCRotateBy.action(2, 720));

CCRepeat 이러구요

CCRotateTo act1 = CCRotateTo.action(1, 90);

CCRotateTo act2 = CCRotateTo.action(1, 0);

CCSequence seq = CCSequence.actions(act1, act2);

CCRepeat rep2 = CCRepeat.action(seq, 10);


CCRepeatForever 도 있네요  
CCRepeatForever rep1 = CCRepeatForever.
action(seq);

 

추가로 액션의 복사 copy() 있습니다.

CCMoveBy a1 = CCMoveBy.action(1, CGPoint.ccp(150,0));

CCRepeatForever action2 = CCRepeatForever.action(

                           CCSequence.actions( a1.copy(), a1.reverse()));

 

이까지가 기본적인 액션에 대한 이해 였습니다.

자자 이제 슬슬 CCNode 선언 하러 가볼까요

Posted by 수다쟁이증후군 :


액션에 대해서 본격적인 작업이 진행 되네요.
공식 홈페이지에 이렇게 정의 되어 있습니다.


-Action이란-
 

액션은  CCNode 오브젝트에 명령을 내리는 것과 같습니다
보통 position, rotation, scale 등과 같이 객체의 속성을 변경합니다. 

근데 여기서 문제점. CCNode가 무엇인지를 모른다는 거죠  객체의 속성을 바꾼다라는 말이다 이해할수있으니 . 다른말로 풀자면 CCNode 오브젝트의 속성을 변경시키는행위(코드,API)를 말한다라고 할수 있습니다
그러나 여전히 CCNode가 모르긴 마찬가지네요

 

그래서 검색 cocos2d소스를 보니

org.cocos2d.nodes 패키지안에 있더군요.

 


그럼
 CCNode 가보겟습니다

CCNode mainelement로써 대부분 클래스의 최상위 클래스 라네요 java 에서 object클래스와유사 한듯 보입니다. 

물론 CCNode object 클래스를상속받지만정확히 하자는 것이 아니라 개념적으로 최상위 클래스 라는 이야기를 하고자 한말입니다.

CCNode 클래스는 최상위 클래스 이다 라는 말은 클래스적인 측면측면 봤을 때 하는 이야기 이고 그럼 이놈이 도대체 어던놈인가에 대한 물음은 여전히 남네요.

 
 

그래서 CCNode 클래스 설명을 다시 보게되네요.

Anything thats gets drawn or contains things that get drawn is a CCNode.
(화면에 그려지거나)  (그려지는 것을 포함하는 것 CCNode 이다. 

그려지는 건 머 글자나 이미지 이런것이겟고 이런 것을 포함하는게레이어 니까(이해가 안되신다면 이전강의를 참고-클릭하시면 새창으로 볼수 있습니다.  )
 

CCSplite 클래스와CCLayer 클래스를 상속하는 모든 클래스 가CCNode이다.(이말은 oop에서 is a 관계네요작가는 사람이다작자는 하위클래스 사람은 상위클래스)

2개를 합치면 화면에 그려지는 것들과 그것을 포함하는 것은 CCNode클래스를상속한다 이네요.(영어 한줄에 대한 주석이 몇줄이니 ㅠㅠ)


이정도면 감을 잡으셨을라나
  ㅎㅎ  우리가 화면에 그려지는 것을 좀더 깔끔하고 쉽게 하기위해서 cocos2d를 쓰는 것이니까 이제 대해서 좀더 상세히 살펴볼필요가 있겟네요.

CCNode 클래스위 주요특징 3가지

1.-1

They can contain other CCNode nodes (addChild, getChildByTag, removeChild, etc)

CCNode는 다른 CCNode를 포함할수 있다. 당연한 말이죠 정의에서 이미 화면에 그려지는것과 그것을 담을수 있는 것이CCNode 라고 했으니까 그러니까 패스

1-2.

They can schedule periodic callback (schedule,unschedule, etc)
주기적으로 콜백 호출할수 있다 

이말은  타이머네요여기서 콜백은 내부적으로

CCScheduler 클래스가 관리합니다. 소스를 하나 하나 따라 들어가면좋겟지만 일단 개념만 잡읍시다. cocos2d 사용하는게 편하자고 하는거지 이걸공부하자고 하는건 아니자나요너무 깊게 파고 들어가면 주객이 전도 되어 버릴듯하네요물론 잘사용하기 위해서는 내부적으로어떻어 돌아가는 것을 알면좋지만 말입니다이는 나중에 시간되는 대로 소스 분석해서 봅시다아니면 궁금하면 질문해주세요제가 분석가능한내로 설명해드릴께요일단 일정시간마다 특정행동을 할수 있다 이정도만 합시다.

1-3.

They can execute actions (runAction, stopAction, etc)

액션을 실행시킬수 있다 . 이제야 글의 제목과 관련있는 부분이 나오네요. action node와의 관계 ㅎㅎㅎ 요기서 지금까지 알수있는 내용만으로 정리 한번 하자면 
액션은 Node의 속성을 변화 시키고 그 시작은 Node가 한다. 이말은 액션변수를 파라미터로 하는 호출함수가 있다 또는 Node에 액션 변수가 있고 자신이 가지고 있는 액션을 시작하는 함수가 있다.  

 

그럼 CCAction CCNode의 속성을변경한다는건데 그 속성이 먼지도 모르는데 어떻게 CCAction을 파악할수 있다는건지 . ㅎㅎ

 

그럼 이제 속성에 대해서 알아봅시다몇가지 있느냐 하면 

- position
- scale (x, y)
- skew (x by degrees, y by degrees)
- rotation (in degrees, clockwise)
- CCCamera (an interface to gluLookAt )
- CCGridBase (to do mesh transformations)
- anchor point
- size
- visible
- z-order
- openGL z position


이렇게 11가지 있습니다.

위치 ,크기,기울기,회전각,카메라,메쉬를 위한그리드베이스 ,축 위치,크기,보여줄것인가 말것인가,레이어 순서 ,그리고 좀 이해안되는 z-position 이거는3D 개념인데 왜있는거지 . ㄷㄷㄷ

근데 메쉬가 머야 그리드는 격자무늬인데 이게왜 메쉬란놈이랑 연관되는거야 ?그리고 scale size의 차이점은 머지 이런 궁금증이 있을겁니다.
자도 궁금하네요 이게 도대체 멀까요  ㅎㅎㅎ일단은 

위에궁금한 사항들을 제외한 나머지 속성들은 CCNode 클래스 정의를다시 생각해보면 충분히 이해가 가리라 생각합니다

화면에 그려지는것과 그것을 포함하는것 화면에 어디에 그려그려질 것인가
?원래 크기를 줄일것인가 말것인가?이미지 좀기울이면안되나시계방향으로 좀회전시킬가회전시킬때상단 맨위위를 기준으로 할까 아니면 중앙을 기분으로 할까이런게 변화된 이미지를 보여줘야하나 ? 잠시 빼버릴까최상위레이어를 배경으로 쓰면 어떨까등등

화면에 그려지는 것에 대한 속성들을 모두 정리 해놓았습니다. 

대충 CCNode가 먼지  감이 오나요?  ㅎㅎㅎ
설명이 개떡 같아서 헷갈릴지도 모르지만헷갈리는건 질문해주세요 ㅎㅎ
 
 

그외에 CCNode의 프로그래밍적 측면을 위한 문구가 있더군요.

Some CCNode nodes provide extra functionality for them or their children.

Subclassing a CCNode usually means (one/all) of:
- overriding init to initialize resources and
schedule
callbacks
- create callbacks to handle the advancement of time
- overriding draw to render the node 


이런거라던지.

Order in transformations with grid disabled
 -# The node will be translated (position)
 -# The node will be rotated (rotation)
 -# The node will be skewed (skew)
 -# The node will be scaled (scale)
 -# The node will be moved according to the camera         values (camera)

 

 Order in transformations with grid enabled
 -# The node will be translated (position)
 -# The node will be rotated (rotation)
 -# The node will be skewed (skew)
 -# The node will be scaled (scale)
 -# The grid will capture the screen
 -# The node will be moved according to the camera         values (camera)
 -# The grid will render the captured screen

 

요런거 실제 프로그래밍 하면 이런게 더 와닿을지도 모릅니다다만이건 음..머랄까 일조의 tip이라고 생각합니다 물론 여기에대해서도 다룰겁니다그러나 아직은 개념 잡기 위한거니 다음 예제를 직접 보면서 할수 있을 때 정리해보도록하겟습니다.


~~ CCAction
을 알아볼라고했는데 어떻게 CCNode에 대해서 알아보았네요 .근데 무엇에 대한 action인지 에 대해서 모른다면 충분히 사용할수 없다라는 생각에 이렇게 장문의 글이 되고 말았네요.   잊지말것은 화면에 그려지는것과 그것을포함하는 것은 CCNode 를 상속한다입니다.

Posted by 수다쟁이증후군 :

코코스 홈페이지에 가면 정말 정리를 잘해놓았습니다.

따로 이렇게 강좌를 적을 필요도 없지만제가 이해한 것을 바탕으로

하나하나 다시 풀어 가보려 합니다.

 

게임개발에 대해서 저 처럼 처음인 사람들을 위해서 일단 용어 정리부터 해보려 합니다.

 

1.   sprite
스프라이트 별거 없습니다 그냥 이미지입니다단지 용어가 익숙하지 않을뿐다시 반복하자면 에스. 알아이 s p r i t e  
스프라이트.  2D 이미지 간단히 사진이라 그림,글자 그림 이라고 생각하시면 됩니다이는 물론 이동 회전 크기 Action(에니메이션)을 적용가능한니다한마디로 사진을 밀었다 땡겻다 돌렸다 뒤집었다 할수 있다는 말이죠

2.   Layer 
두번째로 할 것은 레이어 입니다레이어는간단히 종이 한장입니다물론 이 종이는 투명한 비닐 종이 일수도 있도 시커먼 먹지일수 도 있으며 새하얀 종이 일수도 있습니다여기 이 종이 위에 사진을 붙일수 있겟죠 즉 위에 서 설명한  . 를 레이어 위에 배치할수 있다는 거죠  즉 레이어는 스프라이트를 포함한다라고 정의해보겟습니다공식페이지서 설명한대로 게임 작업은 여기서 대부분에 시간을 보내게 됩니다.

3.   Scene
 
그리고 3번째로 장면이라고 해석해놓은 scene !!
Scene는 바로 레이어를 담는 그릇입니다.  

하나의 scene에 하나의 레이어도 올수 있고 다수의 레이어가 올라 갈수도 있습니다.  


     지금까지의  배용을 정리하면 
스프라이트는 레이어에 포함되고 레이어는
 Scene에 포함된다 라고 할 수 있습니다.

 

4.   Director 
자 마지막으로 디렉터는 간단하게 Scene를관리합니다scene 뒤에는 다음 씬이 나오고  다음 씬나오면 그다음씬 나오고 어라 생각해보나까 역순으로 돌리는 게 낮겟네  해서 씬순서 바꾸고 … 한마디로감독이죠 그리고 영화에서 감독은 한명입니다. cocos2D에서도 
디렉터는 하나분입니다프로그램 디자인에서 말하는 싱글톤.~~~

 

자 여기까지가 기본 개념입니다이제 세부 적으로들어가 봅시다물론 다음 강좌에서ㅎㅎ  아직 내용이 좀 허접합니다. ㅎ
Posted by 수다쟁이증후군 :

카오스 플레이어 템트리 입니다. 

기존 3가지 어플은 텍스트가 많은데 이와 달리 카오스 플레이어는 

 UI 즉 이미지에 중점을 두었습니다

템트리를 볼 케릭터 선택부터 간단한 화면 이미지를 이용했기 때문에 

초보분들이 " 그케릭 이름머였더라 ?" 하는 경우는 없을겁니다. 

그리고 템트리를 볼때도 이름이랑 게임상에 아이템이랑 매칭이 안되어 하나하나

마우스 올려서 확인하던 불편함을 알기에 템트리도 이미지 기반입니다. 


터치로 좌우로 움직이면 단계별 아이템트리를 볼수 있습니다. 


마지막으로 초보분들이 가장 헷갈리는 언제 크립이 나타나는지를 

시간별로 지도에 표시 할수 있게끔 해놓았습니다. 


1랩 2랩 3랩은 파란색으로 표시되고 

4랩 5랩 은 노란색으로 

6랩 7랩 8랩 은 빨간색으로 표시 됩니다. 

또한 크립 리젠 5초전에 일림(진동)을 하고

카운트다운을 시작하여 크립젠지역으로 이동할 준비를 할수 있습니다. 




또한 게임중간에 시간을 설정하실수 있습니다



'카오스 관련(초맨)' 카테고리의 다른 글

카오스 템트리 어플리케이션  (0) 2011.08.30
Posted by 수다쟁이증후군 :

카오스 플레이어 입니다. 

현재에 카오스 템트리 보기의 안드로이드 어플 이 몇가지 있습니다. 

안드로이드 마켓에서 "카오스" 라고 검색 하면 





위와 같이 나온느데요 . 

템트리 관련된 어플은 카오스 정보, 카오스 템트리(나엘),카오스 헬퍼, 카오스 플레이어 템트리

이렇게 입니다.

각 어플마다  차이가 있고 개인마다 호불호가 갈리지만. 


이번에 소개 해드리는것은 

카오스 플레이어 템트리 입니다. 

기존 3가지 어플은 텍스트가 많은데 이와 달리 카오스 플레이어는 

 UI 즉 이미지에 중점을 두었습니다

템트리를 볼 케릭터 선택부터 간단한 화면 이미지를 이용했기 때문에 

초보분들이 " 그케릭 이름머였더라 ?" 하는 경우는 없을겁니다. 

그리고 템트리를 볼때도 이름이랑 게임상에 아이템이랑 매칭이 안되어 하나하나

마우스 올려서 확인하던 불편함을 알기에 템트리도 이미지 기반입니다. 


터치로 좌우로 움직이면 단계별 아이템트리를 볼수 있습니다. 


마지막으로 초보분들이 가장 헷갈리는 언제 크립이 나타나는지를 

시간별로 지도에 표시 할수 있게끔 해놓았습니다. 


1랩 2랩 3랩은 파란색으로 표시되고 

4랩 5랩 은 노란색으로 

6랩 7랩 8랩 은 빨간색으로 표시 됩니다. 



또한 크립 리젠 5초전에 일림(진동)을 하고

카운트다운을 시작하여 크립젠지역으로 이동할 준비를 할수 있습니다. 


Posted by 수다쟁이증후군 :
앞전에 이야기 올렸던 토익 part2 공부법(토익 LC) 에서
간단한 팁으로 절반도 못맞추던 제가 25개 정도까지 맞추었습니다.

하지만 그방법으로는 나머지5개는 물론이고 part3와 part4에 당면하면 소용이
없기에 해결할 방법 고민하엿습니다.
왜 잘 안들릴까? 고민을 해보았는데요.

첫번째로, 읽어도 빠르게 해석이 안되는데 들릴리는 없죠.
두번째는 단어가 6단어 이상이 넘어가거나, 구 가 포함되면 순간 머리가 벙....해지면서
              앞에 나온 내용들까지 잊어먹게 되더라구요.

아마 LC에서 낮은 점수를 받는 분들은 저와 비슷하리라 생각합니다.

첫번째 문제점의 해결책은 ...
토익이란 영어시험의 특성상 빈출표현이란게 있죠.
이는 인터넷이나 토익교제에 잘 정리가 되어 있으므로 반복적으로 보고 읽힌다면
충분히 해결될것 입니다.
이 첫번째 해결책만으로도 part2는 거의 만점에 가까워지리라
생각합니다. 실제로 그런 사람들을 보아 왔으니까요.

두번째 문제의 해결책은 ...
끊이듣기 입니다. 끊어 읽기가 아니라 끊어듣기. 단어 단위로 읽는 것이 아니라
구단위나 의미단위로의 끊어듣기 입니다. 다른 방법을 찾아보려고 이리저리 노력했지만.
다른건 없더군요. 그와 더불어 끊어듣기에 대한 예찬론이 수 도없이 많더군요.
결국 저도 그만 그예찬론에 넘어 가버렸습니다.

이미 앞전에 이야기 드린 part2에서 전반부 받아쓰기 연습이 좀 되어있으면 큰 어려움
없이 잘 적용 되겟지요. 머 . ㅎㅎㅎ

그래서 첫번재 와 두번째 해결책을 동시에 적용해서 빈출표현을 끊어듣기 해보려합니다.
이번 방법은 조금시간이 걸릴것이라 생각합니다. 하루에 1시간씩 일주일 정도예상합니다.
(출근이나 퇴근길에 틀어놓고 하는 연습시간 다포함하면 하루에 2시간정도 part2듣기연습
가능 하리라 생각합니다) 결과는 추후에 다시 올리겟습니다.

아..그리고 인터넷에 끊어읽기 7가지 방법이 있더라구요. 읽기나 듣기나 똑같을 것이라 
생각합니다. 그래서 그에 관련된 글을 아랬부분에 올립니다.

----------------끊어읽기에 대해 인터넷어 떠돌아 다니는 글------------------------
----------------혹시 저작권 관련되어있으면 말씀해주세요-------------------------

영어를 의미단위로 끊어 읽는 것, 그것이 바로 독해력과 청해력 향상의
름길입니다. 영어를 읽을 때 아래의 내용을 항상 염두에 두세요.
많은 도움
이 됩니다.

1. 주어 앞에 오는 부사구와 부사절은 주어 앞에서 끊어 읽는다.
1-a. Under these circumstances / we cannot carry out the plan.
1-b. To make matters worse, / it began to rain.
1-c. Waving good-by, / she got on the bus.
1-d. After he finished the work, / he went out for a walk.

2. 긴 주어 뒤에서 끊어 읽는다.
2-a. To work hard / is your duty.
2-b. Making much money / is not the end of life.
2-c. That he is a fool / is generally admitted.
2-d. What I'm trying to say / is Be happy.

3. 긴 목적어 앞에서 끊어 읽는다.
3-a. He told me / that he had finished the work.
3-b. Can you tell me / where I can catch my train?
3-c. If my mother knew / what I had done, / she would be furious.
3-d. If you asked most men / what their favourite sport was, / they would probably say / it was football.

4. 진주어 또는 진목적어 앞에서 끊어 읽는다.
4-a. It is very difficult / for me to do the work.
4-b. It is very kind / of you to invite me.
4-c. I find it quite impossible / to lie to her.

5. 접속사 앞에서 끊어 읽는다.
5-a. The problem was so difficult / that I could not solve it.
5-b. Tom attended the meeting, / but Mary didn't.
5-c. Will you lend me that book / when you're finished with it?

6. 관계대명사와 선행사 사이에서 끊어 읽는다.
6-a. This is the book / which I bought.
6-b. That is the house / in which I live.
6-c. I have a computer / with which I can make a phone call.

7. 삽입구나 삽입절의 앞과 뒤에서 끊어 읽는다.

7-a. He is, / I'm sure, / a really capable teacher.
7-b. Pusan, / the second largest city in Korea, / is famous for its beautiful beaches.
7-c. The concert, / which had been held at the Seoul Arts Center yesterday, / was excellent.

 






Posted by 수다쟁이증후군 :
part1은 들릴때 까지 들을면 들립니다. 만점은 아니더라도 8~9개 정도 수준이라면 말이죠..
그래서 part2도 그와 같이 들으면 되지 않겟나 해서 귀가 뚫릴때까지 들으면 과연 될까요?

그야 되겟죠!!! 비록 수많은 시간이 걸리 겟지만 서도요.

하지만 그런 방법은 저와 맞지않으니 꼼수를 생각했습니다. 영어에 있어서 반복 연습이야
가장 중요하지만 가장적은 시간으로 최대의 효울을 내야죠. 않 그렇습니까?

part2를 문제 유형별로
의문사 의문문               조동사 의문문
관용표현 의문문            부정/부가 의문문
간접의문문                   선택의문문
평서문
이렇게 7가지로 나누지만 저는 2가지로 나누겟습니다.

part2는 문제는 정답포인트는 2곳입니다.
전반부와 후반부.
전반부는 의문사 조동사(be 동사/ do관련대동사) 주어 동사
             
후반부는 전반부의 동사에 관련된 목적어구문.

이렇게 크게 2가지로 나뉩니다.
그런데 전반부에서 답을 찾는 경우가 70%~80%
           후반부에서 답을 찾는 경우가 20%~30% 입니다.

part2 만점을 목표로 하지않는다면 연습할때 전반부만 듣는
연습을 하세요. 흔히들 part2부터는 박아쓰기 많이들 하죠. 이때 문장 전체를
적지말고 전반부만 적는 연습을 해보세요.
part2절반도 못맞히던 사람도.
25문제 가까이 맞출수 있습니다. 긴 시간도 필요없이 1주일동안 모의고사 3회분만
이렇게 연습해보세요.

그리고 나서 이제 나머지 20%를 맞추기위해서 노력해야면되겟죠^^;;
이 20%에 대한 꼼수는 일하면서 제가 실행해보고 또 이야기 드리겟습니다.

사설 하나 붙이자면 제가 요즘에 노가다를 합니다. 졸업은 했는데 먹고는 살아야 하니까요^^;;
흔히 말해 백수죠.그래서 일하고 오면 자기도 바쁩니다. 그래도 공부하려합니다.
학교 있을때 진작에 이렇게 머리써서 공부했으면 800은 그냥 찍었을건데 후회도 합니다.ㅠㅠ
혹시나 이글을 읽는 사람이 대학생이라면 공부하세요

안그럼 저 처럼 됩니다. ㅎㅎㅎㅎ
Posted by 수다쟁이증후군 :
오늘은 3,4회에 나왔던 이중지문들만 복습했습니다.
물론 시간은 40분을 넘지 않게 노력했습니다만 약 45분정도 소요 되었네요.
반복하는건데 어렇게 시간이 걸리다니 참...

그래도 반복하면서 느낀것은 처음에 읽었을때 보이던것과 2번째 3번째 읽을때 보이는
내용이 다르더군요. 좀더 세부적으로 볼수 있게 되었습니다. 한문장 한문장 구조가
좀더 잘보인다고 할까요..음 예전에 정확하게 해석했다고 느꼇던게 실제는 잘못되었고.
심지어 문장 구조를 잘못파악한 경우도 있더라구요. 그런것들이 조금씩 조금씩 바로잡혀
가고 있습니다.

이번반복을 통해서 느낀것은 고유명사 (도시이름이라던지,회의이름,세미나주체)를
를 정확하게 읽으므로써 문제에 대한 이해도도 높아지더군요. 게다가 글전체의
흐름도 더 눈에 잘들어오구요.

또 이번에 발견한 제문제점중에 하나가 문장의 주어를 잘 읽지 않더라구요. 이렇게 해서
어떻게 지금수준에 도달했는지 의문만 들뿐입니다. 그래서 다음부터는 주어를 정확하게
읽는
습관도 들여야 겟습니다.

part7에서 제가 고쳐야 할점은 없을 것만 같았는데. 자꾸 나오니 신기하네요^^. 재밌네요^^
혹시 이글을 읽는 사람중에 part7에 약한 사람이 있다면 지문과 문제를 여러번 읽고, 
자신만의 문제점을 찾아 고치려고 노력하는것을 추천합니다. 이 성취감이 장난 아니거든요
게다가 자신감도 붙고요.

Posted by 수다쟁이증후군 :
어떤 평론가가 추노보고 선정적이라는데...
물론 개인차이는 있겟지만 저는 별로 그렇게 선정적이라고 생각하지않습니다.

" '오늘 밤에 저고리 풀어줄게''어때 탱탱하지'(노인이 주모 손을 자신의 허벅지로 끌어당기며) 같은 원색적인 대사는 성인들이 듣기에도 낯뜨겁다."

라고하는데 몇몇 대사만 놓고 본다면 선정적이다. 충분히 이애가 갑니다 만 드라마라는 장르특성상
영상과 대사가 같이 나오는데 왜 영상을 안보고 대사만 봅니까? 그리고 그 장면을 연기하는
연기자는 누군가요?  마당극에서 잔뼈가 굵은 연기자이지 않습니까. 그 분장한 모습과 그대사
그차이가 만들어내는 웃음. 해학 코미디 라고 보면 안됨니까?
이러한 면은 전혀 고려하지 않은채 그냥 선정적이라니...

또한 남자배우들 웃통벗고 나오는거 보고 머라고하는데 그게어쨋다는건지. 드라마는 아니지만.
tv에 나오는 여자들 미니스커트 차림에 연예인들 그들보고도 선정적이라고 해야 하나요?
그냥 건강한 모습아닙니까?  저도 같은 남자입장에서 오히려 멋지게 보입니다. 부럽기도 
부럽구요.

또, 오늘 장면에서 나온 이다해가 어께를 들어낸장면. 그게 야합니까? 어찌 그걸 야하다고 
받아들입니까? 오지호와 이다해가 연인관계로 발전해나가는 과정의 큰변화를 나타내는
중요한 장면 아니었나요?  물론 조약돌을 흘리고 가는 장면이 가장큰암시였지만.
그건 지금의 글의 주제에서 벗어나니까 논외로 두고...

하여간... 하나에 잣대로 들이 대지말고 그상황과 장르의특성을 충분히 고려해서
이야기 해주셨으면 합니다.
Posted by 수다쟁이증후군 :
토익공부 =  지겹다.
토익공부 =  지친다.
토익공부 =  해도 해도 안는다.

이런게 일반적인 걸까요? 영어자체를 그냥 즐기면서 하려니까
단기간에 점수가 안오르고. 그렇다고 죽자고 토익에만 매달리자니
재미없고 지겹고 지치고.  이렇게 싫다고 생각하면 더하기 싫어지고 능률도 안오르고.
보다 나은 내일을 위해 참고참고 또참고 견뎌야 하는가?

그래도 재미있는 부분을 찾으라고 한다면
정답맞추는 재미... 요정도... 어렵게 가지 말고 힘들게 가지말고.
참지말고... 재미있게 시험공부 하면 좋을텐데....

토익 part3가기전에 part2로 가렵니다.
part3 참고참고 또 참고 지겹지만 참고 가면 되겟지만.. 이건 아닌듯....
그나마 좀 잘들리는 part2로 에서 25개정도 맞출실력이 되면 part3로 가는게 맞을것 같네요.
part1은 1개에서 2개정도 틀리네요.

혹시 재밌게 토익공부 할수 있는 방법 없을까나요^^;;
Posted by 수다쟁이증후군 :
난이도 1단뎨라 그런지 생각보다 많이 맞추었네요. 15개 딱 절반.
한 10개정도 맞을꺼라 예상했는데  기분은 좀좋네요^^

테스트는 자기 실력이 어느정도인지를 판별하는 좋은 방법이죠
거기에 더불어 문제풀면서 느끼는 자신만의 문제점을 파악할수 있어서
참좋더라구요,.

다시 본론으로 돌아와서. 원래공부서 중에서 있었는데요.

1.단어및 표현정리
2.문제 빠르게 읽기 및 키워드 뽑기.

3.스크립트 빠르게 해석하기.
  (거의 읽는 속에 맞추어 독해에 도전하구요 추후1.2배속도에 맞추어 독해)
  (여기서 듣기를 시작합니다 하지만 잠깐 잠깐씩 듣는겁니다)
4.본격적인 듣기 공부

막상 문제를 테스트를 해보니 문제읽는데서는 단어의 부족함이 안느껴지더라구요,
그래서 1단계 패스합니다. 하지만 지문(스크립터)에서 모르는 단어가 나올수 있으니
그건 그때그때 마다 지문속에서 단어를 암기하려합니다. part7에서 처럼 단어만 죽자고
외울생각을 하니 거부감이 넘무 심해서요.

그래서 2단계 문제를 빠르게 읽기
이건 생각보다 잘되더라구요. part7에서 연습해서인지 금방 적응이 되었습니다.
하지만 문제의 보기가 눈에 잘안들어도군요. 맨날 문장만 읽던 습관이 들어서그런지
의미적으로 확 와닿지 안더라구요 이건 반복해서 해결하는 수밖에 없을듯합니다.
그리고 유수현LC책을 보면서 느낀건데요 문제에 대한 분석이 잘되어 있더라구요.
없었을면 모를까 분석자료가 있는데 안쓰면 바보죠^^. 문제문석이 part3의 가장
첫번째 할일 이니까 3일정도시간을 투자 할까 합니다. 물론 나오는 지문(스크립터)
또한 열심히 봐야겟죠,본격적인 지문에 접근하기전의 워밍업정도는 해야 하니까요. 
그리고 뒤쪽에 나오는 패러패이징도 기왕봤으니까 2번정도 더볼예정입니다. 

이런내용들 죽자고 하루에 6시간정도하면 이틀정도에 끝날 분량이지만 다른하는일도있고
무었보다 그건 제스타일이 아니니까요. 쉬엄쉬엄 할겁니다.
Posted by 수다쟁이증후군 :
현재, part7의 공부가 어느정도 완성단계에 이르러 슬슬 읽으면서
반복연습만 꾸준히 해주면 될것같다.

그래서 다음으로 무슨파트를 공략할것인가에 대해 고민중했습니다.

토익 LC는 240점대. 이중에서 part1,2는 그나마 조금듣기는데
part3,4는 이건머 거의 한두단어듣고 감으로 때려잡기니.
part2로 가야 할지 part3로 가야 할지 고민입니다.

part7에서 의문문빠르게 읽기 연습이 많은 도움이 되어서 part2에서 따로 공부안해도
조금씩 들리기 시작하더라구요. 그리고 part3,4에서 문제를 빠르게 읽으니 문제는
정리 되었구요. 그래서 내린 결론이 part3먼저 도전해보려고 합니다. 최대 약점
부터 정리하는게 맞겟더군요.

교재는 유수현의 닥터스 토익입니다.

이교재가 최고 700점대 최고 900점대를 위한 교재여서
기초가 부족한 저로써는 공부전략이 필요할것같아 계획을 짜보았습니다.

공부 순서는 part7에서 했던 순서에 맞추어
1.단어및 표현정리
2.문제 빠르게 읽기 및 키워드 뽑기.
3.스크립트 빠르게 해석하기.
  (거의 읽는 속에 맞추어 독해에 도전하구요 추후1.2배속도에 맞추어 독해)
  (여기서 듣기를 시작합니다 하지만 잠깐 잠깐씩 듣는겁니다)
4.본격적인 듣기 공부

원래는 자체 테스트를 먼저 해서 어디가 약한지를 분석해야 하지만
저같은 생초짜한데 테스틑 하는건 무의미하고 시간낭비 입니다.

그러니 계획1,단어및 표현정리를 먼저 시작합니다.
이책에는 어휘백신(빈출어휘 및 패러패이징표현)이 있기 때문에 이것 먼저
정리 해야 겟습니다.
단어 목표는 90%구요. 패러패이징은 대한 2초안에 한문장 독해 성공율 90%
입니다. (이는 part7을 위한 연습도 위한 것입니다)


★단어를 어휘백신을 이용하려했지만 줄이 잘 맞아 암기하는데 어려우밍
  있었습니다. 그래서 해커스토익스타팅 리스닝단어집을 다운받아
  anymemory용으로 바꾸어 암기 하려합니다.
TOEIC 영단어(voca)암기법 프로그램 활용2((anymemory단어장 만들기 참고하세요
Posted by 수다쟁이증후군 :
영화 아바타 요즘 한창 말이 많죠.
화려하고 어색함 없는CG 최고라고 하죠. 그런데 저는 영화를 다르게 보자고 합니다.
한국사회에 널리 퍼져 있는 겜폐인들에 경종을 울리는 영화라 생각합니다.


일단 제목 아바타의 뜻은 화신,분신 이란 뜻이죠,그런데 이말 많이 들어보지 않았나요?
바로 고스돕칠때 보이는 나의 케릭터,샤방샤방 치장하고 옷입히고 애완견 키우는
그 아바타 말입니다.



이걸 온라인 게임 케릭터에 적용해볼까요?

 영화속 주인공               한국온라인에 빠져있는 청소년.
 전직 해군 반신불수지체장애인         입시에 매달리는 공부기계
 시작동기 단순돈벌기위해  현질좀해볼라고
 아바타에 적응   슬슬 겜좀 할줄암.
 탈것(말,새)교감                  테이밍및 스킬습득
 나비족전사로 거듭남            고랩 달성
 인간한데 당함                     아직템이 완전하지않아
  몹한데 한두번 도망다님

 투르크막토과 교감
        
  한번에 아이템강화 성공
  진정한 섭지존으로 등극
 인간과 재대결                     보스몹 잡으러감
 승리                            승리
 자신이 아바타가됨               겜에빠져 헤어나질못함
 엔딩   ......

전형적으로 겜에 빠져사는 사람들의 경로를 밟아가네요.


어떤분은 네이티브아케리칸에 대한 사과 자연과 교감하지않고 정복의 대상으로만

여기는 지구인들에 대한경고다 라고하시던데요. 죄송합니다. 이렇게 반장난질 쳐서ㅠㅠ

그리고 한가지더
레지던트 이블에 나왔던 미셸 로드리게즈 왜 살이 많이 붙으셔서 갠적으로 맘이 아팟음. ㅠㅠ


공감하시면 손가락 꾹~~!!
Posted by 수다쟁이증후군 :
참 멀리도 돌아 왔네요.
절반정도 겨우겨우 감으로 맞추던제가 이정도 까지 오다니 ㅎㅎㅎ
최고수는 아니지만 어느정도 감을 잡고,자신감도 생겼네요.

시나공 실전문제집을 반복해서 보면서 느낀것이.
이중지문 전까지는 슬슬 읽히는데  이중지문에 들어서면
복습인데도 불구하고 잘 안릭히네요. 원래 약했던부분이라 심리적으로
거부감이 드는것 같습니다. 이에 대한 극복방안을 연구해보았는데

기존에 고안해낸 방법인
이중지문을 읽는 요령2가지 이외에는 더이상
머리에 안떠오르네요. 아직 숙달이 덜되서 그런건지 분석력이 딸려서 그런건지...

그래서 결론은 지금까지 해오던것을 믿고 이중지문만 추려서 반복해서 푸는
습관을 들여야 겟습니다. (하루에 10개 이중지문 풀이)

실행력(토요다 케이이치 지음)이란 책을 보면 해야 할 일은 메뉴얼화 한다.
라는 말이 있던데요 해야할일을 처리해야 한다면 메뉴얼화 해라 그러면
일일이 생각하지 않고 자동적으로 진행할수 있으니 시간이 절약된다.

제가 할일은 토익을 공부하는일이고 그중에서 토익 part7을 좀더 숙달 시키는
것이므로(43개 이상 맞추기)이고 그를 위한 방안은 반복해서 읽는 것이더군요.

이중지문에 거부감을 가지지말것, 이건 일이다. 게다가 이 일은 나에게 보다 나은
미래를 제공한다,라고 생각하니까 거부감 없어지고 왠지 후련해지네요.^^

이 일들은 내일부터 바로 적용해보려합니다.

Posted by 수다쟁이증후군 :
제경험상 문장이 길어질때 독해에 어려움이 생기더라구요.
짧은 문장은 굳이 어렵게 문법적으로 접근할 필요가 없지만
긴문장은 문법적인 접근이 조금필요할것같습니다. 

어지되었든 원래 대로 돌아와서 문장이 길어지는 이유는 수식이죠.
수식어인 to부정사가 접속사와 연결이 되어 버릴때 독해가 좀안되더군요.
그래서 일단 to부정사에 대해서 정리 한번 할필요가 있겟더군요.

to부정사는 크게 분류하면
 명사적용법,       주어,목적어, 보어의 역활
 형용사적용법,   보어와 명사 수식역활
 부사적용법이   명사이외에 전부수식역활
    
부사적용법을 해석상 살펴보면.
 목적 원인   이유,판단의근거  결과  조건
~하기위해서 ~하니 ~을 보니
~을 하니
 ~해서  ,~한다면
그외에 be+to부정사 용법이 있는데요.
해석상 분류로는
예정,가능,운명,의도,의무
이렇게 해석된다고 합니다.

막상정리하고 보니 얼마되지도 않고 별것도없네요 ,중학교때 이미 다했던건데 . 훗,
이제 접속사와 문장에서 어떻게 적용되는지 연습만 남았네요 .

그리고 관계사절은 할내용이 많아서 최대한 고민해본후 추려서 올리겟습니다.
Posted by 수다쟁이증후군 :
첫번째, e-mail이 포함되어 있으면 e-mail먼저 읽을것.
e-mail은 두개의 지문의 관계를 잘나타내주기 때문에 먼저 읽는 것이돟다.
한가지 더하자면 e-mail이 아닌 지문의 제목(keyword)은 읽어둘것.

두번째, 뒤에 지문을 먼저읽을것.
토익의 2중지문을 계속보다 보면 자연스럽게 느낄테지만 뒤에 지문이 문제와 연관된
경우가 많다. 그리고 뒤에 지문에 앞지문에 대한 간단한 설명이 첨부되기
때문이다. 그리고 보통 앞에지문은 간단한 메모,또는 송장,광고가 많이
포함되기때문에 이러한 지문은 스킵하면서 필요한 정보만 뽑아 내면된다.

♣이분석자료는 시나공 part7실전문제집을 보면서 분석 글이기에
  추후 다른책을 보고 분석할시 달라 질수도 있다.
Posted by 수다쟁이증후군 :
지문자체의 난이도가 올라가는 첫번째 단계가 4회째이다.

이전 3회까지는 지문자체의 난이도가 중하정도였다면
이번 4회는 중상 정도 되는듯하다.
(객관적인 판단이라기 보다는 토익 초급자의 기준입니다.)

특히 160~162번 과 181~185번 지문은 독해자체가 까다로 웠다.

물론. 문제자체를 푸는데는 많은 영향을 주지않았지만.
순간 독해가 안되면서 당황해버리니  뒤에까지 영향을 줘서 점수엔
상당히 맏은 영향을 미치더군요.

중점적으로 독해 공부 해야 할것은
160~162번 181~185번 지문을 조금더 많이 반복해야 겟습니다.
4회 부터는 문법을 다시 보는 습관을 들여야 할 것이다.
그렇지 않으면 앞으로의 5,6,7회 독해는 상당히 힘들어진다.


Posted by 수다쟁이증후군 :
시험 후유증을 벗어나기 위해 제가 제일 잘한다고 생각하는  분석이나
한번해볼까 합니다.

첫번째. 지문.
"최근5년간 출제된 지문 850개중에 1순위지문 119개를 뽑았다."
라고 하는데요. 솔직히 처음에 문제집을 풀면서 이런걸 잘 못느꼈습니다.
"머 별다른거 없는데. 그냥 거기서 거긴데." 라는 생각이 많이 들더군요.
그런데 토익시험을 보니까 왜!! 이런말을 쓰는지 알겟더군요.
지문의 주제및 글의흐름과 사용단어에서 많은 유사성이 나오더군요.
어떤문제는 똑같다라는 느낌이 들었습니다. 이책을쓰신 안광모씨께서
왜 이책을 여러번 보고 보고 또 보라고 했는지 이해가 되더군요.
해설지에 보면 지문의 출제빈도가 표시되어 있습니다. 처음볼때는
이게 먼말인가 했는데 지문 그자체가 거의 그대로 나온다는 거였습니다.

저는 이책을 토익에 대한 분석의 용도로서만 이용했는데 좀 많이 아쉽더군요.
혹시 이글을 보시면 꼭 하라고 하고싶습니다.
그냥 단순히 읽기만 해도 좋고 문제까지 풀어봐도 좋습니다.
이책 여러번 보십시요.


두번째.매시험마다 나오는 문장패턴 72가지.
이 패턴 72가지 정말 많이 유용하더군요. 기본적인 해석은 당연한거고.
빈출숙어의 회화적느낌에 대한 설명과 독해요령과 독해시 쓰시는 문법을 잘 설명해
놓아서 토익을 처음공부하는 초급자들에겐 매우 유용한 정보입니다.


세번째, 문제별 난이도 표시.
첨부터 만점을 바라는 사람들에게는 별다른 별다른 도움이 안되겟지만
단계별로 전수를 획득하고자하는사람들에게 필요한 만큼의공부양을
조절해줍니다. 자기실력이 초급이면 고수문제에 머리싸매야 하는 시간을
줄여줍니다. 어떤문제를 버려야 할지 명확하게 해줍니다.




어떤사람들은 part7문제집 사는게 돈아갑다 인터넷어 떠돌아 다니는거 많은데
굳이 문제집을 따로 살필요가 있냐 라고합니다. 하지만 제생각은 다릅니다.
자기가 분석해야 하는 내용을 실례를 들어가면서 해줍니다.
토익 초급자들은 고민을 하죠 도대체 무엇을 어디서부터 어떻게 시작해야
하는지 모릅니다. 그런사람들에서 적은 노력으로 최대의 효율을 낼수
있게 해준다는데 그깟 돈2만원이 아깝겟습니까?
Posted by 수다쟁이증후군 :
2AM 임슬옹의 시대가 오는 모습이 슬슬 보이네요.
인기 아이돌 2AM의 멤버 임슬옹이 아니라.
임슬옹 그자체의 매력이 점점 뿜어져 나오는 모습이 보입니다.

키186cm 몸무게 71kg 근육질 몸매에
서글서글한 눈매 귀여운 이미지였다면


오늘 우결에서 보여운 모습은  와우~~~ !!

웃을때와는 다른 매력이 뿜어져 나오더군요.

초반에 조권에 가려져 자신만의 매력을 발산하지 못하던 임슬옹이 슬슬 자신만의
색깔을 뿜어내기 시작하고 있습니다. 아이돌 최고의 짐승돌로 올라 서기위한 준비는 거의
다 되엇습니다.

물론 팬들마다 취향이 다르고 좋아하는 그룹이 다르겟지만. 한때 최고의 인기인 빅뱅에
탑에 필적할만한 인기를 끌수 있을정도 입니다.

이제 필요한건 한방입니다. 발라드그룹인 2AM의 특성상 무대는 아닐것입니다. 그렇다고 예능도 아닐것입니다. 우결에서 보조 MC치고는 간간히 재밌는 입담을 보이긴하지만 그건 어디까지나 뽀나스 이죠.  그렇다면 생각할수 있는건 연기.

그렇다고 어설프게 연기에 도전했다간 이미지 망치기 십상이죠. 그렇다면 최고의 방법은
무었일까요?

바로 뮤직비디오.
애절한 발라드에 맞는 슬픈역이 아니라. 나쁜남자의 카리스마를 보여줄수 있는 역을 맡는다면 아마도 최고일것입니다. 연극영화학부에 재학중이니 뮤직비디오정도의 연기는 충분히
보여주리라
믿습니다. 임슬옹!! 이제 한계단 남았습니다. 화이팅!!
Posted by 수다쟁이증후군 :

지난 예고편에서 G7 크리스마스 파티장면을 보면서 설마 진짜 자기들끼리 파티하진
않겟지 설마 에이 설마.. 다른연예인불러다가 자기들끼리 놀짆안겟지.. 에이 설마...


그런데 어제 방송을 보니까 결국 려하던일이 발생했다.
청춘불패 초반에 나왔던 시청자들의 불만이 무언지 벌써 까먹은건가?

말도안되는 미인대회의 남발 ...

시청자들은 G7의 망가지는 모습을 보면서 좋아 하고 웃었던것이 아니라 . 그들의
인간적인면 ,유치리에서 그들이 그곳주민과 같이 밥먹고,일하면,호흡하는 모습.

동경의 대상이 아니라 옆집에 사는 동생,언니,누나 같은 소탈한 모습에서 공감을 많이
느꼈다.


그런데 어제는 뭘했나? 비닐하우스에서 남자연예인들 불러다가 자기들만의 세상에서
자기들만의 파티, 그럴꺼면 왜 굳이 유치리까지 가서 촬영할필요 있었나?
걍 세트에서 크리스마스파티를 하지.자꾸 이런식으로 나간다면 청춘불패 힘들지
않겟나 싶다.


그들은 케릭터가 거의 없다. 그나마 나온건 찡찡이 현아, 순규,삽질태우,백지..

의미있는 케릭터는 이것말고는 없는것 같다. 리얼리티의 생명이 케릭터이란걸 생각한다면
지금 이럴시간이 있는지 모르겟다. 케릭터는 반복속에서 생겨나는 것이다. 어느날 누가
갑자기 너 이거해라고해서 나오는게 아니다. 같은 사람과의 만남이
반복되고 어울리고
웃고 하다보면 그들은 편하게 관계가 된다. 그러한 편한
관계에서 케릭터가 나오는 것이다.


아직 유치리에서 G7은 이방인일 뿐이다. 솔직히 처음보다는 많이 나아졌다.
그들에서
물물교환해준 사람들에서 찾아가 찐빵을 드리며 감사의 인사를
드린다던지, 로드리의 등장,산타할머니....


다음주 예고편은 나왔다. 신년특집,, 안직 안본것에 머라머라  말하는건 예의가
아닌것같아서 더이상 말하지않겟지만. 자기들만 떡치고 놀고 이러면 또 실망 할 것같다.
머 떡만들어서 마을사람들에게 돌리는건 당연한거지만 만드는것도 마을주민
과 같이
만드는 모습을 보여주기를 기대해 본다.
Posted by 수다쟁이증후군 :
아 ..... 한숨만 자꾸 나오네요. 
속직히 열심히 노력하지않았습니다, 언래 그런거와 멀거니와.
어떻해서든 잔머리로 잘넘어가서리 이번에도
잘넘겨갈줄알았는데....

PART4에서 한스크립트를 뛰어넘고 답을 체크햇더군요.
원래그런 실수 안하는데 그런실수하는사람들 보면 참 한심하고 이해를 못했는데
제가 그런실수를 하다니.. 더구나 그에 당황해서 2스크립트정도 못듣고.,,,
머리가 공황상태가 오더니 RC파트 까지 멍때리면서 문제를 풀었습니다.

다음에 잘하면되지 하지만... 다음은 무슨개뿔...
한 5일을 멍하니 보냈네요... 문득 참 바보같구나 생각이 듭니다.
크리스마스라고 다들 즐겁게 보내는데... 이런궁상,궁상 ,개궁상.
Posted by 수다쟁이증후군 :

 회차  1회 2회  3회   4회  5회  6회 
 정답문항수 35  35   38 40  39  40 

거의 30개 후반대를 계속유지중입니다.
단기간에 고득점을 향하는 방법을  이리도 연구하고 저리도 연구하고 참 잔머리 많이 굴렸죠.
정답 문항수는 거의 엇비슷하게 유지를 하나. 질적인 면에서 수준이 많이 올랐죠.
1,2회때는 거의 감으로 때려잡기식으로 햇습니다. 오답 분포도 골고루죠.
3회부터는 2~3문제짜리 지문에서는 거의 틀린것이 없고
              4문제 짜리 지문과 복합지문에 몰려있더군요. 
5~6회때는 생소한 지문이 좀나오서 많이 틀렸을꺼라 예상했는대도 불구하고.
              30대 후반의 정답을 보이고 있습니다.

40개 초반에 안정화 되면 고수(초고수는 아니지만)초입에는 다다를것이라
예상하고 단기간에 올리는 비법을 이리저리 고민 해봤습니다. 제가 아닥(아가리 닥치고)파
는 아니거든요. 그래서 진짜 열심히 머리 굴렸습니다.  그래서 내린 결론은 끊어읽기.
대충 끊어 읽는것이 아니라. 정확한 끊어읽기.
(제가 아직 끊어 읽기는 하지않거든요. 귀찮자나요ㅎㅎ그래서 그런지 순간순간 놓치는 경우가 발생하더이다. ㅠㅠ)
그런데 끊어 읽기를 할려고 하면 문법적인 내용이 좀 들어가더군요.

그런데 이렇게 내린 결론이 정확한걸까 에 대한 고민이 들었는데, 그 고민을 풀어준것은
시나공 실전문제집 이었는데요. 시나공 실전문제집에 보면 자주나오는 문장패턴 분석이
나옵니다. 72개로 정리 되어있는데요.

이 문장패턴에 대한 설명에도 흐름이 있더군요.
초반에는 숙어중심으로 그 숙어의 뉘앙스설명에 중점을 두더니 후반에 갈수록 문법적 내용으로 설명이 많이 되어 있었습니다. 마치 제가 공부하는 단계와 비슷하게 진행되더군요.
그래서 고수로
진입하기 위한 방법으로 문법을 찍은 것입니다. 
이렇게 해두면 part5,6에 어느정도 도움이 될꺼라
는 의도도 있죠.

지금단계까지 오는데 잔머리만이었다면 이제부터는 약간의 노력도 필요할듯합니다. 솔직히
점수가 정체되어 좀짜증이 났는데요. 가만히 생각해보니까 이정도 온것도 대단하다 싶네요.
열공해야지 하면서 볼tv다보고 만화보고 프린지 시즌2까지 보고 넘버스 시즌5 마무리 하고.
지붕하이킥 완파하고. 카오스 좀달려줬네요.  정신머리 왜 이따구일껄까요ㅠㅠ.
(놀았던거 적고 나니까 왠지 부끄러운. ㅠㅠ) 아이리스도 다봤네 .ㅠㅠㅠ 

이제는 볼꺼 다봤으니까 조금 노력 해야겟네요. 이제 어느정도 단어도 조금 쌓였고 지문도
어느정도 쌓였고.하니까 문법으로 끊어 읽기만 잘하면 다음 7회차때는 40이 아닌
40대 초반까지 나올듯 합니다. 이제 슬슬 고지가 눈낲에 보이는 군요.


Posted by 수다쟁이증후군 :