今天不做遊戲,今天咱要用這軟體畫圖,聽起來也不是很難,先從最簡單的三角形開始:
感覺有點像老DVD的播放鍵
程式碼如下:
beginShape();
for(int angle=0; angle<360; angle+=120)
{
float angle2 = radians(angle);
float x = 100+cos(angle2)*50;
float y = 100+sin(angle2)*50;
vertex(x,y);
}
endShape(CLOSE);
接下來要做的是讓他旋轉起來,也不難:
莫名酷炫,感覺搓出了法陣
void setup()
{
size(200, 200);
}
void draw()
{
beginShape();
for(int angle=0; angle<360; angle+=120)
{
float angle2 = radians(angle+mouseX);
float x = 100+cos(angle2)*50;
float y = 100+sin(angle2)*50;
vertex(x,y);
}
endShape(CLOSE);
}
其實還可以做出更酷炫的版本,直接讓三角形隨滑鼠移動而轉動,並留下殘影:
有點像紙牌遊戲
程式碼如下:
void setup()
{
size(800, 600);
}
void draw()
{
beginShape();
for(int angle=0; angle<360; angle+=120)
{
float angle2 = radians(angle+mouseX);
float x = mouseX+cos(angle2)*50;
float y = mouseY+sin(angle2)*50;
vertex(x,y);
}
endShape(CLOSE);
}
接下來是加分題,注意我是在朋友幫助下寫出這題的,放在這裡僅作存檔之用,所以請不要計分
int A=30;
void setup()
{
size(500, 500);
}
void draw() {
for (int x1=25; x1<=475; x1+=45)
{
for (int y1=25; y1<=475; y1+=45)
{
beginShape();
if(y1%2==0)
{
if(x1%2==0)
{
A=20;
stroke(0,0,0);
}
else
{
A=40;
stroke(255,0,0);
}
}
else
{
if(x1%2==0)
{
A=30;
stroke(255,0,0);
}
else
{
A=30;
stroke(0,0,0);
}
}
for (int angle=0; angle<360;
angle+=120)
{
float angle2 = radians(angle+A);
float x2 = x1+cos(angle2)*20;
float y2 = y1+sin(angle2)*20;
vertex(x2, y2);
}
endShape(CLOSE);
beginShape();
for (int angle=0; angle<360;
angle+=120)
{
if(y1%2==0)
{
if(x1%2==0) A=20;
else A=40;
}
else A=30;
float angle2 = radians(angle+A);
float x2 = x1+cos(angle2)*12;
float y2 = y1+sin(angle2)*12;
vertex(x2, y2);
}
endShape(CLOSE);
beginShape();
for (int angle=0; angle<360;
angle+=120)
{
if(y1%2==0)
{
if(x1%2==0) A=20;
else A=40;
}
else A=30;
float angle2 = radians(angle+A);
float x2 = x1+cos(angle2)*4;
float y2 = y1+sin(angle2)*4;
vertex(x2, y2);
}
endShape(CLOSE);
}
}
}




沒有留言:
張貼留言