ゲーム製作初心者の俺がマルチプラットフォームなゲーム作ってみるスレ

Check このエントリーをはてなブックマークに追加 Tweet

56 :VIPにかわりましてGEPPERがお送りします(東京都) [sage]:2012/03/01(木) 23:38:37.83 ID:sZkJnwvto
>>50
流石にこれは違うと思うので指摘、ちょっと長いので3レスに分けてw

自分も専門ではないので結構間違いは結構あると思う。そこは他の人が指摘してくれると嬉しい
先に言っとくと殆ど「JavaScript本格入門」という本からの受け売りです。
さらに十分に理解できてるとは言えない、いい加減な知識での受け売りですw
本を読んだ方が100倍いいですw
57 :VIPにかわりましてGEPPERがお送りします(東京都) [sage]:2012/03/01(木) 23:39:36.38 ID:sZkJnwvto
varはメンバー変数の生成。
変数には有効範囲があり、varを付けて宣言した場合と付けない場合では
変数の使用できる有効範囲が違う。
例えばfunctionの中で宣言した変数は、varを付けていればfunctionの中でのみ有効
付けていなければfunctionの外でも有効。

変数の「型」に関しては、JavaScriptは表記方法で型を認識してる。
違った型同士で計算された場合は自動的にどちらかに変換(ネスト)されるか、またはエラーをはく

数値型 ・・・ 数字。入力時に数字を打ち込むと数値型になる
文字列型・・・文字列。入力時に""または''で囲むとストリングス型になる
ブーリアン型・・・trueとfalseの2つしか値が無い。""や''なしでtrueまたはfalseと書けばブーリアン型になる
配列型・・・データ集合体。new演算子でarrayオブジェクトのインスタンスを生成するか(後述)、[]で囲んでルール通りに記述すれば配列になる
オブジェクト型・・・データの集合体。{}で囲んでルール通りに記述すればオブジェクト型になる。
function型・・・実行できるプログラム要素を持つもの。function(){}で囲んでルール通りに記述すれば関数型となる。
特殊型・・・値が設定されていないなど

ちょっと特殊なのがfunction型とオブジェクト型
function型というのは呼び出された際に登録されたプログラムを実行し、実行した結果を返す。
例えば、
testFunc = function(){return 5;};
hoge = testFunc();
この場合、returnは値を出力する命令なのでhogeには5という数字が代入される。
function型の変数を呼び出す(実行する)場合は()を付ける。
この()は投げ値というのに使います。投げ値についてはあとでちょっとだけ書きます

あとfunctionの書き方には2種類ある。上記のような書き方以外にこういう書き方も出来る。
function testFunc(){return 5;}
この場合、最後の;はいらない

function型の変数は単体で実行できる(こっちの使用方法の方がメジャー)
たとえばfunction型の変数hogeがあった場合、
hoge();
と書かくと、格納されたプログラムが実行される。
58 :VIPにかわりましてGEPPERがお送りします(東京都) [sage]:2012/03/01(木) 23:40:27.14 ID:sZkJnwvto
次にオブジェクト型について説明
オブジェクト型は複数の変数を格納しておける大きな箱みたいなもの。
オブジェクト型に格納された変数も型があり、例えばオブジェクト型の中にオブジェクト型を格納するなんてことも可能
もちろんfunction型も格納できるよ
オブジェクト型の格納されたデータにアクセスするには.(ドット)を使う
だからオブジェクト型のhogeって変数の中にあるuryaって変数(プロパティと呼ぶ)にアクセスする際は
hoge.urya
と記述する。

でwindow.onloadって何よって話だけど
これはブラウザ自体が最初から持っているオブジェクト型の変数windowのonloadプロパティをいじっている
function型の値を代入してやると、ブラウザの読み込み終了後に自動的に実行される。

bear.image = game.assets['hogehoge'];
についてだけどまず、assets[]は配列型の変数。
配列の中でも連想配列という少し特殊な配列。
これはただ、bearオブジェクトのimageプロパティにゲームオブジェクトのassets['hogehoge']プロパティに格納された
値を代入しなさいとそれだけです。

newはnew演算子という演算子(+-=なんかと同じ)。
指定したオブジェクト型変数のコピー(インスタンスという)を作る。
例えば弾幕シューティングゲームを作る際、画面上にある弾は全てがそれぞれに
・自分のY座標
・自分のX座標
・自分の進む方向
・自分のスピード
・自分の当たり判定
なんていう情報(変数)を持っている。
なのでまず元の設計図となる弾というオブジェクトを作ってそれをコピーして100個のオブジェクトで弾を管理する
といった場合に使用する

bear = new Sprite(32, 32);
Spriteという設計図をもとにインスタンス生成してbearに代入している。
32,32という数値があるけど、これは投げ値
オブジェクトにはnew演算子でインスタンスが生成される際に指定されたfunction(コンストラクタという)を実行する機能があり、
そのfunctionに値を投げてる。
もとのコードが分からないので何とも言えないけど、32*32のスプライトを作ってってことじゃないだろうか

new演算子はすっごい難しい。自分がプログラム半分挫折してるのはコイツのせい。
オブジェクトだけでプログラムを構築していく方法をオブジェクト指向といい、
これが理解できればJAVAやC#なんかも出来るようになるかも?

以上。長々とごめんなさい
99.43 KB Speed:0   VIP Service 製作速報VIP(クリエイター) 更新 専用ブラウザ 検索 全部 前100 次100 最新50 続きを読む
名前: E-mail(省略可)

256ビットSSL暗号化送信っぽいです 最大4096バイト 最大50行
画像アップロードに対応中!(http://fsmから始まるひらめアップローダからの画像URLがサムネイルで表示されるようになります)


スポンサードリンク


Check このエントリーをはてなブックマークに追加 Tweet

荒巻@中の人 ★ VIP(Powered By VIP Service) read.cgi ver 2013/10/12 prev 2011/01/08 (Base By http://www.toshinari.net/ @Thanks!)
respop.js ver 01.0.4.0 2010/02/10 (by fla@Thanks!)