Q&A
実現したいこと
場合に応じて画像を表示したい
前提
タスク0,タスク1を10回ずつ行うプログラムを作成しています。どちらのタスクが指示されるかはランダムで実装したいので,最初にランダムでタスク0,1を選択。選択回数をカウントしておいて,片方が10回に達した場合はもう片方のタスクを表示させる。それぞれのタスクは必ず10回ずつで,全タスク選択が計20回になるとプログラムを終了する。といった流れです。
そこで,タスクが選択された際に特定の画像を表示したいのですが,画像が表示されません。タスク選択の待機時間&タスク終了後の休憩時間に表示させるのがdefo.jpg, タスク0の指示タイミングで表示するのがimg0, タスク1の指示タイミングで表示するのがimg1として設定しています。
※画像表示を関数内で行っているのは,本来画像表示以外にも動作が存在するためです。
発生している問題・エラーメッセージ
エラーは出ませんが,ずっとdefo.jpgのまま画面が変わりません。
該当のソースコード
Processing
1// 定義 2PImage defo, img0, img1; // 画像データ 3 4int count = 0; // Loop回数計測変数 5int count_0 = 0, count_1 = 0; // クラスカウント変数 6int max = 10; // タスク上限回数 7int crass; // 8float result; // 9int delay_time; // 休憩時間のランダム用 10 11/* --- setup --- */ 12void setup(){ 13 // 画面設定 14 fullScreen(); 15 background(0); 16 17 // 画像読み込み 18 defo = loadImage("defo.jpg"); 19 img0 = loadImage("right.jpg"); 20 img1 = loadImage("left.jpg"); 21 22 image(defo, 0, 0); 23} 24 25/* --- draw --- */ 26void draw(){ 27 background(0); 28 println("start"); 29 count ++; // Loop回数 (2 * max回になる) 30 31 if (count_0 < max && count_1 < max) { 32 result = random(0,1); // 0 or 1をランダムで選択 33 crass = int( round(result) ); // resultを四捨五入してint型に変換 34 35 // タスク0 36 if(crass == 0) { 37 println(crass); 38 count_0 ++; 39 task_0(); 40 } 41 // タスク1 42 else { 43 println(crass); 44 count_1 ++; 45 task_1(); 46 } 47 } 48 // count_0 or count_1 がmaxまで達した場合の処理 49 else if (count_0 < max){ 50 println("0"); 51 count_0 ++; 52 task_0(); 53 } 54 else { 55 println("1"); 56 count_1 ++; 57 task_1(); 58 } 59 // ここから休憩 60 breaktime(); 61 62 // x回ループで終了 63 if(count == 2 * max){ 64 exit(); 65 } 66} 67 68void task_0() { 69 image(defo, 0, 0); 70 image(img0, 0, 0); 71 delay(5000); // タスク時間 72} 73 74void task_1() { 75 image(defo, 0, 0); 76 image(img1, 0, 0); 77 delay(5000); // タスク時間 78} 79 80void breaktime() { 81 image(defo, 0, 0); 82 println("wait"); 83 delay(1500); 84 delay_time = round( random(500,2000) ); // 休憩時間をランダムで決定0.5 ~ 2s 85 delay( delay_time ); // delay_timeをintに変形した 86}
試したこと
画像を変えてみたり,画像ではなく音を鳴らしたりしてみました。音による合図に変えると正常に動作しました。
補足情報(FW/ツールのバージョンなど)
Processing3.5.4
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/10 09:13
2023/03/11 15:18