前回の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。
長くなったので、じゃ、またね。


いいなと思ったら応援しよう!