マウスでの操作、速度がゆっくりかつ往復運動となってしまいました。
そのようにコードが書かれているんですから当たり前ですよね?
キーボード操作に変更、ボールの速度を早くする、往復運動ではなく、一方方向の運動です。
調べたこと・やってみたことを質問に書いてください。
そうでないと「丸投げの質問」と受け取られてしまいます。
推奨していない質問|teratail(テラテイル)
質問するときのヒント|teratail(テラテイル)
エラーになっていてもいいんです。
s200034さんがどう考えていて何がわからないのかが、そこから読み取れます。
本人が書いたのかも不明なコードだけでは、どこまではわかっているのかすら判断できません。
Processing
1 int x , y , dx , dy ;
2
3 void setup ( ) {
4 size ( 500 , 500 ) ;
5
6 x = width / 2 ;
7 y = height / 10 ;
8 //dx = 0;
9 //dy = 0;
10 }
11
12 void draw ( ) {
13 background ( 255 ) ;
14 noStroke ( ) ;
15
16 fill ( 111 , 183 , 255 ) ;
17 ellipse ( x , y , 50 , 50 ) ;
18
19 x += dx ; // いまのところdxはずっと0なので無意味
20
21 // yをdx分増やす。dyが1以上なら下に下がるし、大きいほど当然早くなる
22 y += dy ;
23
24 //if (x <= 25 || x >= width - 25) dx = -dx;
25 //if (y <= 25 || y >= height - 25) dy = -dy;
26
27 // 円の中心が(画面高さ+円の半径)を超えた = 画面下に円が消えた
28 if ( y > height + 25 ) y = - 25 ; // 円を上にワープ
29
30 // 円の中心が(0-円の半径)を超えた = 画面上に円が消えた
31 if ( y < - 25 ) y = height + 25 ; // 円を下にワープ
32 }
33
34 void keyPressed ( ) {
35 // 文字が出るようなキーはkeyで判定
36 switch ( key ) {
37 case ' ' : // スペース
38 dy = 10 ; // 1フレームで円が動く移動量
39 break ;
40
41 // アルファベットは、大文字小文字両方指定したほうが安心(CapsLockしていてもいいように)
42 case 'N' :
43 case 'n' :
44 dy = 5 ;
45 break ;
46 }
47
48 // 文字が出ないようなキーはkeyCodeで判定
49 switch ( keyCode ) {
50 case UP : // 上矢印
51 dy = - 10 ;
52 break ;
53 }
54 }
55
56 //void mousePressed() {
57 // switch (mouseButton) {
58 // case LEFT:
59 // dy = 5;
60 // break;
61 // }
62 //}
keyPressed() / Reference / Processing.org
key / Reference / Processing.org
keyCode / Reference / Processing.org
わからない点があればコメントしてください^^
詰め込みすぎたので最低限のコード
Processing
1 int y = 50 ;
2 int dy = 0 ;
3
4 void setup ( ) {
5 size ( 500 , 500 ) ;
6 }
7
8 void draw ( ) {
9 background ( 255 ) ;
10
11 noStroke ( ) ;
12 fill ( 111 , 183 , 255 ) ;
13 ellipse ( 250 , y , 50 , 50 ) ;
14
15 y += dy ;
16 }
17
18 void keyPressed ( ) {
19 dy = 10 ;
20 }