画像の表示
前回の「初めてのenchant.js 003シーンの表示[JavaScript]」では、シーンをゲーム上に表示しました。
今回はそのシーンの土台の上に画像を表示させて見たいと思います。
HTMLの方は特に変更なしです。
前回の「初めてのenchant.js 003シーンの表示[JavaScript]」では、シーンをゲーム上に表示しました。
今回はそのシーンの土台の上に画像を表示させて見たいと思います。
HTMLの方は特に変更なしです。
前回の「初めてのenchant.js 002 基本セッティング[JavaScript]」で、基本のセッティングをしました。
今回はゲームのプレイヤー、エネミーなどのオブジェクトを配置していく、
土台になるシーンを表示させてみます。
前回の「初めてのenchant.js 001 基本的なこと[JavaScript]」で準備したファイルでenchant.jsの基本セッティングを行ってみようとおもいます。
まず、index.htmlにゲームのエンジン「enchant.js」と、ゲームの内容をプログラムしていく「main.js」を読み込みます。
読込順は、「enchant.js」→「main.js」です。
最近クロスデバイス&クロスプラットフォームな需要がどんどん高まってきてるなぁーとつくづく実感しております。
インタラクションの効いたコンテンツを作ろうと思った場合に、
ボタンにonClick属性をつけてトラッキングする。
(hogehoge部分は任意の仮想URL)
<a onClick="_gaq.push(['_trackPageview','/hogehoge']);" href="xxxx.mp3" target="_blank">
通常の配列はsort(),reverse()を使うべし。
var arr = [3,5,1,6,3,4,6,3,6,7,4]; alert(arr); //昇順 arr.sort(); alert(arr); //降順 arr.reverse(); alert(arr);
//keyでソートする
function keySort(hash,sort){
var sortFunc = sort || reverse;
var keys = [];
var newHash = {};
for (var k in hash) keys.push(k);
keys[sortFunc]();
var length = keys.length;
for(var i = 0; i < length; i++){
newHash[keys[i]] = hash[keys[i]];
}
return newHash;
}
//テストデータ
var hash = {
"e":55,
"f":66,
"g":77,
"name":88,
"a":11,
"b":22,
"c":33,
"d":44
};
/*
* テスト
*/
//元のハッシュ
var str = "元のハッシュ\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
//昇順(デフォルト)でソート
hash = keySort(hash);
str = "昇順\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
//降順でソート
hash = keySort(hash,"reverse");
str = "降順\n";
for(var k in hash) str += "key:" + k + " val:" + hash[k] + "\n";
alert(str);
Android(スマホ)向けサイトでPDFファイルをダウンロードするとエラーが発生。
どうやらBasic認証がかかったサイトではPDFダウンロードでエラーが発生してしまうみたい。
Classの宣言(作成)的なものは、無名関数を代入するのみ。
定義はprototypeにするべし。
var Rect = function(){};
Rect.prototype = {
width:400,
height:300,
getArea:function(){
return this.width * this.height;
}
};
var rect = new Rect();
alert(rect.width);
alert(rect.height);
alert(rect.getArea());
コンストラクタは、Classの宣言(作成)時の無名関数に定義する。
var Rect = function(w,h){
this.width = w;
this.height = h;
};
Rect.prototype = {
width:400,
height:300,
getArea:function(){
return this.width * this.height;
}
};
var rect = new Rect(200,200);
alert(rect.width);
alert(rect.height);
alert(rect.getArea());
まずメソッドとかの呼び出しは、
1、インスタンス内を検索
2、プロトタイプ内を検索
の流れになる。
var Hoge = function(){};
Hoge.prototype = {
alert:function(mes){
alert("Hoge.prototype:"+mes);
}
};
var hoge = new Hoge();
hoge.alert("Hello"); //Hoge.prototypeのalert()メソッドを実行
hoge.alert = function(mes){
alert("hoge.instance:"+mes);
};
hoge.alert("Hello"); //hogeインスタンスのalert()メソッドを実行
プロトタイプに親クラスをnewして代入すれば、
親クラスのプロトタイプが子クラスのプロトタイプとなる。
var Parent = function(){};
Parent.prototype = {
test:function(){
alert('Parent.prototype::test');
}
};
var Child = function(){};
Child.prototype = new Parent();
var child = new Child();
child.test();
function hoge(arg1,arg2){
var a = arg1 || "デフォルト値a";
var b = arg2 || "デフォルト値b";
alert("a:" + a + ",b:" + b);
}
hoge("fuga","foo");
hoge();
変数にデフォルト値を設定する場合は「||」OR演算子の特性を利用して上のようする。
Powered by WordPress & Theme by Anders Norén