Discuss Scratch

Shunkacchi
Scratcher
100+ posts

ScratchでOSを作るには?

そういえば、密かに「NIGHT OS」というものを作っていました。これ

Shunkacchi wrote:

「お知らせ・ニュース」#1123より引用 wrote:

コードエディターに新しいブロックが追加されました!
<online?::sensing>
<略>
新しいブロックとして「online?ブロック」が追加されました(詳しくは、お知らせ・ニュースの#1123参照)。
これにより、タスクバーにあたる場所にWi-Fiが接続されているかの表示が簡単になりました。
また、ブラウザ風アプリに「ネットに接続しないと使えません」機能をつけてみることもできちゃったりして…と思ってます。
これも実装して、OS内に組み込んだ「NIGHT-NET」や翻訳は、インターネットがないと使えない仕様にもしてみました。
あと、検索エンジンにはこの検索エンジン再現の素材(自作)を組み込んだり、ミニゲームは背景しか使ってない、組み込みやすいミニゲーム(自作)を使用したりと、技術の集大成にしてます。
でも、ほんとのことを言うと、技術の集大成は能地島駅です。
kei5sai
Scratcher
7 posts

ScratchでOSを作るには?

今までにないOSを作る際に心掛けていることってありますか?

Last edited by kei5sai (April 21, 2026 06:40:01)

Shunkacchi
Scratcher
100+ posts

ScratchでOSを作るには?

#602
「パソコン」とか調べて、他人の作品を見てみることです。
「技術力がすごすぎて、僕には到底できない!!」という機能がほぼ必ずありますが。
adhidasuhadesu
Scratcher
6 posts

ScratchでOSを作るには?

ちなみにスクラッチソフトというやつ作ってますあと
案があります
say (username)
とやったり
set [名前] to (username)
にしたら名前がユーザー名で固定されるのでいいと思います
adhidasuhadesu
Scratcher
6 posts

ScratchでOSを作るには?

って思ったけど
<online?>
はweb版だと普通は使えない!だからほぼ使えない
23940325
Scratcher
100+ posts

ScratchでOSを作るには?

#604
その案は既に複数の場所で使われていると思われますがいいですね!
scratchにログインしていない方々はゲストモードとして、以下のコードを組むのもいいと思います。

when green flag clicked
if <(username) = []> then
set [ユーザー名 v] to [ゲスト]


else
set [ユーザー名 v] to (username)
end

こうすることによって、ユーザー名がない(=ログインしていない)人はゲストとし、それ以外をユーザー名とすることができますね。
hikari2014
Scratcher
11 posts

ScratchでOSを作るには?

#602

kei5sai wrote:

今までにないOSを作る際に心掛けていることってありますか?
僕は全部を自作プログラミング言語で記述する、自己完結型OSを目指しています
efqus2811
Scratcher
6 posts

ScratchでOSを作るには?

クローンを並べるプログラム

初ポスト?失礼します。こちらの“クローンを並べる”プログラムを参考にしてみてはいかがでしょうか。欠陥品ですが…。
縦ではなく横に並べるプログラムですが…。
クローンの生成⇩
when I receive [Desktop]
set [clone_count] to [0]
repeat (length of [desktop-icon] :: list)
change [clone_count] by (1)
create clone of [自分自身]
end
……
クローンが生成された時⇩
when I start as a clone
定義1
show
……
定義1のプログラムです⇩
if <<[0] < (clone_count)> and < (clone_count) < [11]>> then
set y to (150)
定義2
end
if <<[10] < (clone_count)> and < (clone_count) < [21]>> then
set y to (100)
定義2
end
これを繰り返してください。(ここは改良が必要)
……
定義2のプログラムです⇩
if <(length of (clone_count)) = [1]> then
定義3
end
if <(length of (clone_count)) = [2]> then
定義4
end
……
定義3のプログラムです⇩
set x to ((-214) + ((50) * (clone_count)))
……
定義4のプログラムです⇩
set x to ((-214) + ((50) * (letter (2) of (clone_count))))
……
以上です。
よく考えたら定義3と4って埋め込んで省略できますね。
このプログラムはが過去に書いたプログラムです。
横に並べていますが、端からはみ出すという重大欠陥があります。変数をかける時の50を45などに変更する必要があります。
また、少しでもフォーラム上で短くなるように脳内で簡略化して書いています。ですので計算などが間違っている場合があります。
正しく動作しているプログラムを見たい場合は、こちらまたはこちらを見てください。

Last edited by efqus2811 (May 11, 2026 07:06:44)

adhidasuhadesu
Scratcher
6 posts

ScratchでOSを作るには?

スクラッチには
(current [年 v])

(ユーザー名)
とかのブロックがありますから
それらを駆使して夜になるとダークモード
when green flag clicked
if <(current [時 v]) = [17]> then
broadcast [ダークモード v]
end
ioqj
Scratcher
500+ posts

ScratchでOSを作るには?

ダークモードだけでなく、時間帯に合わせて背景を
明け方・朝・昼・夕方・夜 のようにかえるのも楽しいと思います。
kutakara
Scratcher
23 posts

ScratchでOSを作るには?

ioqj wrote:

ダークモードだけでなく、時間帯に合わせて背景を
明け方・朝・昼・夕方・夜 のようにかえるのも楽しいと思います。
AppleのMacOSにも「ダイナミックデスクトップ」という名称でありましたね。
(Mojaveあたりで追加されました。)

Scratchでやるとしたら、いくつかの画像を用意するのも良いと思うんですけど、
容量が大きくなってしまうので
set [明るさ v] effect to (0)
などを使って擬似的にやれば軽量化できるかな…と。
(でもやはりいくつかの画像を用意したほうが綺麗にはなりますね。)
hikari2014
Scratcher
11 posts

ScratchでOSを作るには?

kutakara wrote:

ioqj wrote:

ダークモードだけでなく、時間帯に合わせて背景を
明け方・朝・昼・夕方・夜 のようにかえるのも楽しいと思います。
AppleのMacOSにも「ダイナミックデスクトップ」という名称でありましたね。
(Mojaveあたりで追加されました。)

Scratchでやるとしたら、いくつかの画像を用意するのも良いと思うんですけど、
容量が大きくなってしまうので
set [明るさ v] effect to (0)
などを使って擬似的にやれば軽量化できるかな…と。
(でもやはりいくつかの画像を用意したほうが綺麗にはなりますね。)
これについてですが、背景の画像をパーツに分けて、
set [明るさ] effect to (...)
をすれば綺麗だと思います
rrrrrrrrrrhhhhht
Scratcher
100+ posts

ScratchでOSを作るには?

ふと思ったのですが、ガチOSにするためにブラウザを作るってなかなか難しいですよね。
僕が思いついたやり方だと、Kuppi-scratchさんのリアルタイム地震ビューアーのように、外部サーバーがWebサイトの内容を取得して、Scratch製OSもどきと外部サーバーと通信して、ペンで完璧に描いてボタン押したら移動するようにする…みたいな方法ですが、外部サーバーなんか使うとお金かかるし、高度な知識と技術と経験がいるし…って感じで色々と大変になってしまいます…。
kutakara
Scratcher
23 posts

ScratchでOSを作るには?

#613
技術的には可能ですね。(ただ複雑なSPAなどは厳しいでしょう。)
不適切なものを表示してしまう可能性があるため、
(一般的に見れる)全てのサイトにアクセスできるブラウザは技術的な面でも、Scratchのガイドライン的な面でも厳しいと思います。
rrrrrrrrrrhhhhht
Scratcher
100+ posts

ScratchでOSを作るには?

#614

じゃあ、外部サーバーの方でScratchで見れてしまうとガイドラインとかに違反してるようなサイトをブロックさせないといけないということになりますね。
あと、それでYouTubeを見てしまうと投稿者さんに収益が入るかも心配ですし、学タブ勢が「Scratch最高!」って言ってYouTubeを平気で見始めないかも心配ですね。
Shunkacchi
Scratcher
100+ posts

ScratchでOSを作るには?

#613 #614 #615
Scratchで作れるOSプロジェクトは、あくまで疑似的なものにすぎません
ブラウザも疑似的なものにしかできないと思います。
例えば、僕が作ったNIGHT OSの「NIGHT-NET」は、あくまで検索エンジンを真似て作ったもので、あらかじめ作ったデータベース(名前だけですが)に、URLを紐づけて検索時に名前が引っかかったら同時にURLを出してきて、ブラウザのURL欄に貼り付ければ見れるというものに過ぎません。
kutakara
Scratcher
23 posts

ScratchでOSを作るには?

#616
クラウド変数と自前のサーバを用意し、ある程度の設定、プログラミングができれば可能です。
実際に行ったことでの責任は負えないので、詳しくは書きませんが、

1:OSプロジェクトのブラウザから見たいサイトをクラウド変数に載せる
2:サーバ側でそれを受信し、サーバ側でそのサイトを開き、画面を保存する、
3:それを数値にする
4:サーバ側からクラウド変数に載せる
5:それを取得し、描画する。

と言ったかんじです。
ただクラウド変数の文字数制限などがあるので、現実的には厳しいです。
が、十分ブラウザとしては使えると思います。
(PTEなどを搭載すればテキストブラウザとして使用できますし。)

追記:あくまで技術的には可能、という意味です。
推奨もしていませんし、行うこともお勧めしていません。(そのためわざと抽象的に書いています。

Last edited by kutakara (July 21, 2026 10:33:11)

hikari2014
Scratcher
11 posts

ScratchでOSを作るには?

#617

ブラウザを実装するなら、300文字に収まるように、パケットで送信するのがいいと思います。
流れはほとんど同じで、

kutakara wrote:

#616
(前略)

1:OSプロジェクトのブラウザから見たいサイトをクラウド変数に載せる
2:サーバ側でそれを受信し、サーバ側でそのサイトを開き、画面を保存する、
3:それを数値にする
4:サーバ側からクラウド変数に載せる
5:それを取得し、描画する。
(後略)

1:OSプロジェクトのブラウザから見たいサイトをクラウド変数に載せる
2:サーバ側でそれを受信し、request, nodejsならhttps, httpでhtml contextを取得
3:それを数値にする
4:サーバ側からクラウド変数にパケットずつ送る
5:それを取得し、描画する。
にすれば実現できます。
デザインやそういうのが崩れる以外は実用性があるとおもいます。
hikari2014
Scratcher
11 posts

ScratchでOSを作るには?

その他のアイデアで言うと、完全にscratch内で実装することですね。
クラウドヘンスを活用し、webやurlの検索システムをDIYし、フロントエンドを持ってくるだけ実装できそうです。
Shunkacchi
Scratcher
100+ posts

ScratchでOSを作るには?

#617 #618 #619
でも最初からOSに組み込むのはさすがに難しいと思うので、まずひとつのプロジェクトとして共有し、フィードバックをもらって改善し、最終決定版でOSに組み込むのがいいと思います。
最初からOSに組み込むとなると、時間がかかって途中経過で変な感じ(クラウド変数が表示されたままとか)のまま他人に見られるかもしれませんし、まずプロジェクトを作って、そのプロジェクトのスプライトたちを一気にドーン!!とOSに組み込み、ウィンドウ幅に合わせて完成!というのがOS導入の工程だけ見れば一番手軽で早く終わるように感じます。

Powered by DjangoBB