前回のProcessingのプログラムを説明するよ(1)
みなさんこんにちは、すぎっちです。
前回の記事で、「♡スキされたら説明記事を書きます。」と書いたら数時間後に♡スキしてくれる人が現れて、その後も合わせて2名の方がいました。約束どおり前回の「機密保持プログラム」の説明をします。たった6行のプラグラムなので、さっと説明できる、、、、、はずでしたが、すいません。今回は前半分の3行だけ説明します。ごめんなさいね。それでは早速行ってみよう!
前回のコード
void setup(){
fullScreen(0);
}
void draw(){
background(0);
}
1行目の void setup(){ と 3行目の } について
アプリ起動後に1回だけ実行する命令を{ }の中に書きます。
というお約束の呪文です。ですから、アプリ起動後に 2行目のfullScreen(0);を1回実行する。
というプログラムになります。
setupという名前の通り、ここには初期設定に関する命令を書いています。
アプリが、どのディスプレイを、どういうモードで使うのか
を2行目で設定しているわけです。
2行目の fullScreen(0); について
フルスクリーン(全画面)モードで全部のディスプレイを使います。
というプログラムになります。
windowsパソコンに、ディスプレイを2台つないで表示させている場合、windowsの設定画面でこんな画面が出ると思います。
プログラムをどのディスプレイで実行(表示)するかを()の中に書きます。1のディスプレイにプログラムの実行画面を表示させたければ、fullScreen(1);、2のディスプレイならfullScreen(2);と書きます。
数字を省略すると、使っているメインディスプレイで表示します。(通常は(1)と同じ結果になる)そして今回のように(0)とすると、接続している全部のディスプレイに表示します。
このプログラムを使うユーザがディスプレイを複数繋いでいるかもしれません。全部のディスプレイを黒くしないと目的の「機密保持」にならないので、2行目はfullScreen(0);としているわけです。
説明は以上です。
余談ですが(読まなくてもいいよ)
じゃ、(2)とプログラミングして、ディスプレイが1つだけだったら、表示する対象のディスプレイが存在しないことになるから、プログラムはエラーになって止まってしまうのでしょうか?やってみましょう。
前回のコードの数字を2に書き換えて、左上の右三角ボタンを押すと、、
はい、エラーにならずにちゃんと表示されましたね。Processingの下のコンソールというところに「ディスプレイ2が無いからデフォルトのディスプレイで実行しといたよ」と教えてくれています。
では、今度はディスプレイを2つ繋いで、プログラムをfullScreen(3)にしてみると、、、、
「ディスプレイ3が無いからデフォルトのディスプレイで実行しといたよ。ちなみに、1がこのサイズでデフォルト、2がこのサイズだよ」と教えてくれます。
このプログラムでexeファイルを作ると、同じ動作をします。つまり、
「アプリ起動時に繋がってるディスプレイを検出して、対象のディスプレイが無ければ、デフォルトのディスプレイで実行する」というプログラムのexeファイルがこれだけで(6行で)作れてしまうんです。
そんな面倒なプログラミングしなくてもProcessingがやってくれるんです。
どういうときに便利かというと、プロジェクターを使って説明、プレゼンするアプリのときに便利です。
fullScreen(2)と書いたプログラム(exeファイル)を実行する場合を考えてみましょう。自分のノートPC画面がディスプレイ1、プロジェクターの投影画面がディスプレイ2なので、プロジェクターを繋がない時は自分のPC画面でプログラムの表示確認ができるし、プロジェクターを繋げば、そちらで表示するんです。この時、エラー表示はどこにも出ません。
初心者がプログラミングで怖いのは、「なんだかわからないエラー」なんです。でも、こんな少ない行数のプログラムから始めればエラーにもなりにくいです。怖がらずにチャレンジしてみるといいと思います。
あとがき
ちょっと余談が多くて長くなったので、プログラムの前半だけ説明しました。後半の3行は次回説明します。
これを読んで、「フルスクリーンにするだけだろ」「数字間違ってもそれなりに動くってことね。ふーん」と思ってもらえばOK。
長くなったので、じゃ、またね。