//--------------------画像情報-----------------------------
var STAMP_IMG = "buttons.png"; // 肉球画像
var TILE_IMG = "tile.png"; // タイル画像
//--------------------定数-----------------------------
var STAGE_WIDTH = 480; // 画面横サイズ
var STAGE_HEIGHT = 600; // 画面縦サイズ
var STAMP_SIZE = 80; // スタンプ画像サイズ
var STAMP_KIND = 6; // スタンプの種類の数
var STAMP_COL = 6; // 横に配置する数
var STAMP_ROW = 5; // 縦に配置する数
//--------------------ドラッグ情報----------------------------------
var dragOkFlg; //ドラッグしてOKかどうか
var dragStartFlg; //ドラッグ開始フラグ
var dragStartPosX; //ドラッグ開始したX
var dragStartPosY; //ドラッグ開始したY
var dragStamp; //ドラッグ中のスタンプ
var changeFlg; //ドラッグでスタンプが入れ替わったかどうか
//--------------------ステージ情報-----------------------------
var stampList; //画面のスタンプのリスト
window.onload = function(){
game = new Game(STAGE_WIDTH, STAGE_HEIGHT);
game.preload(STAMP_IMG, TILE_IMG);
game.rootScene.backgroundColor = "black";
game.onload = function(){
scene = new GameStartScene();
GameStartScene = enchant.Class.create(enchant.Scene, {
initialize: function () {
var tile = new Sprite(STAGE_WIDTH, 400);
tile.image = game.assets[TILE_IMG];
tile.y = STAGE_HEIGHT - 400;
for(var y = 0; y < STAMP_ROW; y++){
for(var x = 0; x < STAMP_COL; x++){
function createStamp(stage,x,y){
var stamp = new Sprite(STAMP_SIZE,STAMP_SIZE); // スタンプサイズ指定
stamp.image = game.assets[STAMP_IMG]; // スタンプ画像設定
var no = rand(0,STAMP_KIND - 1);
stamp.x = STAMP_SIZE * x;
stamp.y = STAMP_SIZE * y + STAGE_HEIGHT - 400;
stampList[x + y * STAMP_COL] = stamp;
stamp.addEventListener(Event.TOUCH_START, function(e) {
dragStartPosX = Math.floor(e.target.x / STAMP_SIZE);
dragStartPosY = Math.floor((e.target.y - 200) / STAMP_SIZE);
stamp.addEventListener(Event.TOUCH_END, function(e) {
stamp.addEventListener(Event.TOUCH_MOVE,function(e){
var nowX = Math.floor(dx / STAMP_SIZE);
var nowY = Math.floor((dy - 200)/ STAMP_SIZE);
if(dragStartPosX !== nowX || dragStartPosY !== nowY){
var moveStamp = stampList[nowX + nowY * STAMP_COL];
moveStamp.x = dragStartPosX * STAMP_SIZE;
moveStamp.y = dragStartPosY * STAMP_SIZE + 200;
dragStamp.x = nowX * STAMP_SIZE;
dragStamp.y = nowY * STAMP_SIZE + 200;
stampList[nowX + nowY * STAMP_COL] = stampList[dragStartPosX + dragStartPosY * STAMP_COL];
stampList[dragStartPosX + dragStartPosY * STAMP_COL] = moveStamp;
return Math.floor(Math.random() * (max - min + 1)) + min;