iPhone�Q�[����Swift����ō쐬���Ă݂����Ƃ������S�Ҍ�����iOS�̃Q�[���t���[�����[�N���g�����������ꂩ�����������A�ځB����́AGoF�f�U�C���p�^�[����1�ł���FactoryMethod�p�^�[�����g���āASwift�̃R�[�h�����t�@�N�^�����O������@�ɂ��āB
�@�{�A�ځuiOS SDK��Swift�Ŏn�߂�Q�[���쐬�����v�́AiPhone�����̃Q�[���J���̓���A�ڂł��B�^���[�f�B�t�F���X���ނɁA�uSpriteKit�v�Ƃ����Q�[���J���t���[�����[�N�̉����Q�[���̊J����@�ɂ��ď����Ă��܂��B
�@�����ɓ���O�ɖ{�A�ڂō��A�v���̊����`���m�F���Ă����܂��B�{�A�ڂł́A���L6�̃��[�������^���[�f�B�t�F���X������Ă����܂��B
�@�O��́u�Q�[����State�Ǘ����ȒP�ɂ���iOS 9 GameplayKit�̃N���X�Ƃ��v�ł͎��@���͈͓��ɂ���G�Ɉ��Ԋu�����Ɏ����U�����鏈�����������܂����B����Ɠ�����GoF�f�U�C���p�^�[����1�ł���State�p�^�[�����g���č���̎d�l�ύX�ɋ����A�v������̕��@���w��ł��܂����B
�@����́A���@��3��ނɂ��āA����ɂ������D���Ȉʒu�ɂ�����悤�ɂ��Ă����܂��B�����đO��ɑ�����GoF�f�U�C���p�^�[����1�ł���FactoryMethod�p�^�[���ɂ��Ă̒m�������L���Ă�����Ǝv���܂��B
�@����́A������́uzenkai.zip�v�̃R�[�h����Ɏ�����i�߂Ă����܂��B
�@�܂��́A���@���D���Ȉʒu�ɔz�u�ł��鏈�����������܂��B
�@����ɐ旧���āA�uScene�v���A�Q�[�������C�������ł���uGameScene�v�ƁA���@���Z�b�g����uSetCharScene�v�ɕ������܂��B�V�����uButton.swift�v�uSetCharScene.swift�v�t�@�C�����쐬���Ĉȉ��̂悤�ɋL�q���Ă��������BButton�N���X�̓Q�[���J�n�{�^���Ɏg���N���X�ł��B
import UIKit import SpriteKit class Button: SKSpriteNode { let afterTap: () -> () init(text: String, rect: CGRect, afterTap: () -> ()) { self.afterTap = afterTap super.init(texture: nil, color: UIColor.clearColor(), size: rect.size) position = rect.origin let button = SKShapeNode(rect: CGRect(origin: CGPoint(), size: rect.size), cornerRadius: 4.0) button.fillColor = UIColor.darkGrayColor() button.strokeColor = UIColor.clearColor() addChild(button) let myLabel = SKLabelNode(fontNamed: "HiraginoSans-W6") myLabel.text = text myLabel.fontSize = 18 myLabel.position = CGPoint( x:rect.width/2, y:rect.height/2-myLabel.frame.height/2+1) addChild(myLabel) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }
import UIKit import SpriteKit class SetCharScene: SKScene { override func didMoveToView(view: SKView) { physicsWorld.gravity = CGVectorMake(0, 0) let fieldImageLength = view.frame.width / 10 let field = FieldFactory().createField(view.frame.size, fieldImageLength: fieldImageLength) field.nodes.forEach { addChild($0) } let buttonRect = CGRect(x: CGRectGetMaxX(self.frame) - 115, y: CGRectGetMaxY(self.frame) - 49, width: 110, height: 34) let button = Button(text: "�Q�[���J�n", rect: buttonRect, afterTap: { let scene = GameScene(fileNamed: "GameScene") scene?.scaleMode = .ResizeFill view.presentScene(scene) }) addChild(button) } }
�@���ɁA�����\����ʂ�GameScene����SetCharScene�ɕύX���܂��BGameViewController��viewDidLoad�����̂悤�ɏC�����Ă��������B���܂�GameScene���Ăяo���Ă����ӏ���SetCharScene���ĂԂ悤�ɕύX���Ă��܂��B
class GameViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let scene = SetCharScene() // Configure the view. let skView = self.view as! SKView skView.showsFPS = true skView.showsNodeCount = true /* Sprite Kit applies additional optimizations to improve rendering performance */ skView.ignoresSiblingOrder = true /* Set the scale mode to scale to fit the window */ scene.scaleMode = .ResizeFill skView.presentScene(scene) } // �ȗ� }
�@����Ŏ��s����ƁA�L�����N�^�[�I����ʂ��\���ł��Ă��邩�Ǝv���܂��B
�@����̉�ʑJ�ڂł́uview.presentScene(scene)�v���g���܂����B���̃��\�b�h�͑�2�����ɃA�j���[�V������ݒ�ł��܂��B�A�j���[�V�����̓t�F�[�h�C���^�t�F�[�h�A�E�g�̂悤�ȊȒP�Ȃ��̂���A�h�A���܂�悤�ȃA�j���[�V�����Ȃǖʔ������̂����X����܂��B���܂��g���ƁA���y�������[�U�[�̌���ł���̂ł��Ў����Ă��������B
view.presentScene(scene, transition: SKTransition.doorsCloseHorizontalWithDuration(1.0))
Copyright © ITmedia, Inc. All Rights Reserved.