顯示具有 07161116_張勝彥 標籤的文章。 顯示所有文章
顯示具有 07161116_張勝彥 標籤的文章。 顯示所有文章

2021年12月27日 星期一

期末

 有去教室上課當面問老師關於子彈碰撞的問題

跟FB範例的兩個方塊碰撞的程式不一樣

2021年12月13日 星期一

2021年12月6日 星期一

酷喔

 小葉老師在協助同學期末作品


彈弓的模擬






void setup(){

  size(400,300);

}

float x,y,vx,vy;

boolean flying=false;

void draw(){

  background(255);

  line(mouseX,mouseY,100,200);

  float force = 1*dist(mouseX,mouseY,100,200);

  if(flying){

    ellipse(x,y,30,30);

    x+=vx;  y+=vy;

    vy+=0.98;

  }

  if(frameCount%(2*60)==0){

    x=mouseX;  y=mouseY;  vx=(100-mouseX)*0.1;  vy=(200-mouseY)*0.1;

    flying=true;  

  }

}

------------------------------------------------


馬力歐採怪物









float []turtleX=new float[30];

float x=100,y=200,vx=0,vy=0;

boolean jumping=false,MarioDie=false;

boolean[]turtleAlive=new boolean[30];

void setup(){

  size(500,300);

  turtleX[0]=500;

  for(int i=1;i<30;i++){

    turtleX[i]=turtleX[i-1]+random(100,200);

    turtleAlive[i]=true;

  }

}

void draw(){

  background(255);

  if(MarioDie) background(255,0,0);

  fill(#E5DCB7);  rect(0,200,500,100);

  for(int i=0;i<30;i++){

    if(turtleAlive[i]){

      if(dist(x,y-20,turtleX[i],200-20)<40){

        if(jumping)  turtleAlive[i]=false;

        else  MarioDie=true;

      }

      fill(0,255,0);  ellipse(turtleX[i],200-20,40,40);

      if(!MarioDie)  turtleX[i]-=3;

    }

  }

  fill(255,0,0);  ellipse(x,y-20,40,40);

  if(jumping){

    x+=vx;  y+=vy;  vy+=0.98;

    if(y>200){

      y=200;  jumping=false;

    }

  }

}

void mousePressed(){

  jumping=true;

  vy-=16;

}

---------------------------------------


寶石方塊








int[][]square=new int[8][8];

color[] c={#FA1E1E,#1E44FA};

void setup(){

  size(400,400);

  for(int i=0;i<8;i++){

    for(int j=0;j<8;j++){

      square[i][j]=int(random(2));

    }

  }

}

void draw(){

  for(int i=0;i<8;i++){

    for(int j=0;j<8;j++){

      if(mousePressed&&i==moveI&&j==moveJ)  strokeWeight(5);

      else if(mousePressed&&i==moveI2&&j==moveJ2)  strokeWeight(5);

      else  strokeWeight(1);

      if(square[i][j]==0){

        fill(c[0]);  rect(j*50,i*50,50,50);

      }else if(square[i][j]==1){

        fill(c[1]);  rect(j*50,i*50,50,50);

      }

    }

  }

}

int moveI,moveJ,moveI2,moveJ2;

void mousePressed(){

  int j=mouseX/50,i=mouseY/50;

  moveJ=j;  moveI=i;

  moveJ2=j;  moveI2=i;

}

void mouseDragged(){

  int j=mouseX/50,i=mouseY/50;

  moveJ2=j;  moveI2=i;

}

void mouseReleased(){

  int j=mouseX/50,i=mouseY/50;

  moveJ2=j;  moveI2=i;

  if(testNeighbor(i,j,moveI,moveJ)==true){

    int temp=square[i][j];

    square[i][j]=square[moveI][moveJ];

    square[moveI][moveJ]=temp;

  }

}

boolean testNeighbor(int i,int j,int i2,int j2){

  if(i==i2&&j-j2==1)  return true;

  if(i==i2&&j2-j==1)  return true;

  if(j==j2&&i-i2==1)  return true;

  if(j==j2&&i2-i==1)  return true;

  return false;

}

2021年11月29日 星期一

大家部落格都不一樣

 今天是在做自己的作業

一開始上課的時候老師就開始講解教室同學的問題

我一開始定的題目是彈力球打板的遊戲







但老師說不要太常見的

我覺得這個遊戲應該網路上很多資料

所以我在想要不要把遊戲改成類似彈幕遊戲











但基本架構不太清楚可能要上課的時候詢問老師一下作法

在最後一節課有問老師

詳細過程下課再自己研究

week06

  1 直接用text()寫出Hello


2 改成text()套在draw()中寫出Hello
3 利用frameCount以60fps刷新計時

4 frameCount/60以符合用秒作為計時單位

  另用millis()作為對照,frameCount執行時較慢不準確


5 加入hour() minute() second()用於計時

6 以pFont的pFont.list()查詢現有字體,再以createFont()選擇字型

    textFont()使用文字字型


7 物件font1 font2各用一種字型 按下畫面可改字型
8 字串hh mm ss分別使用hour() minute() second()
9 將現在時間轉為以秒為單位並與下課時間相減 得出剩下時間
10 將剩下時間秒為單位改為時分秒為單位
11 將數字png檔案以陣列讀入並顯示
12 將剩下秒數以數字圖案呈現並調整位置

week05

 

                                                                               







開啟processing去程式素描本安裝函式庫,去下載video


file-範例-video-movie-loop 然後執行




記得把影片先丟進去,然後打程式

import processing.video.*;
Movie movie;
void setup() {
  size(560, 406);
  movie = new Movie(this, "launch2.mp4");
  movie.loop();
}
void draw(){
  image(movie,0,0);
}
void movieEvent(Movie m){
  m.read();
}


先叫出GettingStartedCapture



import processing.video.*;
Capture cam;
void setup()
{
 size(640,480);
 String[] cameras = Capture.list();
 for(String name : cameras)
 {
   println(name);
 }
}






因為我的攝影機出了一點狀況,可能要換電腦或是重新啟動才可能會成功執行,為了跟上課程所以就先繼續上課
import processing.video.*;
Capture cam;
void setup(){
  size(640,480);
  cam=new Capture(this, 640,480);
  cam.start();
}
void draw(){
   if(cam.available()){
      cam.read(); 
   }
   image(cam,0,0);
}






多一行程式碼,存取連續照片,記得複製此資料夾的位置
import processing.video.*;
Capture cam;
void setup(){
  size(640,480);
  cam= new Capture(this, 640,480);
  cam.start();
}
void draw(){
   if(cam.available())
   {
      cam.read(); 
   }
   image(cam,0,0);
   saveFrame();
}

把圖片存成影片檔,貼上剛剛複製的位置,存在桌面


import processing.video.*;//先裝好 Video Library
Movie movie;

void setup()
{
  size(640,480);
  movie = new Movie(this, "my_webcam.mov");
  movie.loop();
}//要在我的硬碟的目錄裡面,開launch2.mp4檔
void draw()
{
  image(movie,0,0);
}
void movieEvent(Movie m)
{
  m.read();
}

下面是第二種方式
import processing.video.*;//先裝好 Video Library
Movie movie;

void setup()
{
  size(640,480);
  movie = new Movie(this, "my_webcam.mov");
  movie.loop();
}//要在我的硬碟的目錄裡面,開launch2.mp4檔
void draw()
{
  if(movie.available())//第2種方法
  {
    movie.read();//第2種方法
  }
  image(movie,0,0);
}
//void movieEvent(Movie m)
//{
//  m.read();
//}



原本是紅色,點一下滑鼠會變成一般紅色一半綠色

void setup()
{
  size(640,480);
  background(255,0,0);
}
void draw()
{
  println(frameCount);
}
void mousePressed()
{
  loadPixels();
  for(int i=0;i<640*480/2;i++)
  {
    pixels[i]=color(0,255,0);
  }
  updatePixels();
  saveFrame();
}


import processing.video.*;
Movie movie;
color[]c={#F0F0F0,#FFF160,#FFC501,#FE9600,#03001C};

void setup(){
  size(640,480);
  
  movie = new Movie(this,"my_webcam.mov");
  movie.play();
}
void draw(){
  if(movie.available()){
    movie.read();
    image(movie,0,0);
  }
}
void mousePressed(){
  movie.pause();
  loadPixels();
  for(int i=0;i<640*480;i++){
    float bright - brightness(pixels[i]);
    int now = 4-int(bright/67);
    pixels[i] -c[now];
  }
  updatePixels();
}

week04

 

1
                                                                                  

                                                                                      2

                                          

                                                                                    3

    


4



5

6


7


8


9


10


11




















2021年11月22日 星期一

hi

 


這周開始老師要幫我們每組要做的遊戲都示範一次


老師講解俄羅斯方塊
小朋友下樓梯

小雞過馬路
弓箭傳說

2021年11月15日 星期一

week08


                                                                   字形的學習

2021年10月18日 星期一

week03

 

如何使用ppt去背景

PImage img1,img2;
void setup()
{
    size(500,500);
    img1=loadImage("sky.png");
    img2=loadImage("dora.png");
 }
 void draw()
 {
     image(img1,0,0,500,500);
     image(img2,mouseX-100,mouseY-100,200,100);
 }
imageMode(CORNER);
  imageMode(CENTER);
輸入這個程式
就不用-100,-100




程式函庫–聲音檔
sound
Minmi都可用

炸難

do.re.mi.fa.so