顯示具有 Week17 標籤的文章。 顯示所有文章
顯示具有 Week17 標籤的文章。 顯示所有文章

2020年6月29日 星期一

你當我的錢是大風颳來的嗎_week17


這次是寫會移動的球球
一開始寫出來是固定的線跟球,然後再進階


這邊可以隨意拉伸線的長度

接下來很快速地回彈

滑順的回彈

會自己移動的線跟球

(老師給參照的程式碼)

2020年6月18日 星期四

Programming-week17

strange circle to line

pic:

program:
void setup() {
  size(300, 300);
}
float x=200, y=150;// 要動 要變數
float vx=0, vy=0;
void draw() {
  background(#002966);
  stroke(#b7efff);
  line(100, 150, x, y);

  fill(#b7efff);
  noStroke();
  ellipse(100, 150, 13, 13);
  ellipse(x, y, 13, 13);
  if (!mousePressed) {//沒又按下去...等於放開,讓他做運動
    float dx=x-100, dy=y-150;
    float len=sqrt(dx*dx+dy*dy);
    vx -= dx*(len-100)/len*0.1;//越大,越強
    vy -= dy*(len-100)/len*0.1;
    x += vx;
    y += vy;
  }
}
void mouseDragged() {
  x=mouseX; 
  y=mouseY;
  vx = 0;
  vy = 0;//拉動時,不能有速度
}

mouse control fish or cat

pic:

program:
void setup() {
  size(400, 300);
}
float x=200, y=150;// 要動 要變數
void draw() {
  background(#002966);
  fill(255);
  rect(x, y, 80, 20);//魚, 每次往你的mouse移動1/10
  float dx=x-mouseX, dy=y-mouseY;//float len=sqrt(dx*dx+dy*dy);
  x -= dx*0.1;
  y -= dy*0.1;
}

這裡是常闇的重修地獄録 第十之卷

今天是最後一次寫部落格了,就好好來做吧,今天首先要來製作一個看起來怪舒服的動態背景畫面。


首先先把基礎的畫面做出來


當然這是不會動的,我們先讓他能夠移動吧



動是能動了啦......但感覺真僵硬,不如我們讓它有彈性點兒吧?


這下它終於像個彈簧兒了。但這只是其中一種做法,這裡還有一種做法。


這是運用微積分的概念所寫的方法。

接著我們運用類似的方法可以做出可以跟隨滑鼠的小方塊



week-17


彈簧點

一個小彈簧


可以拉點移動

拉點移動後放開會回到原來長度

拉放後來回伸縮

方塊跟著滑鼠移動

08160873



這是今天上課教學的程式碼以及成果

week17冠倫


                                                                        畫出兩個彈簧點!!


                                                                             多一條線!!


                                                                  點拉到哪 線就到哪!!


                                                             拉點可拉長 放開就縮回原本的!!

多*0.1 線往回縮的速度變慢!!


彈簧會來回一直彈!!


現在彈簧談得更快 而且不會旋轉跑掉!!


滑鼠拉到哪 框框就跟到哪

week17

今天是這學期最後一次見小葉了,然後今天學了這個遊戲還有老師有展示很多小遊戲的程式碼,讓我們有興趣可以自己去看

a20200618

void setup()
{
  size(300,300);
}
void draw()
{
  background(#002966);
  fill(#b7efff);//點的顏色
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(200,150, 13,13);
}



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

void setup()
{
  size(300,300);
}
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, 200,150);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(200,150, 13,13);
}



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

void setup()
{
  size(300,300);
}
float x=200,y=150;//點跟線的位置初始值
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, x,y);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(x,y, 13,13);
}
void mouseDragged()//滑鼠按下去
{
  x=mouseX;//跟滑鼠移動
  y=mouseY;
}



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

void setup()
{
  size(300,300);
}
float x=200,y=150;//點跟線的位置初始值
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, x,y);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(x,y, 13,13);
  if(!mousePressed)//放開按的滑鼠,線回彈
  {
    float dx=x-100 ,dy=y-150;
    float len=sqrt(dx*dx+dy*dy);//計算長度
    x -= dx*(len-100)/len;
    y -= dy*(len-100)/len;
  }
}
void mouseDragged()//滑鼠按下去
{
  x=mouseX;//跟滑鼠移動
  y=mouseY;
}

------------------------------------------------------------------------------------------------------------------
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, x,y);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(x,y, 13,13);
  if(!mousePressed)//放開按的滑鼠,線回彈
  {
    float dx=x-100 ,dy=y-150;
    float len=sqrt(dx*dx+dy*dy);//計算長度
    x -= dx*(len-100)/len*0.1;//*0.1慢慢回彈
    y -= dy*(len-100)/len*0.1;
  }
}
void mouseDragged()//滑鼠按下去
{
  x=mouseX;//跟滑鼠移動
  y=mouseY;
}

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

void setup()
{
  size(300,300);
}
float x=200,y=150;//點跟線的位置初始值
float vx=0,vy=0;//速度
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, x,y);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(x,y, 13,13);
  if(!mousePressed)//放開按的滑鼠,線回彈
  {
    float dx=x-100 ,dy=y-150;
    float len=sqrt(dx*dx+dy*dy);//計算長度
    vx -= dx*(len-100)/len*0.001;//*0.001慢慢回彈
    vy -= dy*(len-100)/len*0.001;
    x+=vx;//來回彈跳,像彈簧
    y+=vy;
 
  }
}
void mouseDragged()//滑鼠按下去
{
  x=mouseX;//跟滑鼠移動
  y=mouseY;
}

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

void setup()
{
  size(300,300);
}
float x=200,y=150;//點跟線的位置初始值
float vx=0,vy=0;//速度
void draw()
{
  background(#002966);
  stroke(#b7efff);//線的顏色(圖案邊框填色)
  line(100,150, x,y);//畫線
  //(這行不能再13行noStroke之下,因為線的填色是用圖案邊框去填)

  fill(#b7efff);//點的顏色(圖案填色)
  noStroke();//不畫圓的邊框
  ellipse(100,150, 13,13);//畫點
  ellipse(x,y, 13,13);
  if(!mousePressed)//放開按的滑鼠,線回彈
  {
    float dx=x-100 ,dy=y-150;
    float len=sqrt(dx*dx+dy*dy);//計算長度
    vx -= dx*(len-100)/len*0.001;//*0.001慢慢回彈
    vy -= dy*(len-100)/len*0.001;//力量(拉越長,力量越強)
    x += vx;//來回彈跳,像彈簧
    y += vy;//速度
    //虎克定律
  }
}
void mouseDragged()//滑鼠按下去
{
  x=mouseX;//跟滑鼠移動
  y=mouseY;
  vx=0; vy=0;//拉動時不能有速度,不然第二次拉動會繞圈
}

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

void setup()
{
  size(400,300);
}
float x=200,y=150;
void draw()
{
  background(#002966);
  fill(255);//長方形顏色
  rect(x,y,80,20);//長方形
  float dx=x-mouseX, dy=y-mouseY;//滑鼠位置
  x -= dx*0.1;//跟著滑鼠移動(長方形比滑鼠慢)
  y -= dy*0.1;
}



Week17

可以跟著滑鼠移動

會彈回去

會比較平滑的彈回去

變成像彈簧一樣

可以忽快忽慢

用上面的程式來寫餵魚的程式

可憐的大三重修仔_week17

2020/6/18 Week17
(1)part1:C/C++
複習、回顧、作業、分數

老師先介紹很多遊戲(都在moodle上)

game1:彈簧
nostroke為"沒有邊框"

多了line那行,兩顆球球連成一條線

右邊的球球可以隨意拉

新增5行程式碼,可讓右邊球球回彈

牛頓定理(甚麼微積分的...)

程式碼:
void setup(){
  size(300,300);
}
float x=200,y=150;
float vx=0,vy=0;
void draw(){
   background(#002966);
   stroke(#b7efff);
   line(100,150,x,y);
 
   fill(#b7efff);
   noStroke();
   ellipse(100,150,13,13);
   ellipse(x,y,13,13);
   if(!mousePressed){
     float dx=x-100, dy=y-150;
     float len=sqrt(dx*dx+dy*dy);
     vx -= dx*(len-100)/len*0.001;
     vy -= dy*(len-100)/len*0.001;
     x += vx;//x -= dx*(len-100)/len*0.1;
     y += vy;//y -= dy*(len-100)/len*0.1;
   }
}
void mouseDragged(){
  x=mouseX; y=mouseY;
}

game2:魚魚

程式碼
void setup(){
  size(400,300);
}
float x=200,y=150;
void draw(){
  background(#002966);
  fill(255);
  rect(x,y,80,20);
 
  float dx=x-mouseX,dy=y-mouseY;
  float len=sqrt(dx*dx+dy*dy);
  x -= dx*0.1;
  y -= dy*0.1;
}

-----------------------------學期結束------------------------------