見出し画像

スイッチ

プログラミングでスイッチをただ描いただけです。

// スイッチ

// プログラミング言語「ドリトル」

// V3.31以降のインストール版ドリトルで実行してください。

// 2020.06.23  蕪木 孝


// ーーーーー 図形オブジェクトのサイズ ーーーーー

// 全体のサイズ
全体幅 = 478。
全体高さ = 204// 本体のサイズ
本体幅 = 346。
本体高さ = 204// スクリーン外枠のサイズ
スクリーン外枠幅 = 324。
スクリーン外枠高さ = 192// スクリーンのサイズ
スクリーン幅 = 274。
スクリーン高さ = 157// ジョイコンのサイズ
ジョイコン幅 = (全体幅 - 本体幅) / 2。
ジョイコン高さ = 全体高さ。
ジョイコン角半径 = 41// スティックのサイズ
スティック半径 = 16// 丸ボタンのサイズ(方向ボタン、ABXYボタン)
丸ボタン半径 = 7// プラスボタン、マイナスボタンのサイズ
プラマイボタン幅 = 11。
プラマイボタン高さ = 4// キャプチャーボタンのサイズ
キャプチャーボタン幅 = 12// HOMEボタンのサイズ
HOMEボタン外半径 = 9。
HOMEボタン内半径 = 6.5// ーーーーー 図形オブジェクトの表示位置 ーーーーー

// メモ
// 位置メソッドのパラメータで指定する座標はその図形オブジェクトの描き始めの座標。 

// 全体の表示位置(左上隅の座標)
全体x = 全体幅 / 2 * (-1)。
全体y = 全体高さ / 2// 本体の表示位置(左上隅の座標)
本体x = 全体x + (全体幅 - 本体幅) / 2。
本体y = 全体y。

// スクリーン外枠の表示位置(左上隅の座標)
スクリーン外枠x = 全体x + (全体幅 - スクリーン外枠幅) / 2。
スクリーン外枠y = 全体y - (全体高さ - スクリーン外枠高さ) / 2// スクリーンの表示位置(左上隅の座標)
スクリーンx = 全体x + (全体幅 - スクリーン幅) / 2。
スクリーンy = 全体y - (全体高さ - スクリーン高さ) / 2// 左ジョイコンの位置(左上隅の座標)
// ただし左ジョイコンは作ってから180度回転させるので
// 位置メソッドでは右下隅の座標を計算してパラメータにする必要がある。
左ジョイコンx = 全体x。
左ジョイコンy = 全体y。

// 右ジョイコンの位置(左上隅の座標)
右ジョイコンx = 全体x + 全体幅 - ジョイコン幅。
右ジョイコンy = 全体y。


// ーーーーー 図形オブジェクトを塗るための色 ーーーーー

本体色             = 色 !  61  66  69 作る。 // グレー
スクリーン外枠色   = 色 !   0   0   0 作る。 // 黒
スクリーン点灯色   = 色 !  30  30  30 作る。 // 少し明るい黒。
左ジョイコン色     = 色 !   0 207 233 作る。 // ネオンブルー
右ジョイコン色     = 色 ! 254 123 105 作る。 // ネオンレッド
操作部色           = 色 !  84  87  92 作る。 // グレー
HOMEボタン外色 = 色 ! 163 156 164 作る。 // 薄いグレー


// ーーーーー 図形オブジェクトを作るためにタートルオブジェクトを作る ーーーーー

カメ = タートル ! 作る。
カメ ! 1 線の太さ。


// ーーーーー 図形オブジェクトを作るための図形オブジェクトを作る ーーーーー

// ーーー 左右のジョイコンを作るための図形オブジェクトを作る ーーー

カメ ! 0 向き。

// ジョイコンの上側の直線を描く
カメ ! (ジョイコン幅 - ジョイコン角半径) 歩く。

// ジョイコンの右上の丸角を描く
「
	カメ ! (64 / 90) 歩く 1 右回り	// 64はジョイコン角半径の円弧に近づくように
                                             // 何度も変えながら決めた値。90は90度の90。
」 ! 90 繰り返す。

// 丸角を描き終えた後のタートルオブジェクトの座標は本来あるべき座標から
// 1未満の範囲でずれているので本来あるべき座標へ移動する
カメ ! (ジョイコン幅) ((ジョイコン角半径) * (-1)) 位置。

// ジョイコンの右側面の直線を描く
カメ ! (ジョイコン高さ - (ジョイコン角半径 * 2)) 歩く。

// ジョイコンの右下の丸角を描く
「
	カメ ! (64 / 90) 歩く 1 右回り	// 64はジョイコン角半径の円弧に近づくように
                                             // 何度も変えながら決めた値。90は90度の90。
	
」 ! 90 繰り返す。

// 丸角を描き終えた後のタートルオブジェクトの座標は本来あるべき座標から
// 1未満の範囲でずれているので本来あるべき座標へ移動する
カメ ! (ジョイコン幅 - ジョイコン角半径) (ジョイコン高さ * (-1)) 位置。

// ジョイコンの下側の直線を描く
カメ ! (ジョイコン幅 - ジョイコン角半径) 歩く。

// ジョイコンの左側面の直線を描く
カメ ! 閉じる。

// 図形オブジェクトを作る
ジョイコンベース = カメ ! 図形を作る。
ジョイコンベース ! 消える。

// ーーー 左、右スティックを作るための図形オブジェクトを作る ーーー

カメ ! 0 向き。
カメ ! (スティック半径) 円。
スティック = カメ ! 図形を作る。
スティック ! (操作部色) 塗る。
スティック ! 消える。

// ーーー 方向、ABXYの丸ボタンを作るための図形オブジェクトを作る ーーー
カメ ! 0 向き。
カメ ! (丸ボタン半径) 円。
丸ボタン = カメ ! 図形を作る。
丸ボタン ! (操作部色) 塗る。
丸ボタン ! 消える。


// ーーーーー 図形オブジェクトを作る ーーーーー

// ーーー 本体、スクリーン外枠、スクリーンを作る ーーー

// 本体の図形オブジェクトを作る
カメ ! 0 向き。
カメ ! (本体幅) 歩く 90 右回り (本体高さ) 歩く 90 右回り。
カメ ! (本体幅) 歩く 閉じる。
本体 = カメ ! 図形を作る。
本体 ! (本体色) 塗る。
本体 ! (本体x) (本体y) 位置。

// スクリーン外枠の図形オブジェクトを作る
カメ ! 0 向き。
カメ ! (スクリーン外枠幅) 歩く 90 右回り (スクリーン外枠高さ) 歩く 90 右回り。
カメ ! (スクリーン外枠幅) 歩く 閉じる。
スクリーン外枠 = カメ ! 図形を作る。
スクリーン外枠 ! (スクリーン外枠色) 塗る。
スクリーン外枠 ! (スクリーン外枠x) (スクリーン外枠y) 位置。

// スクリーンの図形オブジェクトを作る
カメ ! 0 向き。
カメ ! (スクリーン幅) 歩く 90 右回り (スクリーン高さ) 歩く 90 右回り。
カメ ! (スクリーン幅) 歩く 閉じる。
スクリーン = カメ ! 図形を作る。
スクリーン ! (スクリーン点灯色) 塗る。
スクリーン ! (スクリーンx) (スクリーンy) 位置。

// ーーー 左ジョイコンを作る ーーー

// 左ジョイコンのベースを作る
左ジョイコンベース = ジョイコンベース ! 作る。
左ジョイコンベース ! (左ジョイコン色) 塗る。
左ジョイコンベース ! 180 右回り。
左ジョイコンベース ! (左ジョイコンx + ジョイコン幅) (左ジョイコンy - ジョイコン高さ) 位置。

// 左ジョイコンのマイナスボタンを作る
カメ ! 0 向き。
カメ ! (プラマイボタン幅) 歩く 90 右回り (プラマイボタン高さ) 歩く 90 右回り。
カメ ! (プラマイボタン幅) 歩く 閉じる。
マイナスボタン = カメ ! 図形を作る。
マイナスボタン ! (操作部色) 塗る。
マイナスボタン ! (左ジョイコンx + 50) (左ジョイコンy - 18) 位置。

// 左ジョイコンのスティックを作る
左スティック = スティック ! 作る。
左スティック ! (左ジョイコンx + 20 + スティック半径) (左ジョイコンy - 36) 位置。

// 左ジョイコンの方向の丸ボタンを作る
上ボタン = 丸ボタン ! 作る。
上ボタン ! (左ジョイコンx + 20 + 32 / 2) (左ジョイコンy - 86) 位置。

右ボタン = 丸ボタン ! 作る。
右ボタン ! (左ジョイコンx + 20 + 32) (左ジョイコンy - 86 - 32 / 2) 位置。

下ボタン = 丸ボタン ! 作る。
下ボタン ! (左ジョイコンx + 20 + 32 / 2) (左ジョイコンy - 86 - 32) 位置。

左ボタン = 丸ボタン ! 作る。
左ボタン ! (左ジョイコンx + 20) (左ジョイコンy - 86 - 32 / 2) 位置。

// 左ジョイコンのキャプチャーボタンを作る
カメ ! 0 向き。
カメ ! (キャプチャーボタン幅) 4 角形。
キャプチャーボタン = カメ ! 図形を作る。
キャプチャーボタン ! (操作部色) 塗る。
キャプチャーボタン ! (左ジョイコンx + 40) (左ジョイコンy - 140) 位置。

// ーーー 右ジョイコンを作る ーーー

// 右ジョイコンのベースを作る
右ジョイコンベース = ジョイコンベース ! 作る。
右ジョイコンベース ! (右ジョイコン色) 塗る。
右ジョイコンベース ! (右ジョイコンx) (右ジョイコンy) 位置。

// 右ジョイコンのプラスボタンを作る
// プラスボタンは十字の左部分の左上角から書き始める
// (位置メソッドではその座標を指定する) 
カメ ! 0 向き。
十字内側直線 = (プラマイボタン幅 - プラマイボタン高さ) / 2。
カメ ! (十字内側直線) 歩く 90 左回り (十字内側直線) 歩く 90 右回り。
カメ ! (プラマイボタン高さ) 歩く 90 右回り。
カメ ! (十字内側直線) 歩く 90 左回り (十字内側直線) 歩く 90 右回り。
カメ ! (プラマイボタン高さ) 歩く 90 右回り。
カメ ! (十字内側直線) 歩く 90 左回り (十字内側直線) 歩く 90 右回り。
カメ ! (プラマイボタン高さ) 歩く 90 右回り。
カメ ! (十字内側直線) 歩く 90 左回り (十字内側直線) 歩く 90 右回り。
カメ ! 閉じる。
プラスボタン = カメ ! 図形を作る。
プラスボタン ! (操作部色) 塗る。
プラスボタン ! (右ジョイコンx + ジョイコン幅 - 50 - プラマイボタン幅) (右ジョイコンy - 18) 位置。

// 右ジョイコンのスティックを作る
右スティック = スティック ! 作る。
右スティック ! (右ジョイコンx + ジョイコン幅 - スティック半径 - 20) (右ジョイコンy - 93) 位置。

// 右ジョイコンのABXYの丸ボタンを作る
Xボタン = 丸ボタン ! 作る。
Xボタン ! (右ジョイコンx + ジョイコン幅 - 20 - 32 / 2) (左ジョイコンy - 30) 位置。

Aボタン = 丸ボタン ! 作る。
Aボタン ! (右ジョイコンx + ジョイコン幅 - 20) (左ジョイコンy - 30 - 32 / 2) 位置。

Bボタン = 丸ボタン ! 作る。
Bボタン ! (右ジョイコンx + ジョイコン幅 - 20 - 32 / 2) (左ジョイコンy - 30 - 32) 位置。

Yボタン = 丸ボタン ! 作る。
Yボタン ! (右ジョイコンx + ジョイコン幅 - 20 - 32) (右ジョイコンy - 30 - 32 / 2) 位置。

// 右ジョイコンのHOMEボタンを作る
カメ ! 0 向き。
HOMEボタン外 = カメ ! (HOMEボタン外半径) 円 図形を作る。
HOMEボタン外 ! (HOMEボタン外色) 塗る。
HOMEボタン外 ! (右ジョイコンx + ジョイコン幅 - 38) (右ジョイコンy - 140) 位置。
HOMEボタン内 = カメ ! (HOMEボタン内半径) 円 図形を作る。
HOMEボタン内 ! (操作部色) 塗る。
HOMEボタン内 ! (右ジョイコンx + ジョイコン幅 - 38)
           (右ジョイコンy - 140 - (HOMEボタン外半径 - HOMEボタン内半径)) 位置。
HOMEボタン = 図形 ! (HOMEボタン外) (HOMEボタン内) 結合する。

電源ボタン幅 = 18。
電源ボタン高さ = 5。
電源ボタンx = 全体x + 88。
電源ボタンy = 全体y。
カメ ! 0 向き。
カメ ! (電源ボタン幅) 歩く 90 右回り (電源ボタン高さ) 歩く 90 右回り (電源ボタン幅) 歩く 閉じる。
電源ボタン = カメ ! 図形を作る。
電源ボタン ! (本体色) 塗る。
電源ボタン ! (電源ボタンx) (電源ボタンy) 位置。

a = 図形 ! (マイナスボタン) (左スティック) (上ボタン) (左ボタン) (下ボタン) (右ボタン) (キャプチャーボタン)
(プラスボタン) (右スティック) (Xボタン) (Aボタン) (Bボタン) (Yボタン) (HOMEボタン)
結合する。
ax = a ! getx。
ay = a ! gety。
電源ボタン : 動作 = 「
	g = 9.80665。
	s = 0.1。
	タイマー1 = タイマー ! 作る    (s) 間隔    20 回数。
	タイマー1 ! 「
		| i |
		t = s * i。
		h = 1 / 2 * g * t * t * (-1)。
		:ay = :ay + round(h * 100)。
		a ! (:ax) (:ay) 位置。
	」 実行。
」。

実行方法

これは教育用プログラミング言語「ドリトル」で書いたプログラムです。
インストール版ドリトルを以下のサイトからダウンロードしてください。
https://dolittle.eplang.jp/download
パソコンのOSがWindowsなら「Windows用」をクリックするとダウンロードがはじまります。
ダウンロードしたら解凍してください。
解凍したら dolittle.bat をダブルクリックするとドリトルが起動します。
プログラムを貼り付けて「実行!」をクリックするとスイッチが描かれます。

この記事が気に入ったらサポートをしてみませんか?