본문 바로가기

분류 전체보기

(26)
Cocos2d-x, MetalSlug (2) 미완 미흡한 점 - 액션과 액션 사이의 조건문(예외처리) - 점프 Velocity 초기화 - 총알과 enemy 사이의 충돌처리 - Character Collider 처리 미구현 - UI, NPC, ITEM 등 후기 - 메탈슬러그 절대로 하지마십쇼.. 캐릭터 스프라이트가 상하체 나눠져있습니다. ㄴ 이게 왜? -> 애니메이션 상하체 분리, 액션 상하체 분리, 상하체 PhysicsBody 분리 등등 - cocos2d로 Raycast를 동적인 게임에 쓰려고 하지마세요. ㄴ cocos2d에서의 raycast는 초기화면에 고정되어 아무리 raycast시작점을 캐릭터로 한들, 캐릭터를 따라 처리하지 않습니다. - Unity를 배우고 있어 더이상 손보기 힘들 것 같습ㄴ...
Cocos2d-x, Metal_Slug (1) AudioEngine Animation Keyboard TransitionScene Font Action::Blink Random
7-2. 키보드(keyboard) - 중복키 입력 · cocos2d에서는 중복키 입력에 대해서 꽤 불친절합니다. // 시도해봤자 안되는 것들 입니다.. 같은 전철을 밟지마세요...ㅠ if(GetAsyncKeyState('A') && GetAsyncKeyState('D')) {} bool A_keyPressed = true; bool D_keyPressed = true; if(A_keyPressed && D_keyPressed) {} // switch문 안에서의 이중 case문 등등 · 여러가지 시도를 해봤지만 찾아낸 방법은 비트연산자입니다. · 비트연산자에서 사용할 연산자는 복합비트연산자인 |= 와 ^=을 사용해야합니다. · 간단하게 설명하자면 |=은 ON의 기능을, ^=은 OFF의 기능이라고 보시면 됩니다. · 비트연산자의 플래그를 구글링해보시면 구체..
7. 키보드(Keyboard) 키보드를 입력하기 위해서는 몇 가지 사전작업이 필요합니다. #include "cocos2d.h" class Keyboard : public cocos2d::Scene { public: static cocos2d::Scene* createScene(); virtual bool init(); CREATE_FUNC(Keyboard); // Scene 생성자/소멸자 기능 void onEnter(); void onExit(); // 키가 눌렸을 때, 뗐을 때의 함수 void KeyPressed(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event* event); void KeyReleased(cocos2d::EventKeyboard::KeyCode key..
6. 애니메이션(Animation) 1. 낱개로 된 스프라이트를 이어붙여 애니메이션 제작 · 애니메이션 사용 순서 베이스가 될 스프라이트 선언 → 애니메이션 선언 → 애니메이션 프레임 재생속도 설정 → 선언한 애니메이션 프레임에 파일추가 → 애니메이트 // 애니메이션을 재생하기에 앞서 베이스가 될 스프라이트 auto animationSprite = Sprite::create("Animation_Base.png"); this->addChild(animationSprite); // 애니메이션 재생을 위한 Animation 클래스 : SpriteFrame과 관련 정보가 그룹화되어 있습니다. auto animation = Animation::create(); // 초당 프레임 재생 속도를 설정합니다. animation->setDelayPerUni..
5. 스케줄(schedule) · 스케줄은 타이머의 개념이라고 보시면 편합니다. 사용자가 지정한 시간 간격으로 함수를 실행시키는 것에 간편합니다. · 스케줄 함수의 기본형 : schedule(schedule_selector(헤더명::함수명)); ※ 스케줄로 실행할 대상 함수는 매개변수에 float형 변수를 1개 포함해야 합니다. · 헤더에서 사용할 함수들을 미리 선언해줍니다. void anyTime(float a); void everySecond(float b); void Once(float c); // float에서 a든 b든 상관없습니다. 1. 상시 실행되는 스케줄 this->schedule(schedule_selector(scheduleTest::anyTime)); void scheduleTest::anyTime(float a)..
4. 액션(Action) ※ 액션을 적용시킬 스프라이트 초기화 auto Test_Action1 = Sprite::create("Test_Action1.png"); auto Test_Action2 = Sprite::create("Test_Action2.png"); auto Test_Action3 = Sprite::create("Test_Action3.png"); this->addChild(Test_Action1); this->addChild(Test_Action2); this->addChild(Test_Action3); ※ 모든 Action은 runAction()함수를 통해 적용이 가능합니다. 1. 기초 액션 ① Move · MoveTo : 객체가 어디에 있든 지정한 좌표로 이동합니다. · MoveBy : 현재 위치에서 지정한 변..
3. Menu 1. 메뉴 메뉴의 기능을 사용하기 위해서는 Menu 클래스를 사용하여 객체를 만들면 됩니다. 구체적인 기능 구현과 세부 설정을 위해서는 MenuItem 클래스를 추가해야 됩니다. 2. 메뉴 아이템 메뉴에서 사용자 정의를 담당하는 하위 클래스. ※ 콜백 함수(callback function) CC_CALLBACK_1(Test::func1, this); 첫 번째 인수 (selector) : 메뉴가 선택됐을 때 호출되어야 할 함수 -> 위의 예시로는 Test::func1 두 번째 인수 (target) : MenuItem이 선택됐을 때 반응해야 하는 객체 -> this ※ 이 함수에서 this가 의미하는 것 : 메뉴가 생성되어 있는 현재씬을 참조한다. 2-1. MenuItemImage · 원형 : MenuIte..