teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

リンク切れ

2023/12/26 17:09

投稿

TN8001
TN8001

スコア10114

answer CHANGED
@@ -1,73 +1,73 @@
1
- > 何かキーを押して再生や停止をすること
2
-
3
- 一時停止 `player.pause();`
4
- 再開 `player.play();` or `player.loop();`
5
- を`keyPressed()`で好きなキーに割り当てればいいでしょう。
6
-
7
- > レコードのようなものを画面に映し出し
8
-
9
- レコードっぽい画像を表示するのが手っ取り早いでしょう。
10
- 画像の表示・回転は参考ページがたくさんあります。
11
- [画像を回転するには | 自己啓発。人生について考える](http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/)
12
- の「画像中央を中心に360°回転させる例:」等がちょうどよさそうです。
13
-
14
- > mp3ファイルが再生されると回転し、停止すると回転が止まる
15
-
16
- `player.isPlaying()`で今の再生状態が取れます。
17
- draw内にあるであろう回転角度の変更部分を、**再生中だけ**増やすようにすればいいでしょう。
18
-
19
- ---
20
-
21
- 追記 参考コード
22
- ENTERキーでトグル動作 本題でないところ全カット
23
-
24
- ```Processing
25
- import ddf.minim.*;
26
-
27
- Minim minim;
28
- AudioPlayer player;
29
- PImage img;
30
- float deg; // 回転角度
31
- float delta = 33.3 * 360.0 / 60; // 1秒間に回る角度
32
-
33
- void setup() {
34
- size(600, 400);
35
- minim = new Minim(this);
36
- player = minim.loadFile("おんがく.mp3");
37
- img = loadImage("れこーど.png");
38
- }
39
-
40
- void draw() {
41
- rotateImage((width - img.width) / 2, (height - img.height) / 2, img, deg);
42
-
43
- if (player.isPlaying()) {
44
- deg += delta / frameRate;
45
- if (deg > 360) deg -= 360;
46
- }
47
- }
48
-
49
- void keyPressed() {
50
- println("keyPressed");
51
-
52
- if (key == ENTER || key == RETURN) {
53
- if (player.isPlaying()) {
54
- player.pause();
55
- } else {
56
- player.loop();
57
- }
58
- }
59
-
60
- // 省略
61
- }
62
-
63
- //http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/
64
- void rotateImage(int x, int y, PImage img, float deg) {
65
- pushMatrix();
66
- translate(x + img.width / 2, y + img.height / 2);
67
- rotate(radians(deg));
68
- imageMode(CENTER);
69
- image(img, 0, 0);
70
- imageMode(CORNER);
71
- popMatrix();
72
- }
1
+ > 何かキーを押して再生や停止をすること
2
+
3
+ 一時停止 `player.pause();`
4
+ 再開 `player.play();` or `player.loop();`
5
+ を`keyPressed()`で好きなキーに割り当てればいいでしょう。
6
+
7
+ > レコードのようなものを画面に映し出し
8
+
9
+ レコードっぽい画像を表示するのが手っ取り早いでしょう。
10
+ 画像の表示・回転は参考ページがたくさんあります。
11
+
12
+ [画像を回転するには | 自己啓発。人生について考える](https://web.archive.org/web/20230903182856/https://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/)の「画像中央を中心に360°回転させる例:」等がちょうどよさそうです。
13
+
14
+ > mp3ファイルが再生されると回転し、停止すると回転が止まる
15
+
16
+ `player.isPlaying()`で今の再生状態が取れます。
17
+ draw内にあるであろう回転角度の変更部分を、**再生中だけ**増やすようにすればいいでしょう。
18
+
19
+ ---
20
+
21
+ 追記 参考コード
22
+ ENTERキーでトグル動作 本題でないところ全カット
23
+
24
+ ```Processing
25
+ import ddf.minim.*;
26
+
27
+ Minim minim;
28
+ AudioPlayer player;
29
+ PImage img;
30
+ float deg; // 回転角度
31
+ float delta = 33.3 * 360.0 / 60; // 1秒間に回る角度
32
+
33
+ void setup() {
34
+ size(600, 400);
35
+ minim = new Minim(this);
36
+ player = minim.loadFile("おんがく.mp3");
37
+ img = loadImage("れこーど.png");
38
+ }
39
+
40
+ void draw() {
41
+ rotateImage((width - img.width) / 2, (height - img.height) / 2, img, deg);
42
+
43
+ if (player.isPlaying()) {
44
+ deg += delta / frameRate;
45
+ if (deg > 360) deg -= 360;
46
+ }
47
+ }
48
+
49
+ void keyPressed() {
50
+ println("keyPressed");
51
+
52
+ if (key == ENTER || key == RETURN) {
53
+ if (player.isPlaying()) {
54
+ player.pause();
55
+ } else {
56
+ player.loop();
57
+ }
58
+ }
59
+
60
+ // 省略
61
+ }
62
+
63
+ //http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/
64
+ void rotateImage(int x, int y, PImage img, float deg) {
65
+ pushMatrix();
66
+ translate(x + img.width / 2, y + img.height / 2);
67
+ rotate(radians(deg));
68
+ imageMode(CENTER);
69
+ image(img, 0, 0);
70
+ imageMode(CORNER);
71
+ popMatrix();
72
+ }
73
73
  ```

1

追記 参考コード

2020/01/08 12:38

投稿

TN8001
TN8001

スコア10114

answer CHANGED
@@ -14,4 +14,60 @@
14
14
  > mp3ファイルが再生されると回転し、停止すると回転が止まる
15
15
 
16
16
  `player.isPlaying()`で今の再生状態が取れます。
17
- draw内にあるであろう回転角度の変更部分を、**再生中だけ**増やすようにすればいいでしょう。
17
+ draw内にあるであろう回転角度の変更部分を、**再生中だけ**増やすようにすればいいでしょう。
18
+
19
+ ---
20
+
21
+ 追記 参考コード
22
+ ENTERキーでトグル動作 本題でないところ全カット
23
+
24
+ ```Processing
25
+ import ddf.minim.*;
26
+
27
+ Minim minim;
28
+ AudioPlayer player;
29
+ PImage img;
30
+ float deg; // 回転角度
31
+ float delta = 33.3 * 360.0 / 60; // 1秒間に回る角度
32
+
33
+ void setup() {
34
+ size(600, 400);
35
+ minim = new Minim(this);
36
+ player = minim.loadFile("おんがく.mp3");
37
+ img = loadImage("れこーど.png");
38
+ }
39
+
40
+ void draw() {
41
+ rotateImage((width - img.width) / 2, (height - img.height) / 2, img, deg);
42
+
43
+ if (player.isPlaying()) {
44
+ deg += delta / frameRate;
45
+ if (deg > 360) deg -= 360;
46
+ }
47
+ }
48
+
49
+ void keyPressed() {
50
+ println("keyPressed");
51
+
52
+ if (key == ENTER || key == RETURN) {
53
+ if (player.isPlaying()) {
54
+ player.pause();
55
+ } else {
56
+ player.loop();
57
+ }
58
+ }
59
+
60
+ // 省略
61
+ }
62
+
63
+ //http://mslabo.sakura.ne.jp/WordPress/make/processing%E3%80%80%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/%E7%94%BB%E5%83%8F%E3%82%92%E5%9B%9E%E8%BB%A2%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/
64
+ void rotateImage(int x, int y, PImage img, float deg) {
65
+ pushMatrix();
66
+ translate(x + img.width / 2, y + img.height / 2);
67
+ rotate(radians(deg));
68
+ imageMode(CENTER);
69
+ image(img, 0, 0);
70
+ imageMode(CORNER);
71
+ popMatrix();
72
+ }
73
+ ```