Last active
June 12, 2017 06:06
-
-
Save tado/152a6fd62c4188147efecb1b57e3c1d8 to your computer and use it in GitHub Desktop.
TEU class 170612 template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Spotクラスを宣言 | |
Spot spot; | |
void setup() { | |
size(800, 600); | |
noStroke(); | |
frameRate(60); | |
//位置ベクトルをランダムに生成 | |
PVector loc = new PVector(width/2.0, height/2.0); | |
//速度ベクトルをランダムに生成 | |
PVector vec = new PVector(random(-4, 4), random(-4, 4)); | |
//インスタンス化して配列に格納 | |
spot = new Spot(loc, vec, random(5, 30)); | |
//背景を黒に | |
background(0); | |
} | |
void draw() { | |
// 画面をフェードさせる | |
blendMode(BLEND); | |
fill(0, 0, 0, 10); | |
rect(0, 0, width, height); | |
// 色を加算合成に | |
blendMode(ADD); | |
// 円の色を設定 | |
fill(31, 127, 255, 127); | |
// Spotクラスのmove()メソッドを呼び出す | |
spot.move(); | |
// Spotクラスのdraw()メソッドを呼び出す | |
spot.draw(); | |
} | |
// Spotクラス | |
class Spot { | |
// プロパティ | |
PVector location; //位置 (ベクトル!) | |
PVector velocity; //速度 (ベクトル!) | |
float diameter; //直径 | |
// コンストラクター | |
Spot(PVector _location, PVector _velocity, float _diameter) { | |
location = _location; | |
diameter = _diameter; | |
velocity = _velocity; | |
} | |
// 移動 | |
void move() { | |
//位置ベクトル + 速度ベクトル = 次フレーム位置ベクトル | |
location.add(velocity); | |
//左右の壁でバウンドさせる | |
if (location.x < diameter / 2 || location.x > width - diameter / 2) { | |
location.x = constrain(location.x, diameter/2, width - diameter / 2); | |
velocity.x *= -1; | |
} | |
//上下の壁でバウンドさせる | |
if (location.y < diameter / 2 || location.y > height - diameter / 2) { | |
location.y = constrain(location.y, diameter/2, height - diameter / 2); | |
velocity.y *= -1; | |
} | |
} | |
// 描画 | |
void draw() { | |
ellipse(location.x, location.y, diameter, diameter); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment