炎の型 Scratch 2.0 プログラム入門
  • 炎の型
  • Tennis For Two <難易度 中上>
    • プロジェクトを作る
    • ボールを追加する
    • 自由落下
    • 跳ねる
    • 左右に移動
    • ボールを打つ
    • Coatを作成する
    • 完成
  • Spacewar!<難易度 上下>
    • プロジェクトを作成する
    • 太陽を作る
    • ロケットと重力を作る
    • 旋回機能を作る
    • 推進機能を作る
    • 機雷発射機能を作る
    • 的を作る
    • 完成
  • Pong <難易度 中>
    • プロジェクトを作る
    • ラケットを作る
    • ラケットを上下に移動させる
    • コースを追加
    • ボールを追加
    • ボールを移動させる
    • ボールが跳ね返る機能をついか
    • 勝ち負けを判定する
    • 打つ向きを変える
    • 完成!!
  • Tiny TETRIS<難易度 上上>
    • Table
    • プロジェクトを作る
    • ネコを削除する
    • フィールドを作成する
    • フィールドの状態を記述する
    • フィールドに枠を表示する
    • テトロミノを表示する
    • テトロミノの種類を増やす
    • テトロミノの衝突判定
    • 下に移動する
    • 左右に移動する
    • 回転させる
    • クリアする
    • テトロミノを落下させる
    • 完成!!
  • Dojo:InkRunner <難易度 下上>
    • プロジェクトを作る
    • xxxって何だろう?
    • 右に移動する
    • 左に移動する
    • 上下に移動する
    • 対戦相手を作る(1)
    • 対戦相手を作る(2)
    • 対戦相手を作る(3)
    • 完成!!
    • おまけ: Timer(1)
    • おまけ: Timer(2)
    • おまけ: 判定
  • Practice:Gravity<難易度 下中>
    • プロジェクトを作ろう
    • 地球を作る
    • 地球の位置とサイズを調整する
    • 月の大きさを調整する
    • 速度に応じて移動する
    • 引力に応じて移動する
    • 軌道を記録する
    • 完成!!
    • [おまけ:向きを計算してみる]
    • [おまけ:距離を計算してみる]
  • Dojo:おにごっこ<難易度 下中>
    • プロジェクトを作ろう
    • 右に逃げる
    • 左に逃げる
    • 上下に逃げる
    • 鬼を作る
    • 鬼が移動する
    • 捕まった時の動作
    • 完成!!
  • Practice:ポリゴン<難易度 中上>
    • プロジェクトを作る
    • ネコの表示を小さくする
    • 三角形を描く
    • Matrixを定義する
    • Matrixの掛け算
    • Z軸に対して回転
    • X軸に対して回転
    • Y軸に対して回転
    • 完成!!
    • おまけ:Cubeを描く
    • おまけ:裏と表
  • 作業テーブル:パズドラッぽいの<難易度 上中>
    • Table
    • 完成!!
  • 基礎鍛錬のゴール
Powered by GitBook
On this page
  • Polygonは裏(うら)と表(おもて)を持(も)っている。
  • (1) 上手(うま)く使(つか)えば、裏側(うらがわ)が透(す)けない立方体(りっぽうたい)をかける。
  • 右回(みぎまわ)りか、左回(ひだりまわ)りかの判定方法(はんていほうほう)
  • (B) Scratchで実装(じっそう)する
  • (1) 裏表(うらおもて)を判定(はんてい)するスクリプトを追加(ついか)する
  • (2) ポリゴンを描画時(びょうがじ)に、裏表判定(うらおもてはんてい)を使用(しよう)するようにする
  • (3) 確認(かくにん)する
  • (4) Good!
  1. Practice:ポリゴン<難易度 中上>

おまけ:裏と表

Previousおまけ:Cubeを描くNext作業テーブル:パズドラッぽいの<難易度 上中>

Last updated 7 years ago

Cubeを表示(ひょうじ)すると、Aのように表示(ひょうじ)されたと思(おも)います。 Bのように、裏側(うらがわ)が透(す)けないように表示(ひょうじ)するにはどうすれば良(よ)いでしょうか。

色々(いろいろ)な方法(ほうほう)があります。ここでは法線(ほうせん)を利用(りよう)する方法(ほうほう)を紹介(しょうかい)します。

Polygonは裏(うら)と表(おもて)を持(も)っている。

Ploygonには、裏(うら)と表(おもて)があります。表面(おもてめん)は画面(がめん)に表示(ひょうじ)されますが、裏面(うらめん)は画面(がめん)に表示(ひょうじ)されません。

上図(じょうず)のように、反時計回(はんとけいまわ)りが表(おもて)。 時計周(とけいまわ)りが裏(うら)です。

面倒(めんどう)ですね。Polygonで図形(づけい)を書(か)くときは、常(つね)に意識(いしき)しないといけません。

気(き)を抜(ぬ)くと、上(うえ)のように透(す)けてしまします。

(1) 上手(うま)く使(つか)えば、裏側(うらがわ)が透(す)けない立方体(りっぽうたい)をかける。

上図(じょうず)のAのように、渦(うず)が「反時計回り」に見(み)えているものが、180度(ど)回転(かいてん)すると、上図(じょうず)のCのように「時計回りに」に見(み)えます。つまり、180度(ど)回転(かいてん)すると表示(ひょうじ)されなくなります。

例(たと)えば、上図(じょうず)のようにすると、いくら回転(かいてん)しても裏側(うらがわ)が透(す)けて見(み)えないCubeを書(か)くことができます。

右回(みぎまわ)りか、左回(ひだりまわ)りかの判定方法(はんていほうほう)

右回(みぎまわ)りか、左回(ひだりまわ)りかの判定(はんてい)をする機能(きのう)をついかする必要(ひつよう)があります。

この判定(はんてい)には、以下(いか)の数式(すうしき)が使(つか)われること多(おお)いです。

, , の三点を通る三角形の場合 $$v = \left(x{2}-x{1}\right) \times \left(y{3}-y{2}\right)

  • \left(y{2}-y{1}\right)\times\left(x{3}-x{2}\right)

    $$

で、 が、0よりも大(おおきい)きい場合(ばあい)は「表(おもて)」、小(ちいい)さい場合(ばあい)は「裏(うら)」と判断(はんだん)できます。

(B) Scratchで実装(じっそう)する

(1) 裏表(うらおもて)を判定(はんてい)するスクリプトを追加(ついか)する

(2) ポリゴンを描画時(びょうがじ)に、裏表判定(うらおもてはんてい)を使用(しよう)するようにする

(3) 確認(かくにん)する

(3-1) 右上(みぎうえ)の旗(はた)アイコンをクリックすると、Cubeが回転(かいてん)すること

(3-2) 裏側(うらがわ)が透(す)けて見(み)えないこと。

(4) Good!

よくできました。次(つぎ)のステップに進(すす)みましょう。

https://scratch.mit.edu/projects/88197759/