Guest User

Untitled

a guest
Sep 26th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. int radius = 40; //ボールの半径(初期値40)
  2. float x = 110; //ボールのx座標(初期値110)
  3. float y = 60; //ボールのy座標(初期値60)
  4. float vx = 0.5; //ボールのx方向の速度(初期値0.5)
  5. float vy = 0.3; //ボールのy方向の速度(初期値0.3)
  6. int xdir = 1; //ボールのx進行方向(初期値1 -1:左方向、1:右方向)
  7. int ydir = 1; //ボールのy進行方向(初期値1 -1:上方向、1:下方向)
  8.  
  9. void setup() {
  10. size(240, 240); //ウィンドウサイズ(240, 240)
  11. ellipseMode(RADIUS); //半径を七して円を描画する設定に変更
  12. }
  13.  
  14. void draw() {
  15. background(0); //背景黒
  16. move(); //ボールの座標を移動する
  17. if (isHitRightWall() || isHitLeftWall()) { //右壁か左壁に衝突したら
  18. flipXdir(); //ボールのx進行方向を反転する
  19. }
  20. if (isHitBottomWall() || isHitTopWall()) { //下壁か上壁に衝突したら
  21. flipYdir(); //ボールのy進行方向を反転する
  22. }
  23. display(); //ボールを描く
  24. }
  25.  
  26. //ボールの座標を移動する
  27. void move(){
  28. x += vx * xdir;
  29. y += vy * ydir;
  30. }
  31.  
  32. //ボールのx進行方向を反転する
  33. void flipXdir(){
  34. xdir = -xdir;
  35. }
  36.  
  37. //ボールのy進行方向を反転する
  38. void flipYdir(){
  39. ydir = -ydir;
  40. }
  41.  
  42. //ボールを描く
  43. void display(){
  44. ellipse(x, y, radius, radius);
  45. }
  46.  
  47. //下壁に衝突したか
  48. boolean isHitBottomWall(){
  49. if(y > height-radius){
  50. return true;
  51. } else {
  52. return false;
  53. }
  54. }
  55.  
  56. //上壁に衝突したか
  57. boolean isHitTopWall(){
  58. if(y < radius){
  59. return true;
  60. } else {
  61. return false;
  62. }
  63. }
  64.  
  65. //左壁に衝突したか
  66. boolean isHitLeftWall(){
  67. if(x < radius){
  68. return true;
  69. } else {
  70. return false;
  71. }
  72. }
  73.  
  74. //右壁に衝突したか
  75. boolean isHitRightWall(){
  76. if(x > width-radius){
  77. return true;
  78. } else {
  79. return false;
  80. }
  81. }
Add Comment
Please, Sign In to add comment