スクラッチ scratch

スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

第1回子供向けプログラミング寺子屋『CoderDojo熊本』に参加したニンジャからいただいたご質問。

ニンジャ
左ボタンを押したときに、左を向くようにしたいんです・・
アオキ
そりゃそうだよね、マリオもロックマンも左ボタン押したら左向くもんね。

と当たり前のような事を思いつつも、スクラッチでいざやってみようとすると、なかなか左を向いてくれない。

試しにいくつかブロックを組み合わせてみるも、キャラクターがひっくり返ったりして。

『左ボタンを押したら左を向く。』

当たり前のように思っていることが、コンピューターにとっては当たり前じゃないんだなと再認識した瞬間でした。

Sponsored link

スクラッチプログラミングの横スクロールアクションゲームを参考にしてみる

iPhoneを世に生み出したスティーブジョブスはこう言ったそうです。

ピカソは「優れた芸術家は模倣し、偉大な芸術家は盗む」と言った。だから僕たちは、偉大なアイデアを盗むことに関して、恥じることはなかった。

参考リンク

この記事によると、

ピカソも、エジソンも、ジョブズも、コップラも、

様々な偉人の真似をし、盗み、創造性を高めていったようです。

もちろん本当に盗むのは犯罪行為なのでNGですが、様々な作品を吸収し、混ぜ合わせ、オリジナルのアイデアを組み込む事で、画期的な商品が世に産まれでてきたのだと。

第1回『CoderDojo熊本』に来ていた親御さんから、

親御さん
うちの子は、こうやればいいと指示があればできるんだけど、いざ自分でつくろうとすると出来ないんです・・

なんてお悩みを伺ったのですが、その子はなんと、まだ6歳。

今はとにかくどんどん模倣して、どんどん真似て、いいところをどんどん吸収すればいいと思うんです。

自分の中にネタが溜まってきたら、ちょっとずつ組み合わせて変えていけば。

アイデアをひねり出す方法として有名な『オズボーンのチェックリスト』も、既存のものを活用してアイデアを出す方法ですし。

参考リンク

そういう意味で、子供向けプログラミング『スクラッチ』は、参考になる作品がたくさん。

スクラッチのコミュニティガイドラインにもこう記されています。

共有すること。
Scratchで見つけたプロジェクトやアイディア、画像などすべてのものは、自由にリミックスできます。同様に、あなたがシェアしたものも、誰でも自由に使うことができます。リミックスするときは、必ずクレジット(元の作者名)を「作品への貢献」として記載してください。

コミュニティガイドライン

また、共有することを前提に、あらかじめ用意してあるブロックを組み合わせて作るので翻訳の手間もなく、

世界中のあらゆる作品の裏側を、これでもかというくらいに全部見れちゃいます。

自由に真似て、自由に取り入れて、よりよいゲームや作品が増え続けるという、とんでもない仕組みです。

アオキ
なんてものをつくったんだMIT(マサチューセッツ工科大学・・)

ということでさっそく参考に見てみたいと思います。

スクラッチプログラミングでマリオ風の横スクロールアクションゲームが見つかって

スクラッチのサイトで「見る」をクリックすると、世界中のあらゆる作品を見渡すことができます。

『ゲーム』をクリックして、どれにしようか天の神様の言う通り、と探したら、たまたまこの『ゲーム』を見つけました。

リンク

マリオです、どうみても。

正真正銘、マリオのパクリです、いや、模倣であり真似です、リスペクトでオマージュです、そして参考にしまくってます。

試しにmarioで調べたら、個性豊かなマリオ達がたくさんみつかります。

アオキ
著作権とか大丈夫?

と思いつつも、せっかくなので作品の裏側を見てみようと思います。

※著作権についてご指摘いただきましたので記事最後に追記しました。

画面右上の『中を見る』をクリックすると、裏側があっさりとみれちゃいます。

ニンジャの質問にあった『左ボタンを押したら左を向く』、というのも見つけました。

90度に向けて右向き、反対側に向けるなら-90度ですね。

しれっと角度やマイナスという概念もでてきて、簡単な算数の要素も入ってきてますね。

マリオが歩いているように見える動作も、パラパラ漫画の要領で幾つかの画像を用意して、

左か右のキーを押したら『次のコスチュームにする』ということで、パラパラするように実現しています。

『もし〜でなければ〜』というブロックは、プログラムでいうところの if 〜 else 文にあたり、

『定義[Walk]』というのは、プログラムでいうところの『ユーザー関数(ある動作をまとめておく)』だろうと思います。

ほかにも、

  • コインに触れたらコインの枚数が増える方法とか(当たり判定)
  • よくよく見ればマリオのX軸動いてないとか、
  • 背景が2つあるけどどう設定しているかとか、
  • クリボーどのタイミングで出てくんねんとか、

いろんな発見ができて、意外におもしろいです。

  • コインに触れたらコインの枚数が増える

  • 背景たっぷり準備されている

  • クリボーはレベルによって出てくる数がずいぶん違う

アオキ
ちなみにクリボーは英語でGoombaだそうです。知らなかった・・

実際のプログラムの仕事でも、大きい会社になればなるほど、

自分で一から全部プログラムをつくるということはほとんどなく、

すでにあるプログラムをとにかく読み込んで、作り方や定義をしっかり把握して、しっかりバックアップとりつつ、

そこから改造するなりちょっとプログラム追加したりして、その都度ドキュメントに残したりします。

プログラムの仕事の8割は読むこと、と言われたりもします。

プログラミングをする中で、プロジェクトの種類にもよるが、コードリーディングの占める割合は高い傾向がある。ものによっては8割読み、2割書くといった具合だ。フレームワークや周辺コード、必要な箇所を正しく理解するのにコードリーディングは必要となる。

エンジニアリング組織論への招待の著者 坂本大地
Qiita

他の人のプログラムを自由に見れ、
まだ見ぬ考え方に触れ、新しいアイデアをひねり出す場として、
『スクラッチ』は格好の素材だと思います。

さいごに

『スクラッチ』は知れば知るほど奥が深く、大人がハマると言われている理由もわかるなぁと思います。

ちまたでは『STEM教育』
(サイエンス(科学)、テクノロジー(技術)、エンジニアリング(工学)、マスマティックス(数学))

が今後さらに重視されるようになると言われていて、

いずれの知識にもつながるのが、プログラムであり、『スクラッチ』であろうと思うので、

小学生も、中学生も、親御さんも、ぜひどんどんスクラッチの他人のコードを見て、真似て、模倣して、参考にしていただければと思います。

2018/09/09 追記
著作権についてTwitterにて指摘をいただきました。

アメリカには『フェアユース規定』というものがあり、『フェアユース』を調べてみました。

「批評、解説、ニュース報道、教授(教室における使用のために複数のコピーを作成する行為を含む)、研究または調査等を目的とする著作権のある著作物のフェア・ユース(コピーまたはレコードへの複製その他106条に定める手段による使用を含む)は、著作権の侵害とならない」と定めており
Business lawyers

研究・調査・教育などの目的としてなら著作権の侵害とならないと。
そして日本では『フェアユース』の法律はないと。

日本政府には、2020年プログラミング教育義務化はいいとしても、このあたりの法律の整備もぜひお願いしたいものですね。

created by Rinker
¥2,030 (2019/03/21 06:45:29時点 Amazon調べ-詳細)
created by Rinker
¥2,376 (2019/03/20 18:43:45時点 Amazon調べ-詳細)

『スクラッチ』ではこんな記事も読まれています。

1. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

2. スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

3. スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

4. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

5. スクラッチプログラミング入門〜子供と大人のはじめのいっぽ

6. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために

Sponsored link

関連記事

  1. スクラッチ scratch

    スクラッチプログラミング入門〜子供と大人のはじめのいっぽ

    無料で遊べるパズルのようなプログラミング言語、スクラッチ(Scratc…

  2. スクラッチ scratch

    micro:bit(マイクロビット)とスクラッチをつなげてHelloとやってみた

    ここ数年、子供向けプログラミング教材の種類が世界的に増えてきています。…

  3. スクラッチ scratch

    スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

    子供向け無料プログラミング寺子屋『CoderDojo熊本』にて参加され…

  4. Python

    スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミン…

    CoderDojo熊本を立ち上げてからというもの、日々お勉強の毎日にな…

  5. スクラッチ scratch

    【とにかくオススメ】子どものプログラム練習にマインクラフトがオススメな4つの理由

    子ども向け無料プログラミング道場『CoderDojo熊本』を立ち上げて…

Sponsored link

最近の記事

アーカイブ

Sponsored link
  1. Vue.js

    Vue.js+Vue-router+BulmaでさくっとSPAをつくってみた【初…
  2. Django

    【Django】【Laravel】【RubyOnRails】を比較してみた【初心…
  3. MySQL

    【mysql】SQL文のつくり方のコツ〜ちょっとずつ組み立てる〜【初心者向け】
  4. Laravel

    【Laravel(PHP)】でできる事をわかりやすく(ざっくりと)まとめてみた【…
  5. Laravel

    【Laravel5.5】Webアプリケーションを作るためのゆるめの環境構築編【N…
PAGE TOP