public EarnedPointEventArgs(int count, int point, string reason, Block.KIND kind) { this.point = point; this.reason = reason; this.kind = kind; this.count = count; }
public void ChangeTheme(Block.KIND kind) { Sprite newSprite = null; alpha = 100; changing = true; switch (this.kind = kind) { case Block.KIND.SPRING: newSprite = SpringSprite; break; case Block.KIND.SUMMER: newSprite = SummerSprite; break; case Block.KIND.FALL: newSprite = FallSprite; break; case Block.KIND.WINTER: newSprite = WinterSprite; break; } // 描画していない方の背景を切り替える SecondarySprite.sortingOrder = 0; SecondarySprite.sprite = newSprite; SecondarySprite.transform.localScale = defaultScale; // アルファ値を1.0に SecondarySprite.color = ConvertAlpha(SecondarySprite.color, 1.0f); }
public DeleteBlockInfo(int deleted = 0, int connected = 0, KIND kind = KIND.NONE) { Deleted = deleted; WallConnected = connected; Kind = kind; }
private DeleteBlockInfo?checkField(KIND target, int posX, int posY, int startX, int startY) { var block = blocks.PositionAt(posX, posY, FieldWidth); // 消去中ブロックなら0 if (block.Deleting) { return(null); } // 現在位置が壁かどうかを調べる if (startX == posX || startY == posY) { // 始点の壁だった場合は0 return(null); } // チェック済みなら0 if (checkedList.PositionAt(posX, posY, FieldWidth)) { return(null); } // チェック済みとする checkedList.SetValuePosition(posX, posY, FieldWidth, true); // 元のブロックと種類が違うブロックなら0 if (block.Kind != target) { return(null); } // 現在位置が壁かどうか if (posX == 0 || posY == 0 || posX == FieldWidth - 1 || posY == FieldWidth - 1) { // その位置のブロックが、始点と同じ種類かどうかを判定 if (block.Kind == target) { block.Deleting = true; return(new DeleteBlockInfo(1, 1)); } else { return(null); } } // 各方向のブロックを調べるために再帰する var up = checkField(target, posX, posY + 1, startX, startY); var down = checkField(target, posX, posY - 1, startX, startY); var left = checkField(target, posX - 1, posY, startX, startY); var right = checkField(target, posX + 1, posY, startX, startY); var r = up + down + left + right; // 判定結果を代入 block.Deleting = r.Deleted > 0 ? true : false; if (r.Deleted > 0) { r.Deleted += 1; return(r); } else { return(null); } }