ここから本文です

processingでの画面切り替えについて。

aka********さん

2014/7/1315:37:39

processingでの画面切り替えについて。

processingで画面のとある場所をクリックすると「タイトル画面→ゲーム画面→タイトル画面」と言うように画面が切り替わるプログラムを書きたいのですがやり方が思いつきません。どのようなプログラムを書けばいいのでしょうか。簡単なサンプルを交えて回答して頂けるとありがたいです。

processing,プログラム,タイトル画面,画面切り替え,サンプル,y-1,case1

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
11,868
回答数:
1
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

qui********さん

リクエストマッチ

2014/7/1323:38:11

出来るだけ「知識」が少なくて済むようには書いてみたつもりです。その代わりいろいろいじるには面倒。
"状態変数"を導入して、draw()やmousePressed()の中での振る舞いを切り替えています。ちょっと複雑なことをやるのなら、少なくとも各caseの中身を出来るだけメソッドにまとめたりしないと、プログラムがとても長く、読みにくくなったりしがちです。

もちろん、他にもいろいろな方法はあるのですが...

int stat=0; //画面状態を表す状態変数
int x1=0,y1;

void setup() {
size(400, 400);
y1=height;
}

void draw() {
background(200);
switch(stat) {
case 0: //状態変数が0(つまり画面がTitle)のときの動作
fill(0);
text("Title Screen", 150, 180, 100, 20);
break;
case 1://ゲーム画面1のときの動作
fill(255,0,0);
text("Game Screen 1", x1++, 180, 100, 20);
x1%=width;
break;
case 2://ゲーム画面2のときの動作
fill(0,0,255);
text("Game Screen 2", 150, y1--,100,20);
if(y1<0){
y1=height;
}
break;
}
}

void mousePressed(){
switch(stat){
case 0:
//"ボタン"が必要なら適宜範囲を決めて画を描いて、ここで位置の検査をまじめにやる。今回は単に左右半分に分けただけ
if(mouseX<width/2){
//左半分がクリックされたら
x1=0; //次の状態で必要な変数の初期化
stat=1;//ゲーム画面1状態に移る
}else{
//右半分がクリックされたら
y1=height;
stat=2;//ゲーム画面2状態に移る
}
break;

case 1:
//位置の検査はしない。つまり画面のどこでもクリックされたら。
stat=0; //タイトル画面に移動する
break;

case 2:
stat=0;
break;
}
}

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる