オープンフレームワークスを用いてゲームアプリを作っています。
コードは以下の通りで、
c++
1#include "ofApp.h" 2 3static const int NUM = 210; 4 5float loc_x[NUM]; 6float loc_y[NUM]; 7float speed_x[NUM]; 8float speed_y[NUM]; 9float radius[NUM]; 10int red[NUM]; 11int blue[NUM]; 12int green[NUM]; 13 14//-------------------------------------------------------------- 15void ofApp::setup(){ 16 ofBackground(0, 0, 0); 17 ofSetFrameRate(60); 18 ofSetCircleResolution(64); 19 ofEnableAlphaBlending(); 20 21 ofTrueTypeFont::setGlobalDpi(72); 22 23 verdana.load("verdana.ttf", 30); // フォントのデータを指定する 24 verdana.setLetterSpacing(1.0); // 文字間を指定する 25 26 for(int i = 0; i < NUM; i++){ 27 loc_x[i] = ofRandom(0, ofGetWidth()); 28 loc_y[i] = ofRandom(0, ofGetHeight()); 29 speed_x[i] = ofRandom(4); 30 speed_y[i] = ofRandom(4); 31 radius[i] = ofRandom(30, 40); 32 red[i] = ofRandom(255); 33 blue[i] = ofRandom(255); 34 green[i] = ofRandom(255); 35 } 36} 37//-------------------------------------------------------------- 38void ofApp::update(){ 39 for(int i = 0; i < NUM; i++){ 40 loc_x[i] = loc_x[i] + speed_x[i]; 41 loc_y[i] = loc_y[i] + speed_y[i]; 42 43 if(loc_x[i] < 0){ 44 speed_x[i] = speed_x[i] * -1; 45 } 46 if(loc_x[i] > ofGetWidth()){ 47 speed_x[i] = speed_x[i] * -1; 48 } 49 if(loc_y[i] < 0){ 50 speed_y[i] = speed_y[i] * -1; 51 } 52 if(loc_y[i] > ofGetHeight()){ 53 speed_y[i] = speed_y[i] * -1; 54 } 55 } 56} 57 58//-------------------------------------------------------------- 59void ofApp::draw(){ 60 for(int i = 0; i < NUM/3; i++){ 61 ofSetColor(60, 255, 0, 200); 62 ofDrawCircle(loc_x[i], loc_y[i], radius[i]); 63 } 64 for(int i = 0; i < NUM/3; i++){ 65 ofSetColor(140, 255, 20, 200); 66 ofDrawCircle(loc_x[i+1], loc_y[i], radius[i]); 67 } 68 for(int i = 0; i < NUM/3; i++){ 69 ofSetColor(200, 255, 40, 200); 70 ofDrawCircle(loc_x[i], loc_y[i+1], radius[i]); 71 } 72 ofSetColor(250, 255, 0, 200); 73 ofDrawCircle(loc_x[1], loc_y[3], radius[3]); //対象となる円 74} 75 76//-------------------------------------------------------------- 77void ofApp::mousePressed(int x, int y, int button){ 78 79} 80 81
複数描かれた円の中から対象となる円をクリックした時に「That's right!」というテキストを表示させるようにしたいのですが、円の座標をその都度取得してクリック判定に用いるという考え方であっていますでしょうか?できればやり方などを教えていただきたく、投稿させていただきました。もちろん自分でも調べて見ましたが検索に引っかからずに困っています。ご教授お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。