2019年9月19日 星期四

Week 02 葉政翰 打字機

1. 介紹以前學姐作的打字機卡片。


2. 使用P程式做出打字機卡片的感覺。




void setup() // 類似Unity Start()
{
  size(800, 300);
}

void draw() //類似 Unity Update(), 每秒跑一偵
{
  if (mousePressed)
    rect(mouseX, mouseY, 10, 20);
}

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

2. 印出圖片,類似打卡機(延伸)。



PImage img; 

void setup() // similar Unity Start()
{
  size(800, 300);
  img = loadImage("flower.png"); // laod image
}

void draw() //similar Unity Update(), one frame per second
{
  if (mousePressed)
    image(img, mouseX, mouseY, 25.6f, 25.6f); // draw image
}

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

3. 印出圖片,搭配打卡機(有固定位置,不重疊)。



PImage img; 
int mousePositionX, mousePositionY;

void setup() // similar Unity Start()
{
  size(800, 300);
  img = loadImage("flower.png"); // laod image
  fill(255,255,255);
}

void draw() //similar Unity Update(), one frame per second
{
  mousePositionX = mouseX /16*16; 
  mousePositionY = mouseY/30*30;
  if (mousePressed)
  {    
    //fill(0);
    image(img, mousePositionX, mousePositionY, 11, 25); // draw image
  }
}
------------------------------------------------------------------------------------------------------------------------

3. 印出圖片,搭配打卡機(有格子,右鍵塗,左鍵還原)。



PImage img; 
int mousePositionX, mousePositionY;

void setup() // similar Unity Start()
{
  size(800, 300);
  img = loadImage("flower.png"); // laod image
  for(int x=0; x<=800 ; x+=16)
    for(int y=0; y<=800 ; y+=30)
      rect(x,y, 16, 30);
}

void draw() //similar Unity Update(), one frame per second
{
  mousePositionX = mouseX /16*16; 
  mousePositionY = mouseY/30*30;
  mousePressed();
}

void mousePressed() 
{
  if (mouseButton == LEFT) 
  {
    image(img, mousePositionX, mousePositionY, 16, 30);
  } 
  else if (mouseButton == RIGHT) 
  {
    rect(mousePositionX, mousePositionY, 16, 30);
  }
}
--------------------------------------------------------------------------------------------------------------------------

4. 打卡機,增加背景(但是無法消掉(無法變透明))。



PImage img; 
int mousePositionX, mousePositionY;

void setup() // similar Unity Start()
{
  size(800, 300);
  img = loadImage("banner.jpg"); // laod image
  image(img, 0, 0, 800, 300);
  /*
  for(int x=0; x<=800 ; x+=16)
    for(int y=0; y<=800 ; y+=30)
      rect(x,y, 16, 30);
  */
}

void draw() //similar Unity Update(), one frame per second
{
  mousePositionX = mouseX /16*16; 
  mousePositionY = mouseY/30*30;
  mousePressed();
}

void mousePressed() 
{
  if (mouseButton == LEFT) 
  {
    //image(img, mousePositionX, mousePositionY, 11, 25);
    strokeWeight(0);
    rect(mousePositionX, mousePositionY, 11, 25);
    fill(0);
  } 
  else if (mouseButton == RIGHT) 
  {   
    strokeWeight(0);
    rect(mousePositionX, mousePositionY, 11, 25);
    fill(255,255,255, 0);
    
  }
}

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

5. 打卡機,增加背景(變透明)。




PImage img; 
int [][] table = new int[45][10];
int mousePositionX, mousePositionY;

void setup() // similar Unity Start()
{
  size(800, 300);
  img = loadImage("banner.jpg"); // laod image
  //image(img, 0, 0, 800, 300);
  /*
  for(int x=0; x<=800 ; x+=16)
    for(int y=0; y<=800 ; y+=30)
      rect(x,y, 16, 30);
  */
}

void draw() //similar Unity Update(), one frame per second
{
  image(img, 0, 0, 800, 300);
  mousePositionX = mouseX /16; 
  mousePositionY = mouseY/30;
  mousePressed();
  for(int i=0;i<45;i++)
  {
    for(int j=0;j<10;j++)
    {
      fill(0);
      if(table[i][j] ==1) rect(i*16, j*30, 16, 30);
    }
  }
}

void mousePressed() 
{
  if (mouseButton == LEFT) 
  {
    //image(img, mousePositionX, mousePositionY, 11, 25);
    mousePositionX = mouseX /16; 
    mousePositionY = mouseY/30;
    table[mousePositionX][mousePositionY] =1;
  } 
  else if (mouseButton == RIGHT) 
  {   
    table[mousePositionX][mousePositionY] =0;    
  }
}



沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...