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
4 posts

ScratchでOSを作るには?

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

ScratchでOSを作るには?

#602

kei5sai wrote:

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

Powered by DjangoBB