lineupdate

ofApp.cpp

#include "ofApp.h"

int objSizeX;
int objSizeY;
int posX;
int posY;
int speed;
int colorFlag;
bool firstTime;

//--------------------------------------------------------------
void ofApp::setup(){
    
    ofSetWindowShape(700, 600);
    ofSetBackgroundAuto(false);
    ofBackground(0, 0, 0);
    ofSetFrameRate(60);
    ofSetColor(255, 255, 255);
    objSizeX = ofGetWidth() / 5;
    objSizeY = ofGetHeight() / 20;
    posX = - (objSizeX * 4); //なぜかこんだけずらさないと0,0から描いてくれない
    posY = 0;
    speed = objSizeX;
    colorFlag = 1; //描画色白黒フラグ
    firstTime = true; //1回目の描画とそれ以降の切り分けフラグ
    
    mainOutputSyphonServer.setName("Screen Outputh");
    mClient.setup();
    mClient.setApplicationName("Simple Serverh");
    mClient.setServerName("");
    
    printf("objSizeX: %d\n", objSizeX);
    printf("posX-First: %d\n", posX);
    printf("speed-First: %d\n", speed);

}

//--------------------------------------------------------------
void ofApp::update(){
    
    if(firstTime == false){
        if(posX > ofGetWidth()){
            posY = posY + objSizeY;
            speed = speed * -1;
        }
        if(posX < 0){
            posY = posY + objSizeY;
            speed = speed * -1;
        }

        if(posY > ofGetHeight()){
            if(colorFlag == 1){
                ofSetColor(0, 0, 0);
                posY = 0;
                colorFlag = 2;
            } else if(colorFlag == 2){
                ofSetColor(255, 255, 255);
                posY = 0;
                colorFlag = 1;
            }
        }
    }
    
    if(firstTime == true){
        if(posX > ofGetWidth() - objSizeX){
            firstTime = false;
        }
    }
    
    posX = posX + speed;
    
}

//--------------------------------------------------------------
void ofApp::draw(){
    
    ofDrawRectangle(posX, posY, objSizeX, objSizeY);
    
    mClient.draw(50, 50);
    mainOutputSyphonServer.publishScreen();
    
    printf("posX: %d\n", posX);
    //printf("posY: %d\n", posY);
    //printf("firstTime: %d\n", firstTime);

}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください