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

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

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

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

Q&A

解決済

2回答

623閲覧

processing/easingを利用してマウスに反応して動くようにしたい。

Susan.S

総合スコア7

Processing

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

1グッド

0クリップ

投稿2022/07/18 09:54

processing でeasaing を利用して鳥をマウスに反応して動くようにしたいのですが、移動範囲が狭く、マウスを動かしても一定の距離で止まってしまいます。
原因と解決方法を知りたいです。よろしくお願いします。

float x=0; float angle=0; float easing=0.1; void setup(){ size(400,400); } void draw(){ background(176, 204, 226); fill(160, 82, 45); noStroke(); rect(55,250,50,150); fill(107,142,35); for(int i = 0; i<6; i++){ ellipse(0 + 30*i,270,30,30); } for(int i = 0; i<5; i++){ ellipse(20 + 30*i,250,30,30); } for(int i=0; i<4; i++){ ellipse(35 + 30*i, 230, 30, 30); } for(int i=0; i<3; i++){ ellipse(50 + 30*i, 210, 30, 30); } for(int i=0; i<2; i++){ ellipse(65 + 30*i, 190, 30, 30); } ellipse(80, 170, 30, 30); bird(50,0); bird(0,-50) } void bird(int x, int y) { int targetX=mouseX; x += (targetX-x)* easing; fill(255, 165, 0); ellipse(350,80,50,50); pushMatrix(); fill(255, 182, 193); ellipse(x+50,y+200,20,20); triangle(x+35,y+200,x+45,y+195,x+45,y+205); arc(x+75,y+200,50,50,radians(0),radians(180)); arc(x+65,y+200,35,35,radians(300),radians(360)); popMatrix(); }
TN8001👍を押しています

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

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

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

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

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

guest

回答2

0

なるほど、大変わかりやすい回答ありがとうございます‼

投稿2022/07/18 11:24

Susan.S

総合スコア7

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

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

0

ベストアンサー

processing でeasaing を利用して

こちらのような話ですね?
Easing / Examples / Processing.org

移動範囲が狭く、マウスを動かしても一定の距離で止まってしまいます。

提示コードはイージングになっていません。
なぜかというとfloat xint xで名前がかぶっており、グローバル変数のfloat xを一切使用していません。
そのため「mouseXの値を1/10するだけ」のような意味になってしまっています。

int xに別の名前を付けて、translateするのがいいいでしょうかね。

Processing

1float x; 2float easing = 0.02; 3 4void setup() { 5 size(400, 400); 6 noStroke(); 7} 8 9void draw() { 10 background(176, 204, 226); 11 12 fill(255, 165, 0); 13 circle(350, 80, 50); 14 15 tree(); 16 17 bird(50, 0); 18 bird(0, -50); 19} 20 21void tree() { 22 fill(160, 82, 45); 23 rect(55, 250, 50, 150); 24 25 fill(107, 142, 35); 26 for (int i = 0; i < 6; i++) { 27 for (int j = 0; j <= i; j++) { 28 circle(80 - 15 * i + 30 * j, 170 + i * 20, 30); 29 } 30 } 31} 32 33void bird(int offsetX, int offsetY) { 34 float targetX = mouseX; 35 x += (targetX - x) * easing; 36 float y = 200; 37 38 pushMatrix(); 39 translate(offsetX, offsetY); 40 fill(255, 182, 193); 41 circle(x + 50, y, 20); 42 triangle(x + 35, y, x + 45, y - 5, x + 45, y + 5); 43 arc(x + 75, y, 50, 50, radians(0), radians(180)); 44 arc(x + 65, y, 35, 35, radians(300), radians(360)); 45 popMatrix(); 46}

投稿2022/07/18 11:15

TN8001

総合スコア9326

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問