Squelch: a porting of “Based on Scratch” to Pharo4.0

これはSmalltalk Advent Calendar 2017の記事です。

Pharo上でScratch 1.4(Based on Scratch)を動かしてみた。

Scratch 1.4(Based on Scratch)を素のままで使うと、元のSmalltalkシステムが古いのでいろいろと新しいチャレンジがしにくい。最近のSmalltalk実装であるPharoには、Based on Scratchから派生した Phratch があるが、かなりの修正が加えられている。

そこで、できるだけ元の雰囲気を活かしながら Pharo に移植してみた。1年ほど前から取り掛かってしばらく放ったらかしだったのだけど、Pharo のバージョンも進んでいくのでとりあえずの版を公開してみた。

https://github.com/EiichiroIto/Squelch

Morphic の仕組みも微妙に違っているのでうまく動かないところがあるが、少しずつ新しい Pharo にも対応させていきたい。

Linux版squeakvmの作成

これはSmalltalk Advent Calendar 2017の記事です。穴が空きそうだったので、あわてて作りました。

Ubuntu Linuxなどでパッケージ配布されているScratchのVMでは、ScratchSourceCodeのイメージで起動することができません。(真っ白な画面が表示されてフリーズします)

ScratchのVMは実際にはSqueak SmalltalkのVMですが、どうやらバージョン4系のVMはどれもScratchSourceCodeのイメージで起動できないようです。

そこでSqueak-3.9-8のVMをビルドして使うことにします。32bit版を作るため、普段使っている64bit版のUbuntuではなく、32bit版のUbuntuでビルドします。私はVirtualBox上のlinuxBeanを使ってビルドしました。

64bit版のUbuntuでもビルド可能ですが、i386パッケージを大量にインストールする必要があるので、あえて32bit版をインストールしてビルドしました。

“Linux版squeakvmの作成” の続きを読む

レイアウト変更後の枠表示を調整する

概要

  • 画面レイアウトを変更する」でScratch 2.0風の画面レイアウトに変えましたが、無理矢理位置を変えただけなので不自然なところがいくつもあります。
  • ImageFrameMorphについて」の情報を活用し、できるだけ不自然さをなくすように変更します。

“レイアウト変更後の枠表示を調整する” の続きを読む

ImageFrameMorph について

概要

  • この記事ではImageFrameMorph について説明します。
  • ImageFrameMorph はスクラッチの多くのペインの表示に用いられています。
  • 「画面レイアウトを変更する」で生じた不具合はImageFrameMorph を調整することで(ある程度)解消できます。
  • ImageFrameMorph を上手に使えば表示テイストを変えることができます。

“ImageFrameMorph について” の続きを読む

HatBlockMorphの表示について

概要

  • HatBlockMorph は、緑旗がクリックされた時やキーが押された時など制御(control)カテゴリにあるブロックのsuperクラスです。
  • 他のブロックとは異なる形状をしているため、カテゴリの追加方法のような色の変更を行うと、不自然に表示されてしまいます。
  • この記事では、HatBlockMorph 系のブロックがどのように表示されるかについて説明します。

“HatBlockMorphの表示について” の続きを読む