Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int radius = 40; //ボールの半径(初期値40)
- float x = 110; //ボールのx座標(初期値110)
- float y = 60; //ボールのy座標(初期値60)
- float vx = 0.5; //ボールのx方向の速度(初期値0.5)
- float vy = 0.3; //ボールのy方向の速度(初期値0.3)
- int xdir = 1; //ボールのx進行方向(初期値1 -1:左方向、1:右方向)
- int ydir = 1; //ボールのy進行方向(初期値1 -1:上方向、1:下方向)
- void setup() {
- size(240, 240); //ウィンドウサイズ(240, 240)
- ellipseMode(RADIUS); //半径を七して円を描画する設定に変更
- }
- void draw() {
- background(0); //背景黒
- move(); //ボールの座標を移動する
- if (isHitRightWall() || isHitLeftWall()) { //右壁か左壁に衝突したら
- flipXdir(); //ボールのx進行方向を反転する
- }
- if (isHitBottomWall() || isHitTopWall()) { //下壁か上壁に衝突したら
- flipYdir(); //ボールのy進行方向を反転する
- }
- display(); //ボールを描く
- }
- //ボールの座標を移動する
- void move(){
- x += vx * xdir;
- y += vy * ydir;
- }
- //ボールのx進行方向を反転する
- void flipXdir(){
- xdir = -xdir;
- }
- //ボールのy進行方向を反転する
- void flipYdir(){
- ydir = -ydir;
- }
- //ボールを描く
- void display(){
- ellipse(x, y, radius, radius);
- }
- //下壁に衝突したか
- boolean isHitBottomWall(){
- if(y > height-radius){
- return true;
- } else {
- return false;
- }
- }
- //上壁に衝突したか
- boolean isHitTopWall(){
- if(y < radius){
- return true;
- } else {
- return false;
- }
- }
- //左壁に衝突したか
- boolean isHitLeftWall(){
- if(x < radius){
- return true;
- } else {
- return false;
- }
- }
- //右壁に衝突したか
- boolean isHitRightWall(){
- if(x > width-radius){
- return true;
- } else {
- return false;
- }
- }
Add Comment
Please, Sign In to add comment