0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tscratch3LikeLib( Google FireBase Studio )

Last updated at Posted at 2025-05-11

Tscratch3LikeLibをクラウドで使おう

『Tscratch3LikeLib』をお手元のPCで利用するためにはNodeJSやGitを仕込んだりする必要があります。
この環境準備の『壁』を脅威に感じる方も多かろうと推測いたしますので、ブラウザとGoogleアカウントがあれば使えてしまう便利な開発環境をご紹介したいと思います。

必要なもの

  • Googleアカウント
  • Chromeが使えるデバイス
    必要なのはこれだけです!
    ちなみに他のブラウザでも使えると思いますけど、ご紹介したい開発環境はGoogle提供サービスですので、Chromeを利用するほうが何かと安心でしょう。

Googleアカウントの作成

作成要領の説明ははしょります。

FireBase-Studio

FireBase-StudioGoogleが提供する『クラウドベースの開発環境』です。PCへ特別なソフトウェアをインストールする必要はなく、ブラウザだけでプログラミングができるものです。その他同種のサービスがありますがFireBase-StudioはPC上でのMicroSoft Visual Codeと同じようなことができる有難いサービスです。

image.png

  • 無料で使える 開発環境
  • Npm,Gitは始めから仕込み済
  • 無料で使えるWorkSpace数には制限ありだが、学習用途なら問題なし
  • Workspaceは保存されるのでいつでもすぐに続きができる

使ってみましょう

次のURLでアクセスしましょう。

https://studio.firebase.google.com/

Get Started

クリックしましょう。

image.png

ChoromeでGoogleにログインしていないときは、アカウントを選択してね!と言われますので、適切なアカウントでログインしてください。

image.png

ログインできていれば FireBase StudioのTOPページにたどり着きます。

image.png

Workspaceを作る

Tscratch3LikeJsのテンプレートレポジトリをImportしてみます。

image.png

image.png

https://github.com/amami-harhid/templateTscrach3.git

このレポジトリURLを入れてください

image.png

Name your workspaceのところが自動で表示されますので、わかりやすいように変えてもOKです。私の場合は自分の名前をつけて

harhid-templateTscratch3.git

にしてみました。準備ができたらImportしてください。

image.png

Workspaceを作成し始めますので少し待ちましょう。

image.png
image.png

開発環境が表示されました。GoogleのAI(Gemini)のタブが見えますが私は使わないクチ(邪魔に思うタイプ)なのですぐにタブを消してしまいます。

image.png

Workspaceを作った最初にやること

npm package を取り込む

左側の『≡』メニューよりターミナルを表示しましょう

TerminalNew Terminal

image.png

image.png

ターミナルで npm ci

workspaceを作った直後に1回だけ実行すればOKです。

$ npm ci  ( +Enter )

image.png

しばらく待つと終わります。
image.png

Exploreをみると、node_modules ができています。
image.png

Extension ( Live server / Eslint を入れる )

Workspaceを作るたびに入れる必要があります。

image.png

Live server (ritwickdey) インストール

live server

で絞り込み 『Live Server (ritwickdey)』をインストールしてください。

image.png

ESLint (dbaeumer) インストール

ESLint

image.png

ESLint Restart

次に ESLintサービスを再起動させます。

Ctl+Shift+Pキー と3つのキーを同時に押します。
image.png

コマンド欄に restartといれて絞り込みます。
image.png

Restart ESLint Serverの行をクリックして、OUTPUTを表示します。

image.png

Tasksのところから ESLintを選びます。
image.png

image.png

出てこないときは、Extensions(ESLint)のところで次の順に実行してください。
disable-->Reload Window-->enable
image.png
image.png
image.png

この後、ESLintサービスを再起動させてください。

image.png

Server process exited successfullyと表示されていたら問題はありません。

LiveServerで表示してみよう

LiveServer起動

Go Liveをクリックしてください。

image.png

port 5500を使ってアクセス可能となりました。(番号は変わることがあります)

image.png

ブラウザでは?

image.png

プロジェクトのトップが表示されていますので、build==>templateの順にクリックしましょう。

image.png
image.png

すると、予め用意してある「テンプレートページ」を表示するはずです。
image.png

これが出たら、適切に環境を用意できたことになります。準備完了です。

Workspaceを削除しない限り、準備を繰り返す必要はありません。お疲れ様でした。

コードを書こう

新しいフォルダーを作る

トップにある srcフォルダーの中にtemplateフォルダーがありますので、それをコピーしてsrcの下に別のフォルダーを作りましょう。

image.png

image.png
image.png
image.png
image.png
image.png

注意点

新しいフォルダーを作るときは、LiveServerを停止しておくことをおすすめします。LiveServer動作中にはフォルダやファイルの名前を変えることができないからです。

image.png

image.png

scripts/script.ts を修正

image.png

ロード処理

const Jurassic = 'Jurassic'; // 追加
const Cat = 'Cat';           // 追加
const Chill = 'Chill';       // 追加

// 事前ロード処理
Pg.preload = async function(this:S3PlayGround) {
    this.Image.load('../../assets/jurassic.svg', Jurassic); // 追加
    this.Image.load('../../assets/cat.svg', Cat);           // 追加
    this.Sound.load('../../assets/Chill.wav', Chill);       // 追加
}

コンパイルする

$ node ./parceler.js practice01

image.png

buildフォルダに ビルド結果が入りました。

LiveServerで見てみると

image.png
image.png

image.png
image.png image.png

大文字と小文字を間違えていますね。

jurassic.svg-->Jurassic.svg へ変更します。

const Jurassic = 'Jurassic'; // 追加
const Cat = 'Cat';           // 追加
const Chill = 'Chill';       // 追加

// 事前ロード処理
Pg.preload = async function(this:S3PlayGround) {
    this.Image.load('../../assets/Jurassic.svg', Jurassic);
    this.Image.load('../../assets/cat.svg', Cat);
    this.Sound.load('../../assets/Chill.wav', Chill);
}

再度ビルドします。
image.png

image.png

ロード処理が成功したようです。

ステージ作成

ステージを作り、背景を設定します。

// ステージの変数
let stage: S3Stage;       // 追加

// 事前準備処理
Pg.prepare = async function() {
    stage = new Lib.Stage();
    await stage.Image.add(Jurassic);
}
$ node ./parceler.js practice01

image.png

背景(Jurassic)を表示できました。

ステージで音を鳴らす

ずっと繰り返して Chillを鳴らします(終わるまで鳴らす)

// 事前準備処理
Pg.prepare = async function() {
    stage = new Lib.Stage();
    await stage.Image.add(Jurassic);
    await stage.Sound.add(Chill);      // 追加
}
// イベント定義処理
Pg.setting = function() {
    stage.Event.whenFlag(async function*(this:S3Stage){
        // ずっと繰り返す
        for(;;){
            // 終わるまで鳴らす
            await this.Sound.playUntilDone(Chill);
            yield;
        }
    });
};

画像ではわかりませんが、ブラウザで実行すると音が鳴り始めました。

スプライト(ネコ)を作成する

// スプライト(ネコ)の変数
let cat: S3Sprite;            // 追加

// 事前準備処理
Pg.prepare = async function() {
    stage = new Lib.Stage();
    await stage.Image.add(Jurassic);
    await stage.Sound.add(Chill);
    cat = new Lib.Sprite('catTest');     // 追加
    await cat.Image.add(Cat);            // 追加
}

image.png

スプライト(ネコ)が中央に表示されました。位置のデフォルトは (x,y)=(0,0) です。

スプライト(ネコ)を回転させる

// イベント定義処理
Pg.setting = function() {

    // ネコの「旗を押したときの動作」を追加する
    cat.Event.whenFlag(async function*(this:S3Sprite){
        // 100回繰り返す
        for( const _ of Lib.Iterator(100)) {
            // 右方向へ5度ずつ回転
            this.Motion.Direction.degree += 5;
            yield;
        }
    })
};

ネコが5度ずつ回転を「100回」繰り返します。
tscratch3010.gif

最後に

今回はGoogle FireBase Studioを利用してプログラミングをする簡単な事例をご紹介しました。

Google FireBase Studioを使えば、ブラウザだけで、Scratch3風のTypescript Programmingを簡単に楽しむことができます。是非使ってみてください。

Google FireBase Studioを使えば、MS VSCodeでできることはほとんどできてしまうようです。

しかも 無償で利用できて、お手元のPCへ面倒な環境設定をする必要もなく、わりとすぐに使いだせます。

残念ながら、日本語化はまだ対応されていないようです(待っていたらできるようになるかも)。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?