cococos 2 dを使用してスライド画像ゲームのチュートリアルを作成する方法:第2部(完)

8467 ワード

原文リンク先:http://www.iphonegametutorials.com/2011/03/17/cocos2d-game-tutorial-%E2%80%93-building-a-slide-image-game-part-2-with-solution/
チュートリアル:
如何使用cocos2d制作一个滑动图片游戏教程:第二部分(完)
 
皆さん、こんにちは!スライド画像ゲームのチュートリアルに戻り、新しいプロパティを追加します.プレイヤーが謎解きに成功したかどうかを判断します.この任務ははっきりしているから,直接やりましょう.
このチュートリアルの完全なソースコードがあります.
 
このチュートリアルのすべての情報は、前のチュートリアルに基づいているので、読み続ける前に、最初のチュートリアルを見てください.
さあ、今、実現方法を教える時だ! 
まずtileでhでは、Tileの初期位置を保存するための新しい変数「originalValue」を追加する必要があります.これにより、Tileを乱すと、この位置を新しい位置と比較して、プレイヤーがパズルを完成したかどうかを判断することができます.
@interface Tile : NSObject {
int x, y, value, originalValue;
CCSprite
*sprite;
}

-(id) initWithX: (int) posX Y: (int) posY;
@property (nonatomic,
readonly) int x, y;
@property (nonatomic)
int value;
@property (nonatomic)
int originalValue;
@property (nonatomic, retain) CCSprite
*sprite;
-(BOOL) nearTile: (Tile *)othertile;
-(void) trade:(Tile *)otherTile;
-(CGPoint) pixPosition;
@end

 
次にboxを開きます.m、check関数の下部で、次の変更を行います.
destTile.value = (7* destTile.x) + destTile.y;
destTile.originalValue
= destTile.value;
destTile.sprite
= sprite;

最初のプロジェクトのソースコードから直接修正する場合は、元のコードは次のようになります.
destTile.value = imgValue;
destTile.sprite
= sprite;

あなたがこれらの修正を完了した後、私たちはboxで最後のイベントをする必要があります.mに新しい関数を追加して、ゲームの状態を判断します.
-(BOOL) checkSolution {

BOOL isSolved
=true;

for (int x=0; x < size.width; x++) {
for (int y=0; y < size.height; y++) {
Tile
*tile = [self objectAtX:x Y:y];

if (tile.originalValue != tile.value) {
isSolved
=false;
}
}
}

if (isSolved) {
NSLog(
@"The Sliding Image is Solved");
returntrue;
}
else {
NSLog(
@"The Sliding Image is NOT Solved");
returnfalse;
}

returntrue;
}

 
ここではすべてのTilesを巡り、valueとoriginalValueの値を比較し、すべてが等しい場合はパズルの成功を示し、そうでない場合は失敗を示します.
最後に、PlayLayer.mでは、ChangeTileWithAメソッドに次のコードを追加します.
NSLog(@"Check Solution");

BOOL isSolved
= [box checkSolution];

CCLabel
*solvedLabel = (CCLabel*)[self getChildByTag:kSolvedText];

if (isSolved) {
[solvedLabel setString:
@"The Puzzle is Solved"];
}
else {
[solvedLabel setString:
@"The Puzzle is NOT Solved"];
}

 
このように、2つの小さな画像を交換するたびに、ゲームの状態を判断し、CCLabelで画面に表示します.
もし皆さんに何か問題があったら、伝言を残してください.
次のチュートリアルでは!
  
著作権声明:本文は http://www.cnblogs.com/andyque翻訳、転載共有を歓迎します.作者の労働を尊重して、転載する時この声明と作者のブログのリンクを保留して、ありがとうございます!