ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

返信する
Furosiki
記事: 25
登録日時: 2017年4月02日(日) 13:46

ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

投稿記事 by Furosiki »

以前、Twitterで質問した時にJAVAScriptの修学には、MV本体に付属するプラグインを参考にするといいと聞いたのですが、
いざ、見てみると目的の記述を学ぶに必要なスクリプトの記述を探るのには、
その他の記述が多すぎる為、目的の記述が見つからず、結局分かりませんでした。

もっと基本的な情報から覚えようとしても、調べ方が悪いのか、
MVをやっておられる方のサイトや参考書の画像を表示するプログラムが項目を見ても、
情報が多すぎて何所から画像を引用するのか、今一つ分かりませんでした。

現在、私が知りたいのは色々ありますが、今回はまず、イベントコマンドを使わないで、
「pictures」フォルダ内にある画像ファイルを読み込んで画面に表示するだけのスクリプトを教えて下さい。
勉強不足がたたっているだけだと思いますが、他の事については、次の機会に致しますので、
視認し易い一クラスに命令文を一つだけ入れる程度の解答をお待ちしております。
もし、同じ質問がありましたらお手数をおかけしますが、そちらの記事のリンクを教えて下さいませ。
宜しくお願いします。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

投稿記事 by トリアコンタン »

こんにちは!
マップ上に画像を表示するプラグインのサンプルです。
以下のコードをjs形式で保存してプラグインとして取り込んでみてください。

コード: 全て選択

(function() {
    'use strict';

    var _Spriteset_Map_createLowerLayer = Spriteset_Map.prototype.createLowerLayer;
    Spriteset_Map.prototype.createLowerLayer = function() {
        // createLowerLayerの元の処理を呼び出します。
        _Spriteset_Map_createLowerLayer.apply(this, arguments);

        // 画像を格納する箱を作成します。
        this._testSprite = new Sprite();

        // 箱に実際の画像をロードします。(ピクチャフォルダのファイル名を指定。拡張子不要)
        this._testSprite.bitmap = ImageManager.loadPicture('Bat');

        // 箱を画面に追加します。
        this.addChild(this._testSprite);
    };
})();
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
Furosiki
記事: 25
登録日時: 2017年4月02日(日) 13:46

Re: ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

投稿記事 by Furosiki »

トリアコンタンさん、有難う御座います。最初はコピー&ペーストしても上手く行きませんでしたが、
プラグインフォルダにあるテスト用プラグインを開いて記述しないしたら、
無事、画面左上に蝙蝠の画像が出ました。
ただ、どうしてこの文字列で態々、
enemiesフォルダやsv_enemiesフォルダにあるBatという名前の画像を避けてまでpicturesフォルダを読み込みに行くのか、
そしてpicturesフォルダにその名前を持つ画像がないとエラーが出るのか分かりません。
本当でしたら、フォルダーのアドレスの様な物を記述する必要があると思いますが、
何度見てもそれが何所にあるのか分かりませんでした。
恐らく、

// 箱に実際の画像をロードします。(ピクチャフォルダのファイル名を指定。拡張子不要)
this._testSprite.bitmap = ImageManager.loadPicture('Bat');

このloadPicture('Bat');のLoadと(の間がアドレスに値すると思いますが、
実際はどうなっているのでしょうか?
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

投稿記事 by トリアコンタン »

loadPictureの中身は以下のようになっています。
rpg_managers.jsに記述があります。

コード: 全て選択

ImageManager.loadPicture = function(filename, hue) {
    return this.loadBitmap('img/pictures/', filename, hue, true);
};
ここでファイルパス'img/pictures/'を指定して「loadBitmap」を呼んでいます。
そしてさらに、loadBitmapの定義は以下の通りです。

コード: 全て選択

ImageManager.loadBitmap = function(folder, filename, hue, smooth) {
    if (filename) {
        var path = folder + encodeURIComponent(filename) + '.png';
        var bitmap = this.loadNormalBitmap(path, hue || 0);
        bitmap.smooth = smooth;
        return bitmap;
    } else {
        return this.loadEmptyBitmap();
    }
};
ここで末尾に拡張子.pngを付与して変数「path」に表示したい画像のアドレス(プロジェクトルートパスからの相対パス)が格納されます。
さらにこの呼び出し先では画像をロードして、見付からなかった場合はエラーイベントが呼ばれる仕組みになっています。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
Furosiki
記事: 25
登録日時: 2017年4月02日(日) 13:46

Re: ゲーム制作に必要なスクリプトの記述を会得するのに必要なスクリプトの記述を見定められません。

投稿記事 by Furosiki »

>loadPictureの中身は以下のようになっています。
なるほど、関数を作ってそこでアドレスを入れていた訳ですね。
これをコピー&ペーストして弄れば、独自のフォルダから画像を読み取る
プラグインが出来そうですね。
私の分からない事にお付き合いして頂き、誠に有難う御座いました。
返信する

“MV:質問”に戻る