//arc is used in p5-play
//sp.mirrorX(1);
var sp;
var h = 50;
var w = 50;
var r1 = 0;
var d = 0;
function setup() {
createCanvas(300,300);
sp = createSprite(25, 150, 50, 50);
sp.draw = function(){
fill(255,255,0);
arc(0,0+d,w,h,QUARTER_PI-r1,PI+HALF_PI+QUARTER_PI+r1);
if(QUARTER_PI-r1<=0){
r1=0;
}
fill(0);
noStroke();
ellipse(9, -13, 7, 7);
r1=r1+0.03;
}
sp.velocity.x = 2;
}
function draw() {
background(180,180,180);
// 左の壁にぶつかったら
if(sp.position.x <= w/2){
sp.velocity.x = 2;
sp.mirrorX(1);
// sp.rotation = -180;
}
// 右の壁にぶつかったら
if(sp.position.x >= width-w/2){
sp.velocity.x = -2;
sp.mirrorX(-1);
}
drawSprites();
}
preview
////////////////////////////
//sprotation = 90;
var sp;
var h = 50;
var w = 50;
var r1=0;
var d=0;
function setup() {
createCanvas(300,300);
sp = createSprite(25, 275, 50, 50);
sp.draw = function(){
fill(255,255,0);
arc(0,0+d,w,h,QUARTER_PI-r1, PI+HALF_PI+QUARTER_PI+r1);
if(QUARTER_PI-r1<=0){
r1=0;
}
fill(0); noStroke();
ellipse(9, -15, 7, 7);
r1=r1+0.03;
}
sp.velocity.x = 2;
}
function draw() {
background(180,180,180);
if(sp.position.x >= width-w/2){
sp.velocity.x = 0;
sp.velocity.y = -2;
sp.rotation = 270;
}
if(sp.position.y <= h/2){
sp.velocity.y = 0;
sp.velocity.x = -2;
sp.rotation = 180;
}
if(sp.position.x <= w/2){
sp.velocity.x = 0;
sp.velocity.y = 2;
sp.rotation = 90;
}
if(sp.position.y>= height-h/2&&sp.position.x <= w/2){
sp.velocity.y = 0;
sp.velocity.x = 2;
sp.rotation = 0;
}
drawSprites();
}
preview
/////////////////////////
arc
//arc(x, y, width, height, start, stop, PIE or OPEN or CHORD)
//arc( X座標, Y座標, 幅, 高さ, 開始角, 終了角, option )
//arc(50, 50, 80, 80, 0, PI+QUARTER_PI, PIE);
//ラジアンをそのままの数値で指定
//arc(125, 175, 100, 100, 0.79, 5.50);
//ラジアンを定数で指定
//arc(375, 175, 100, 100, QUARTER_PI, TWO_PI-QUARTER_PI);
//ラジアンを関数で指定
//arc(625, 175, 100, 100, radians(45), radians(315));
コメントを残す