今回はProcessingの学習で開発環境の不親切さによりハマった話。
現在開発環境としてはProcessing 3.5.4を使っているのだが、クラスを作成しているにも関わらず、そのクラスの型を使用しようとコードを書いている途中でクラスが存在しないというエラーが出た。
ちゃんとフォルダー内にはParticleクラスがあるし、
タブにも出ているのにエラー。
結論から述べると、これはメインコードにsetupとdraw関数を書くことで解消する。
え、クラス自体は有るのにそのエラーは違うくない?ということで不親切エラーと認定。
ProcessingはJavaが持つ複雑性をうまく隠してくれている気がするので、その副作用と言って良いかもしれない。
今回は入門書での写経学習中にこのエラーが発生したためdraw関数を書き始める前にトラブルシュートに入ってしまったため、Processingの旧バージョンをダウンロードしてみたり色々とハマってしまったけど、途中のエラーを気にせず書き写しきっていたら解消していたということらしい。
なお、ネット記事を参考にファイルを追加からクラスファイルParticle.pdeを追加してみようとしたところ、折角書いたクラスのコードが全消失するという悲劇に見舞われた。
同じ轍を踏まないよう、危険操作として紹介しておこう。
まず、クラスが無いというエラーを受け、何かインポート操作が必要なのではないかと推測した。
ネット検索でファイル追加してみてはというアドバイスを見かけたのでやってみた。
「スケッチにコピーする画像やその他のデータファイルを選択してください」というタイトルから、インポート操作に相当すると推測。
Particle.pdeを選択したところ「既存のParticle.pdeを置き換えますか?」とメッセージ
からの、全消失。。
こればかりはマジギレ案件。
後で検証してみたところ、ちゃんと外部ファイルからのインポートであればこの操作でうまくいくようだ。
今読み込み中のParticle.pdeを、この操作で再度自己インポートしようとすると全消失が発生するということらしい。
消失した際にコンソールには次のようなエラーが表示されていた。
つまり、Particle.pdeをインポートする際に、今読み込み済みのParticle.pdeを上書きするか尋ねられ、OKを押すとまず今読み込み済みのParticle.pdeが抹消された後に、新しく指定されたParticle.pdeを読み込もうとするものの、読み込もうとしたParticle.pdeが今まさに抹消されたそれだから、「あれ、そんなの無いよ?」というエラーらしい。
ふざけんな。お前が消したんやろがい!!!
ということで、皆さんはちゃんと最初からGitHub使いましょう。。。
現場からは以上です。