HTML部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Sliding Block Puzzle</title>
<!-- tmlib.js をgithub からインクルード、もちろんローカルに置いてもよい -->
<script src="http://rawgithub.com/phi-jp/tmlib.js/0.2.0/build/tmlib.js"></script>
<script src="main-0010.js"></script> <!-- プログラム本体 -->
</head>
<body>
<canvas id="world" width="640" height="480"></canvas> <!-- クロイガメン様表示部分 -->
</body>
</html>
JavaScript 部分:
tm.main(function() {
var app = tm.app.CanvasApp("#world"); // アプリケーション作成
app.background = "rgba(0, 0, 0, 0.1)"; // 背景色をセット
app.run(); // 実行
});
演習問題:
tm.main(function() {
var app = tm.app.CanvasApp("#world"); // アプリケーション作成
app.background = "darkgreen"; // 背景色をセット
var label = tm.app.Label("Hello, world!"); // ラベルオブジェクト生成
label.x = 320-100; // 位置をセット
label.y = 240;
label.width = 200; // 幅をセット
app.currentScene.addChild(label); // シーンに追加
app.run(); // 実行
});
label.setX(320-100).setY(240).setWidth(200);
tm.main(function() {
var app = tm.app.CanvasApp("#world"); // アプリケーション作成
app.background = "rgba(0, 0, 0, 0.1)"; // 背景色をセット
var star = tm.app.Shape(64, 64); // Shape オブジェクト生成
star.canvas.setColorStyle("blue", "yellow"); // ペン、ブラシ色設定
star.canvas.fillStar(32, 32, 32, 5); // ★描画。引数:サイズ、半径、頂点数
app.currentScene.addChild(star); // シーンに追加
app.currentScene.update = function(app) {
star.x = app.pointing.x; // マウス位置 or タッチ位置に移動
star.y = app.pointing.y;
}
app.run(); // 実行
});
演習問題:
tm.main(function() {
var app = tm.app.CanvasApp("#world"); // アプリケーション作成
app.background = "lightgray"; // 背景色をセット
var WD = 128;
var HT = 64;
var R = HT/8;
var block = tm.app.Shape(WD, HT); // ブロック
block.canvas.setColorStyle("black", "lightyellow");
block.canvas.fillRoundRect(0, 0, WD, HT, R);
block.canvas.strokeRoundRect(0, 0, WD, HT, R);
block.y = 100;
block.y = 240;
app.currentScene.addChild(block); // シーンに追加
app.currentScene.update = function(app) {
block.x = app.pointing.x;
}
app.run(); // 実行
});
演習問題:
tm.main(function() {
var target = null; // ドラッグ中オブジェクト
.....
app.currentScene.update = function(app) {
if( app.pointing.getPointingStart() ) {
// マウスボタンプレス
target = null;
if( block.isHitPointRect(app.pointing.x, app.pointing.y) )
target = block;
}
if( app.pointing.getPointingEnd() ) {
// マウスボタンリリース
target = null;
}
if( target != null )
target.x = app.pointing.x;
}
app.run(); // 実行
});
演習問題:
tm.main(function() {
var target = null; // ドラッグ中オブジェクト
var blocks = []; // ブロックリスト
var app = tm.app.CanvasApp("#world"); // アプリケーション作成
app.background = "lightgray"; // 背景色をセット
var WD = 128;
var HT = 64;
var R = HT/8;
for(var y = 140; y <= 340; y += 100) {
var block = tm.app.Shape(WD, HT); // ブロック生成
block.canvas.setColorStyle("black", "lightyellow");
block.canvas.fillRoundRect(0, 0, WD, HT, R);
block.canvas.strokeRoundRect(0, 0, WD, HT, R);
block.x = 100;
block.y = y;
app.currentScene.addChild(block); // シーンに追加
blocks.push(block);
}
app.currentScene.update = function(app) {
if( app.pointing.getPointingStart() ) {
// マウスボタンクリック
target = null;
for(var i = 0; i < blocks.length; ++i) {
if( blocks[i].isHitPointRect(app.pointing.x, app.pointing.y) )
target = blocks[i];
}
}
if( app.pointing.getPointingEnd() ) {
// マウスボタンリリース
target = null;
}
if( target != null )
target.x = app.pointing.x;
}
app.run(); // 実行
});