Ý tưởng
Để có thể tính điểm trong game thì cách thiết thực nhất chính là dùng 1 biến kiểu số để lưu trữ cũng như tăng giảm điểm. Vậy làm cách nào để hiển thị điểm số đang chơi lên màn hình ?
Để hiện thực được điều này, cocos2d-x cho phép chuyển kiểu dữ liệu từ số sang chuỗi. Và từ đó có thể render chuỗi này lên màn hình.
Hiện thực
Ảnh minh họa
Dùng hàm createWithFormat
của CCString
để khởi tạo 1 biến tạm thời kiểu CCString*
từ số điểm.
Ví dụ 1
CCString *tempScore = CCString::createWithFormat("%i", score);
Khởi tạo UI Label với giá trị là kiểu CCString*
vừa có.
Ví dụ 2
scoreLabel = Label::createWithTTF(tempScore->getCString(), "fonts/Marker Felt.ttf", visibleSize.height*SCORE_FONT_SIZE); scoreLabel->setColor(Color3B::RED); scoreLabel->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2)); this->addChild(scoreLabel, 10000);
Khi thay đổi điểm số trong game, chỉ cần khởi tạo 1 biến tạm thời kiểu CCString*
như ở trên và set lại string
cho Label
.
Ví dụ 3
score++; CCString *tempScore = CCString::createWithFormat("%i", score); scoreLabel->setString(tempScore->getCString());