2024 ソフトウェア設計及び演習用の班Wiki

24::gr05::情報交換

戻る

情報交換を行うページです。何かあれば色々追加していってください!

スケジュール

#04 5/10 ものと操作の洗い出し、JavaScript応用
#05 5/17 モジュール化、HTML応用、GitLab
#06 5/24 プロトタイプ作成
#07 5/31 プロトタイプ作成
#08 6/07 見直し
#09 6/14 中間発表
#10 6/21 モジュールの実装など
#11 6/28 モジュールの実装など
#12 7/05 統合テスト
#13 7/12 最終準備発表
#14 7/26 最終発表

スクリーンサイズ

フルスクリーンは933×1850です
https://web-designer.cman.jp/javascript_ref/window/size/

enchant.jsを使った例

2023年度の11班、おそらくリズムゲームです
11班のgithub
シーンごとにモジュール分けされているイメージです。

setup.js

・setup.jsで"let game= new Game"のような最初の宣言を行っています。
・また、イメージを読み込んでおく"game.preload"もここで全部読み込んでしまっているようです。
・ちなみに、preloadは配列で読み込ませることができます。

var ARRAY = {"a.png", "b.png"};
preload(ARRAY);

・gameの定義時にはrootSceneという一つのシーンが出来るのですが、"game.onload = function(){}"という最初に実行される?関数内でgame.replacementを行っています。これにより、実質rootSceneというシーンを使わずにスキップすることが可能です。
・ちなみに、それぞれのシーン遷移では"title(game.status)"と2つのステータスを送っています。これが必要なのかはちょっと調査が必要です。

Gitlabでやり取りするコマンド

詳しくは→演習ページ
○ダウンロードする場合

git pull

○新しいファイルやディレクトリを追加する場合
 ※pullをしてからの方が不具合が起こらないはず

git add (ファイル名)
git commit -m "(コメント)"
git push

※git add . とすると一括で追加可能

○作成済みのファイルをアップロードする(更新する)場合

git commit -a -m "(コメント)"
git push

・アップロード後にGitlab側でファイルを整理することもできますが、その後は必ずgit pullをするようにしましょう。
・自分の端末のファイル構造とGitlabの構造が違う場合、エラーが起こるようです。
・git pull またはgit pushの際、学籍番号とパスワードを求められます。"Authentication" という単語が出てきたら、パスワードを打ち間違えている可能性が高いです。

○現在の追加状況を確認したい場合

git status

○うまく行かない場合(リセット) ・以下の方法で現在のGitLabと強制的に合わせることができますが、この際git pushしていないデータは削除または変更前に戻される事になります。保存されないため、一度別の場所に退避させてから実行すると良いでしょう。
(他にも解決方法はあります)

1) リモートの最新を取ってきておいて・・ $ git fetch origin master
2) ローカルのmasterを、リモート追跡のmasterに強制的に合わせる! $ git reset --hard origin/master

参考サイト

キーの数字割り当てとキーバインド

キーバインド
ASCIIコード
ここを見れば多分大丈夫です。
ちなみに、文字キー以外の割り当てはこのような感じとなっています。

Enter 1013
Delete 11
Space 32

よく使いそうな関数

○シーン遷移(シーン名がscene、ゲーム名がgame、次のシーンの変数名がnextのとき)

scene.replaceScene(next(game));

・gameを渡さないと次のシーンにうまくつながらないため注意

Googleフォントを追加する

Googleのフォント一覧
GoogleのようなWEBフォントは、インストールせずともHTML用のコードをコピーすることで使うことができます。
○使い方
・使いたいフォントを一覧からクリック
・右上のGet fontをクリック
・<> Get embed codeをクリック
・HTMLの<link>を選び、書かれてあるコードをHTMLファイルにコピー&ペースト
・enchant.jsならLabel内でフォントを指定すれば使えるはず

○例えば、DotGothic16はHTMLファイルに以下を記入すれば準備完了です。

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DotGothic16&display=swap" rel="stylesheet">

すごろくのマス

とりあえずエンターキーで進める場合のコード(中間発表用)

scene.addEventListener('touchend', function(){
if(game.input.e)
scene.replaceScene(game)
})

遅延(○秒後に関数を実行)

授業ページJavaScript応用編にも書いてあります。

setTimeout(関数名,ミリ秒) ミリ秒後に関数を1回だけ呼び出す
clearTimeout(timerId1) setTimeoutの処理を停止する.timerId1はsetTimeoutの戻り値
setInterval(関数名,ミリ秒) ミリ秒間隔で関数を定期的に呼び出す
clearInterval(timerId2) setIntervalの処理を停止する.timerId2はsetIntervalの戻り値

・上の「関数名」と書いてある部分には処理を関数の形で入れます。
代入など関数を使わない処理も、以下のように関数の形で書かないと動かない事があります。

×:setTimeout(counter++, 500);
○:setTimeout(function(){counter++}, 500);

参考サイト

クラスの書き方

以下のように書きます。sprite型も同様です。
新しく追加する変数(下の例ではvalue)も、letやconstなどの変数宣言をせず、そのまま

this.value

のように書くことができます。

    MyLabel = Class.create(Label,{
        initialize:function(x, y, option){
            //Label型を呼び出す
            Label.call(this, x, y);  //ここを変更しました(6/21)
            this.x = x;
            this.y = y;
            this.font = "50px Dotgothic16";
            this.color = "rgb(0, 255, 0)";
            this.a = "strings"; //変数型letなどを書かなくてよい
            this.text;
            if(option === "random"){
                //もし"random"と指定されたら1~10の乱数を生成
                this.value = Math.floor(Math.random()*10);
            }else{
                //指定が無ければ5とする
                this.value = 5;
            }
        }
    });
    //クラスを使う クラス名の前に"new"とつける
    let t = new MyLabel(100, 400, "random");
    t.text = t.value;
    scene.addChild(t);

ターミナルからhtmlファイルを開く

open aaaa.html

というコマンドでできます。

戻る


最終更新日:2024/06/21 19:35:29