質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

1回答

1186閲覧

キーを押しても反応しません

senchu

総合スコア13

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2019/01/19 02:49

編集2019/01/19 12:26

前提・実現したいこと

processingでリズムゲームを作っています。
上から四角が流れてきて、枠の中に入った時にキーを押すとgood!と表示されるようにしたいのですが、最初の一つしか反応しません。なぜでしょうか。
最初の四角は
w=75;
h+=13;
fill(#FFE66A);
strokeWeight(2);
stroke(255);
rect(w,h,55,55);
と書き、2個目からは
rect(w,h-1000,55,55);のように始まる位置をずらしています。

発生している問題・エラーメッセージ

該当のソースコード

import

1import ddf.minim.analysis.*; 2import ddf.minim.effects.*; 3import ddf.minim.signals.*; 4import ddf.minim.spi.*; 5import ddf.minim.ugens.*; 6import ddf.minim.*; 7 8Minim minim; 9 10AudioSample button1; 11AudioPlayer player; 12 13int w,h; 14int stat=0; 15int t; 16int count; 17 18void setup(){ 19 size(150,900); 20 minim=new Minim(this); 21 button1=minim.loadSample("b1.mp3"); 22 player=minim.loadFile("mn.mp3"); 23 rectMode(CENTER); 24} 25 26void draw(){ 27 background(#FF6FA6); 28 29 switch(stat){ 30 case 0: 31 size(150,900); 32 33 background(#FF6FA6); 34 35 textSize(20); 36 text("Press Enter",20,450); 37 break; 38 39 case 1: 40 noFill(); 41 stroke(#FFD1DF); 42 strokeWeight(5); 43 rect(75,700,60,60); 44 45 w=75; 46 h+=13; 47 fill(#FFE66A); 48 strokeWeight(2); 49 stroke(255); 50 rect(w,h,55,55); 51 52 rect(w,h-1000,55,55); 53 54 rect(w,h-2300,55,55); 55 56 rect(w,h-3530,55,55); 57 58 rect(w,h-4730,55,55); 59 rect(w,h-5330,55,55); 60 rect(w,h-5930,55,55); 61 rect(w,h-6530,55,55); 62 63 rect(w,h-7030,55,55); 64 rect(w,h-7530,55,55); 65 66 rect(w,h-8400,55,55); 67 68 rect(w,h-9600,55,55); 69 70 rect(w,h-10800,55,55); 71 72 rect(w,h-12000,55,55); 73 74 rect(w,h-13200,55,55); 75 76 rect(w,h-14400,55,55); 77 rect(w,h-15000,55,55); 78 rect(w,h-15600,55,55); 79 rect(w,h-16080,55,55); 80 81 rect(w,h-16800,55,55); 82 rect(w,h-17400,55,55); 83 rect(w,h-18000,55,55); 84 rect(w,h-18300,55,55); 85 rect(w,h-18600,55,55); 86 rect(w,h-18900,55,55); 87 rect(w,h-19200,55,55); 88 89 rect(w,h-20400,55,55); 90 rect(w,h-21000,55,55); 91 rect(w,h-21600,55,55); 92 93 if(w>45 && w<105 && h>570 && h<830){ 94 if(key=='k'){ 95 textSize(40); 96 fill(255); 97 text("good!",30,650); 98 99 count+=1; 100 } 101 } 102 textSize(15); 103 fill(255); 104 text(count+"/29",10,20); 105 break; 106 } 107} 108 109void stop(){ 110 player.close(); 111 button1.close(); 112 minim.stop(); 113 super.stop(); 114} 115 116 117void keyPressed(){ 118 switch(stat){ 119 case 0: 120 if(key==ENTER){ 121 player.play(); 122 stat=1; 123 } 124 break; 125 case 1: 126 if (key=='K'||key=='k'){ 127 button1.trigger(); 128 } 129 break; 130 } 131}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

上から流れてくる四角は、自力で
w=75;
h+=13;
fill(#FFE66A);
strokeWeight(2);
stroke(255);
rect(w,h,55,55);
rect(w,h-1000,55,55);
のように打ち込んでいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thkana

2019/01/19 05:24

> 最初の一つしか反応しません とのことですが、示されたプログラム片には繰り返しの要素が含まれていません。最初の一つとそれ以降とでなにが違うかが問題なのですから、それがわかるような資料を示して下さい。
guest

回答1

0

ベストアンサー

あなたは原因がわからないから質問しているのであって、原因がわからない人に「プログラムのココは原因でないから質問に書かなくてもいい」ということがわかるはずはない、と私は思うのですけどね。なぜ、部分だけで回答者が試せないプログラムの破片だけを載せて問題が解決すると思うのかなぁ?

rect(w, h-1000,55,55);で表示位置だけ誤魔化して(といって悪ければ調整して)四角を表示しているとするなら、その時hの値はいくつなのでしょう? そのhの値はif(w>45 && w<105 && h>570 && h<830){を真にするものですか?

(質問に示された情報からではどのように直せばいいかなんてわかるわけないので、ではどう直せばいい? なんて聞かないで下さいね)

投稿2019/01/19 11:52

thkana

総合スコア7639

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

senchu

2019/01/19 12:20

アドバイスありがとうございます! もう一度、質問内容を見直してみます。
thkana

2019/01/19 12:47

質問のトラブルとは別の話ですが、key変数は「最後に押されたキーコードを、キーが離されても保持している」つまり「今押されているキーを示すものではない」というのは承知して使っていますか? プログラムの動作で言えば、プログラムを起動してEnter、その直後に'k'を押してすぐ離したときの以降の動作はあなたの期待通りですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問