COCOS2D-X 기본 세팅

마스터피스·2024년 2월 26일
0

COCOS2D-X

목록 보기
2/11
post-thumbnail

1) 화면 크키 조절

만든 파일에 Classes -> AppDelegate.cpp -> static cocos2d :: size 숫자 바꿔줌

2) 리소스 저장

폴더에 Resorces 에 저장 -> Classes -> HelloWorldScene.cpp -> bool HelloWorld::init() 내용 전체삭제 후 아래 내용 입력

bool HelloWorld::init(){
    if (!Scene::init()) return false;

    return true;

}

HelloWorldScene.cpp 파일에서 실시함

3) 기본 세팅법

      bool HelloWorld::init(){
          if (!Scene::init()) return false;


          Sprite* firstSprite = Sprite::create("frame.png");
          firstSprite->setPosition(200, 300);
          this->addChild(firstSprite);

          Sprite* secondSprite = Sprite::create("frame.png");
          secondSprite->setPosition(400, 200);
          this->addChild(secondSprite);

          Label* myLabel = Label::createWithTTF("Hello Bird!", "fonts/arial.ttf", 24);
          myLabel->setPosition(900, 600);
          this->addChild(myLabel);

          return true;

      }
      
      

4) 기본 움직임 (회전 , 이동)

    bool HelloWorld::init(){
        if (!Scene::init()) return false;


        Sprite* firstSprite = Sprite::create("frame.png");
        //포지션 위치 
        firstSprite->setPosition(200, 300);
        // 크기
        firstSprite->setScale(0.3);
        this->addChild(firstSprite);

        Sprite* secondSprite = Sprite::create("frame.png");
        secondSprite->setPosition(800, 100);
        secondSprite->setScale(0.4);
        this->addChild(secondSprite);

        Label* myLabel = Label::createWithTTF("Hello Bird!", "fonts/arial.ttf", 24);
        myLabel->setPosition(900, 600);
        this->addChild(myLabel);

        //runAction은 이동
        firstSprite->runAction(MoveTo::create(2.0, Vec2(500, 500)));
        //rotateBy는 회전 초/각도
        secondSprite->runAction(RotateBy::create(2.0f, 360));
        //색상 선택 R G B
        myLabel->setColor(Color3B(255, 100, 100));

        return true;

    }

5) HelloWorldScene.h 파일에서
public: 밑에

cocos2d::Sprite* ball = nullptr;
void logic(float dt);

nullptr 설정

  bool HelloWorld::init(){
      if (!Scene::init()) return false;

      ball = Sprite::create("SoccerBall.png");
      ball->setPosition(1280 / 2, 720 / 2);
      this->addChild(ball);
      //bind는 스케줄을 통해 지속적으로 실행시키겠다는 의미다.
      this->schedule(std::bind(&HelloWorld::logic, this, std::placeholders::_1), "logic");


      return true;

  }
  void HelloWorld::logic(float dt) {
      Vec2 position = ball->getPosition();
      position.y = position.y - (FORCE + dt);
      ball->setPosition(position);
  }
profile
코딩 일지

0개의 댓글