In this game, we only really have one type of object to play with—we will refer to these playing pieces as gems, since that is the most commonly used image in Match 3 games. We will look at some of the internals of the
MAGem
class, and then move on to how we actually handle the gems before tackling the more intricate logic.
We start out by looking at the header for the MAGem
class, which is a subclass of CCSprite
. We have a couple of new things here. We are using the
@class
statement to tell this class that there is another class called
MAPlayfieldLayer
that exists, but we don't want to import that class here. MAGem
will be imported by MAPlayfieldLayer
, and we don't want to get stuck in an infinite "import" loop.
@class MAPlayfieldLayer; typedef enum { kGemAnyType = 0, kGem1, kGem2, kGem3, kGem4, kGem5, kGem6, kGem7 } GemType; typedef enum { kGemIdle = 100, kGemMoving, kGemScoring...