// week13_01_animated_background_array_I_frameCount
PImage [] img = new PImage[3];
void setup(){
size(550,370);
img[0] = loadImage("snail01.png");
img[1] = loadImage("snail02.png");
img[2] = loadImage("snail03.png");
}
int I = 0; //0,1,2,0,1,2,0,1,2...
void draw(){
background(img[I]);
if(frameCount%20==0) I = (I+1)%3;
}
 |
week13_01_animated_background_array_I_frameCount |
// week13_02_animated_background_frameCount_x
void setup(){
size(500,300); //寬度是500,兩倍是1000
}
void draw(){
background(#FFFFF2);
float x = (frameCount*5 % 1000);
if(x>500) x = 1000-x; //超過500範圍,就折回來
for(int y=30; y<300; y+=50){
ellipse(x, y, 30, 30);
}
}
 |
week13_02_animated_background_frameCount_x |
// week13_03_animated_background_turkey_pushMatrix_translate_rotate_popMatrix
PImage img;
void setup(){
size(500,300);
img = loadImage("turkey.png");
imageMode(CENTER);
}
void turkey(int x, int y){
pushMatrix();
translate(x, y);
rotate(radians(frameCount));
image(img, 0, 0);
popMatrix();
}
void draw(){
background(255,155,0);
turkey(mouseX, mouseY);//會跟著mouse動
turkey(100,100); //左上角
turkey(400,100); //右上角
turkey(100,200); //左下角
turkey(400,200); //右下角
}
 |
week13_03_animated_background_turkey_pushMatrix_translate_rotate_popMatrix |
// week13_04_PShape_gundam_loadShape_shape_obj_mtl_jpg
PShape gundam;
void setup(){
size(500, 500, P3D); //小心 P3D
gundam = loadShape("Gundam.obj");
}
void draw(){
shape(gundam, 0, 0, 500, 500);
}
 |
week13_04_PShape_gundam_loadShape_shape_obj_mtl_jpg |
// week13_05_PShape_gundam_loadShape_shape_pushMatrix_scale_translate_rotate_popMatrix
PShape gundam;
void setup(){
size(500, 500, P3D); //小心 P3D
gundam = loadShape("Gundam.obj");
}
void draw(){
background(#BBFF81); //淡綠色
pushMatrix();
translate(mouseX, mouseY);
rotateY(radians(frameCount));
rotate(radians(180));
scale(10, 10, 10);
shape(gundam, 0, 0); //shape(gundam, 0, 0, 250/2, 500/2);
popMatrix();
}
 |
week13_05_PShape_gundam_loadShape_shape_pushMatrix_scale_translate_rotate_popMatrix |
// week13_06_PShape_gundam_for_loop
PShape gundam;
void setup(){
size(500, 500, P3D); //小心 P3D
gundam = loadShape("Gundam.obj");
}
void draw(){
background(#BBFF81); //淡綠色
drawGundam(mouseX, mouseY);
for(int x=0; x<=500; x+= 500/4) {
drawGundam(x, 300);
}
}
void drawGundam(int x, int y){
pushMatrix();
translate(x, y);
rotateY(radians(frameCount));
rotate(radians(180));
scale(10, 10, 10);
shape(gundam, 0, 0); //shape(gundam, 0, 0, 250/2, 500/2);
popMatrix();
}
 |
week13_06_PShape_gundam_for_loop |
// week13_07_tetris_falling
void setup(){
size(300,600);
}
float x = 50, y = 50;
void draw(){
background(0);
fill(153, 0, 204);
rect(x, y-25, 25, 25);
rect(x+25, y, 25, 25);
rect(x, y, 25, 25);
rect(x, y+25, 25, 25);
if(frameCount%50==0) y += 25;
}
void keyPressed(){
if(keyCode==RIGHT) x += 25;
if(keyCode==LEFT) x -= 25;
}
 |
week13_07_tetris_falling |
// week13_08_tetris_grid_2d_array_fill_rect
void setup(){
size(240, 440); // j x:20+2 i y:10+2
}
void draw(){
for(int i=0; i<22; i++){
for(int j=0; j<12; j++){
if(grid[i][j]==1) fill(119,119,119);
if(grid[i][j]==0) fill(0);
if(grid[i][j]==2) fill(153,0,204);
rect(j*20, i*20, 20, 20);
}
}
}
int [][] grid = {
{1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,2,2,0,0,0,0,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,2,2,0,0,0,0,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};
 |
week13_08_tetris_grid_2d_array_fill_rect |
// week13_09_tetris_color_array_c_now
color [] c = {#000000, #777777, #9900CC, #CCCC00, #00CC00, #CC0000}; // 將會有10個色彩
//黑,灰,紫,黃,綠,紅
void setup(){
size(240, 440); // j x:20+2 i y:10+2
}
void draw(){
for(int i=0; i<22; i++){
for(int j=0; j<12; j++){
int now = grid[i][j];
fill(c[now]);
rect(j*20, i*20, 20, 20);
}
}
}
int [][] grid = {
{1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,2,2,0,0,0,0,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};
 |
week13_09_tetris_color_array_c_now |
// week13_10_tetris_falling_if_frameCount_for_for_if
color [] c = {#000000, #777777, #9900CC, #CCCC00, #00CC00, #CC0000, #0000CC, #CC9900, #0000CC, #FFFFFF}; // 將會有10個色彩
//黑,灰,紫,黃,綠,紅,藍,橘,青
void setup(){
size(240, 440); // j x:20+2 i y:10+2
}
void draw(){
for(int i=0; i<22; i++){
for(int j=0; j<12; j++){
int now = grid[i][j];
fill(c[now]);
rect(j*20, i*20, 20, 20);
}
}
if(frameCount%50==0){
int bad=0; //一開始沒有壞掉
for(int i=20; i>=1; i--){ //從下到上的迴圈
for(int j=1; j<12-1; j++){ //最左右不動,中間才動
if(grid[i][j]==2) {//如果是可以移動的主角,暫定是2,之後是10
if(grid[i+1][j]!=0 && grid[i+1][j]!=2) bad=1;
}//不能往下走
}
}
if(bad==0){
for(int i=20; i>=1; i--){
for(int j=1; j<12-1; j++){
if(grid[i][j]==2){
grid[i+1][j]=2; //先挑2紫色往下掉
grid[i][j] = 0;
}
}
}
}
}
}
int [][] grid = {
{1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,2,2,0,0,0,0,1},
{1,0,0,0,0,2,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};
 |
week13_10_tetris_falling_if_frameCount_for_for_if |
// week13_11_tetris_falling_alive_9_freeze_dead_T
color [] c = {#000000, #777777, #9900CC, #CCCC00, #00CC00, #CC0000, #0000CC, #CC9900, #0000CC, #FFFFFF}; // 將會有10個色彩
int T = 2; // 型號,假設先設成2 //黑,灰,紫,黃,綠,紅,藍,橘,青
void setup(){
size(240, 440); // j x:20+2 i y:10+2
}
void draw(){
for(int i=0; i<22; i++){
for(int j=0; j<12; j++){
int now = grid[i][j];
fill(c[now]);
rect(j*20, i*20, 20, 20);
}
}
if(frameCount%50==0){
int bad=0; //一開始沒有壞掉
for(int i=20; i>=1; i--){ //從下到上的迴圈
for(int j=1; j<12-1; j++){ //最左右不動,中間才動
if(grid[i][j]==9) {//如果是可以移動的主角、活著、是9
if(grid[i+1][j]!=0 && grid[i+1][j]!=9) bad=1;
}//不能往下走
}
}
if(bad==0){
for(int i=20; i>=1; i--){
for(int j=1; j<12-1; j++){
if(grid[i][j]==9){
grid[i+1][j]=9; //9代表活著、可以動
grid[i][j] = 0;
}
}
}
}else{
for(int i=20; i>=1; i--){
for(int j=1; j<12-1; j++){
if(grid[i][j]==9){
grid[i][j] = T;
}
}
}
}
}
}
int [][] grid = {
{1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,0,0,0,9,0,0,0,0,0,1},
{1,0,0,0,0,9,9,0,0,0,0,1},
{1,0,0,0,0,9,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1},
};
 |
week13_11_tetris_falling_alive_9_freeze_dead_T |
沒有留言:
張貼留言