芸大 – メディアアート・プログラミング II 2021
openFrameworksで複数の図形を動かす – 配列 (Array) と可変長配列 ( std::vector)
前回はopenFrameworksで、位置と速度という2つの変数 (Veriable) を使用して図形1つをアニメーションさせるところまで到達できました。今回はこのプログラムを応用して複数の図形を同時に動かす方法について解説していきます。複数の図形を動かすには位置と速度という2つのベクトルを個別の変数にではなくまとめて取り扱うデータの格納方法が必要となります。こうした場合には配列(Array)を使用すると便利です。それぞれのベクトルを配列にまとめることで、大量の図形のアニメーションをシンプルに記述することが可能です。さらに、あらかじめ物体の最大数が決まっていない際には、可変長配列 (std::vector) を使用するという方法もあります。この方法もあわせて解説していきます。
講義動画 (Zoom録画)
スライド資料
今日のスタートポイント
本日は、下記のコードから開始します (コピペして活用してください) 。
ofApp.h
#pragma once #include "ofMain.h" class ofApp : public ofBaseApp { public: void setup(); void update(); void draw(); float locationX; float locationY; };
ofApp.cpp
#include "ofApp.h" void ofApp::setup() { ofSetFrameRate(60); ofSetBackgroundColor(0); locationX = 0; locationY = 0; } void ofApp::update() { locationX = locationX + 3; locationY = locationY + 2; } void ofApp::draw() { ofSetColor(31, 127, 255); ofDrawCircle(locationX, locationY, 20); }
アンケート
本日の授業を受講した方は、以下のアンケートに答えてください。