83 lines
2.6 KiB
C++
Raw Normal View History

2014-01-06 02:40:24 +00:00
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
ofSetFrameRate(60);
string host = Spacebrew::SPACEBREW_CLOUD; // "localhost";
string name = "of-button-example";
string description = "It's amazing";
spacebrew.addPublish("button", Spacebrew::TYPE_BOOLEAN);
spacebrew.addSubscribe("backgroundOn", Spacebrew::TYPE_BOOLEAN); //"boolean" ); // just typing "boolean" also works
spacebrew.connect( host, name, description );
// listen to spacebrew events
Spacebrew::addListener(this, spacebrew);
// circle stuff
bButtonPressed = false;
radius = 200;
// background
bBackgroundOn = false;
// layout stuff
ofBackground(0);
ofSetRectMode(OF_RECTMODE_CENTER);
ofEnableSmoothing();
ofSetCircleResolution(100);
}
//--------------------------------------------------------------
void testApp::update(){}
//--------------------------------------------------------------
void testApp::draw(){
if ( !bBackgroundOn ){
ofBackgroundGradient(ofColor(0,0,0), ofColor(50,50,50));
} else {
ofBackgroundGradient(ofColor(100,0,0), ofColor(150,150,0));
}
string textToDraw = "PRESS ME";
if ( bButtonPressed ){
ofSetColor( 150, 0, 0 );
textToDraw = "THANKS";
} else {
ofSetColor(150);
}
ofCircle(ofGetWidth() / 2.0f, ofGetHeight()/2.0f, radius);
ofSetColor(255);
ofDrawBitmapString(textToDraw, ofGetWidth() / 2.0f - 30, ofGetHeight()/2.0f);
}
//--------------------------------------------------------------
void testApp::onMessage( Spacebrew::Message & m ){
if ( m.name == "backgroundOn" ){
bBackgroundOn = m.valueBoolean();
}
}
//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){
if ( checkInsideCircle( ofPoint(x,y), ofPoint(ofGetWidth() / 2.0f, ofGetHeight()/2.0f), radius) ){
bButtonPressed = true;
spacebrew.sendBoolean("button", true);
}
}
//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){
if (bButtonPressed){
spacebrew.sendBoolean("button", false);
}
bButtonPressed = false;
}
//--------------------------------------------------------------
bool testApp::checkInsideCircle( ofPoint point, ofPoint position, int radius ){
return ( point.x < position.x + radius
&& point.x > position.x - radius
&& point.y < position.y + radius
&& point.y > position.y - radius );
}