ボールを打ち返すラケットを作ります。
ラケットの操作はキーボードとマウスの二通りが考えられますが、今回はマウスを使います。
マウスの座標はシステム変数mousexを使う事で得られます。
簡単にするため、ボールは正方形として扱っています。なので当たり判定の精度は低いです。
特にボールの大きさを大きくするとそれが顕著になります。
またボールがラケットの横に当たると、ボールがラケットにめり込んで動かなくなります。
//画面の大きさ #define wx 360 #define wy 400 //ボールの位置 x = 40.0 y = 300.0 //ボールの速度 vx = 3.0 vy = 3.0 racketsize = 60 //ラケットの大きさ ballsize = 8 //ボールの大きさ screen 0,wx,wy repeat rx = mousex - racketsize/2 //マウスの位置からラケットの左端の座標を求める x += vx y += vy if x < 0 | x > (wx-ballsize) : vx = vx * -1 if y < 0 : vy = vy * -1 if (y >= wy-ballsize) & (x+ballsize > rx) & (x < rx+racketsize):vy = vy * -1 //ボールを打ち返す if y > wy :y = 0 color 0,0,0 boxf color 255,0,0 boxf rx,wy-5,rx+racketsize,wy //ラケットの描画 color 255,255,0 circle x,y,x+ballsize,y+ballsize redraw 1 wait 1 redraw 0 loop