クラスの使用
提供:kuhalaboWiki
(版間での差分)
(ページの作成:「 *Ballクラスを作成 ** Ball.h Ballクラスの宣言。変数とメソッド(関数) ** Ball.cpp コンストラクターBall()とメソッドの定義 ;B...」) |
2014年11月17日 (月) 03:06時点における版
- Ballクラスを作成
- Ball.h Ballクラスの宣言。変数とメソッド(関数)
- Ball.cpp コンストラクターBall()とメソッドの定義
- Ball.h
#pragma once #include "ofMain.h" class Ball { public: ofPoint pos; ofPoint vel; ofPoint acc; float radius; ofColor bcolor; public: Ball(); void draw(); void update(); };
- Ball.cpp
#include "Ball.h" Ball::Ball(){ pos = ofPoint(ofGetWidth()/2, ofGetHeight()/2); vel = ofPoint(ofRandom(-5,5),ofRandom(-3,3)); acc = ofPoint(ofRandom(-0.5,0.5),ofRandom(-0.3,0.3)); radius = ofRandom(35,50); bcolor = ofColor(ofRandom(200,255), ofRandom(0,255), ofRandom(0,255), 100); } void Ball::update(){ acc = ofPoint(ofRandom(-0.5,0.5),ofRandom(-0.3,0.3)); vel.x += acc.x; vel.y += acc.y; pos.x += vel.x; pos.y += vel.y; if( pos.x > ofGetWidth() || pos.x < 0 ){ vel.x *= -1; } if( pos.y > ofGetHeight() || pos.y < 0 ){ vel.y *= -1; } } void Ball::draw(){ ofSetColor(bcolor); ofCircle(pos.x, pos.y, radius); }
- ofApp.h
#pragma once #include "ofMain.h" #include "Ball.h" class ofApp : public ofBaseApp{ public: bool mouse_pressed; public: void setup(); void update(); void draw(); void keyPressed(int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); Ball myball; };
- ofApp.cpp
#include "ofApp.h" //-------------------------------------------------------------- void ofApp::setup(){ ofBackground(0, 0, 0); //背景色の設定 ofSetColor(255, 255, 0); //描画色の設定 ofSetBackgroundAuto(false); ofSetFrameRate(30); ofEnableAlphaBlending(); //アルファチャンネルを有効にする ofSetCircleResolution(64); mouse_pressed = false; } //-------------------------------------------------------------- void ofApp::update(){ if(mouse_pressed ){ myball.vel.x = ( mouseX - myball.pos.x ) * 0.01; myball.vel.y = ( mouseY - myball.pos.y ) * 0.01; } myball.update(); } //-------------------------------------------------------------- void ofApp::draw(){ //全画面を半透明の黒でフェード ofSetColor(0, 0, 0, 10); ofRect(0, 0, ofGetWidth(), ofGetHeight()); myball.draw(); } //-------------------------------------------------------------- void ofApp::mousePressed(int x, int y, int button){ mouse_pressed = true; } //-------------------------------------------------------------- void ofApp::mouseReleased(int x, int y, int button){ mouse_pressed = false; }