2012年10月30日 星期二

week08,work08


因為我們先前的太鼓達人太難了,所以我們上網找別的益智遊戲,所以我們改變主題了

遇到的問題就是~~不會上網直接google答案就會跑出來慢慢試




心得
        就是還是很難不過差不多都上網google

Week08,HW08

1. 期中作品報告:

1.1. 之前完成的部分:

  之前已完成遊戲背景底色與其他區域的配色,以及所有的固定文字及

數字的擺設,還有將洛克人去背剩人物本身,有向左、向右跑動以及向左

跳和向又跳的動作圖示。

1.2. 今天計畫的部分:

  今天計劃的部分是將洛克人能成功在限定的範圍內左右跑動,以及向

左和向右的方向正確,在來就是能使遊戲中途暫停及再度開始,

1.3. 可能會遇到的問題,及可能的解決方法

  之後可能遇到的問題是,當人物漸漸向上移動時,上方的長方形也會

慢慢出現,但要如何讓洛克人成功的站在每條方塊上,以及移動和跳動。

2. 目前期中作品的進度圖





week08,hw08

1. 請寫下以下資料:
1.1. 你之前完成了什麼?
之前完成了
1.時間計時的功能
2.炸彈設置個數功能
3.版面大致格式與計畫

1.2. 你今天計畫要做什麼?
1.版面美化
2.成功與失敗提示語
3.簡單可以跑的只有1個炸彈
4.重新restart功能鍵(R)
5.假設炸彈設定


1.3. 可能會遇到的問題... (及可能的解決方法)
1.炸彈隨機的問題
利用具有random的函示來解決

2.提示周圍炸彈個數
已有借書,想透過書上的既定程式語法
將其函式轉換到processing可以應用 加油!

3.音樂放置仍有疑問
下次前一定要突破


2. 請把你目前期中作品的進度貼出來
 
 

目前完成進度
1.版面美化完成
2.預設炸彈完成
3.可放置炸彈
4.RESTART鍵功能OK
5.輸跟贏 視窗顯示語 OK
6.計時功能更新 OK

心得
今天做了不少功能,踩地雷大致也有個樣子了
不過還有幾個功能需要突破,希望挑戰可以一一迎刃而解,加油!





Week08, HW08,

1. 請寫下以下資料:
1.1. 你之前完成了什麼?
     素材 :
     覺得之前的背景圖貼來貼去很不好看,所以換了一張背景圖,我們遊戲名稱也出來了
 a. 第一個場景圖  

b.第二個場景圖

c.主角貓



1.2. 你今天計畫要做什麼?
       看下play鍵可以跳到另一個遊戲畫面
        做出繩子,偵測是否有碰到繩子
1.3. 可能會遇到的問題... (及可能的解決方法)
     
2. 請把你目前期中作品的進度貼出來
 
 
 
PImage bk,cat,cat1;
int now=1,x=0,y=0;
int jumpH=0; //跳的高度
int mx=500,my=500;
void setup(){
  size(1200,800);  //視窗大小
  bk=loadImage("bk.jpg"); //背景圖
  cat=loadImage("bk2.png");  //背景2
  cat1=loadImage("cat.png");  //跳跳人
  fill(237,28,36); //紅
  rect(0,0,328,123);
}
void show1(){
  image(cat,0,0);
}
void show2(){
  image(bk,0,0);
}
void draw(){
  if(now==1){
    show1();
    if(mouseX>780 && mouseX<1115 && mouseY>250  && mouseY<379 && mousePressed){
    now=2;
    }
  }
  if(now==2){
    show2();
 
if(jumpH>0){
       jumpH=jumpH-10;
       my-=10;
     }
     if(my<500){
       my+=5;
     }
    image(cat1,mouseX,my,138,235); //讓跳跳人跟著滑鼠X移動
  }
}
void mouseClicked() //按下滑鼠左鍵
{
    jumpH=200 - (500-my); //就跳起
 }
 



week02,hw02

1.
size(600,600);
for(int i=0;i<50;i++)
{
fill(random(255),random(255),random(255));
rect(random(500),random(255),random(500),random(255));
}
2.
size(500,500);
for(int i=0;i<50;i++)

    for(int k=0;k<50;k++)
    {   
        fill(i*220/20,k*200/20,i*200/16);
        rect(i*10,k*10,  50,30);
    }
}

3.
size(500,500);
for(int i=0;i<5;i++){
  for(int k=0;k<5;k++){
    fill(i*255/2,k*255/3,50);
    ellipse(i*100+50,k*100+50,  100,100);
    fill(255,255,255);
    ellipse(i*100+50,k*100+50,  80,50);
    fill(0,0,0);
    ellipse(i*100+50,k*100+50,  20,50);
  }
}

4.
因為第三週才加入課程,花了一些時間理解前兩個作業,抱歉太晚補交作業了。
原來迴圈可以這樣玩,真的是像萬花筒一樣,在完成程式碼之後總是期待執行的那一刻會出現怎樣的圖: )

week8 hw8

未完成 : 計分、背景音樂、跳繩加快、有其他貓會加入玩、選擇角色
有想過要不要把"有其他貓會加入玩" 改成 吃"天空掉下來的魚會加分吃到垃圾會扣分沒吃到魚也會扣分" 

//*****變數宣告*****
PImage s2,cat1,s1,s3;//圖片空間 
float y = 450;//跳繩y變數
int now=1;//改變場景要用到的變數
int jumpH=0; //喵跳的高度
int mx=400,my=400;//喵的位子
boolean stop = false; //遊戲暫停會用到
int score =0; //計算得分會弄到
//*****設定*****
void setup() {
  size(900, 600);//視窗大小
  s2=loadImage("bk.jpg");//場景2 
  s1=loadImage("bk2.png");  //場景1
  s3=loadImage("s3.jpg"); //場景3
  cat1=loadImage("cat.png");  //跳跳人
  float yrope = 100;
  fill(237,28,36); //紅
  rect(0,0,328,123);
  
}
//*****開始畫****  
void draw() {
  image(s2,0,0);
  if (stop == false) { 
  l();
  jump(); 
  }
  //按Enter鍵休息
  if (keyPressed) {
  stop = true;
  fill(0);
  textSize(150);
  text("STOP", 250, 300);
  }else stop = false;
  if(mouseX>622 && mouseX<895 && mouseY>96  && mouseY<130 && mousePressed){
  now=3;
  }
}
//*****跳跳繩的繩******
void l(){
  fill(255,0,128);
  y= y + 1.5;  //若想讓跳繩越跳越快,可以從這裡改,把1.5改成變數
  if (y > 600)  y = 350;
  strokeWeight(10);
  fill(255,0,128);
  line(0,y,width,y);
}
//*****跳和場景變換*****
void jump(){
  if(now==1){
    show1();
  if(mouseX>593 && mouseX<836 && mouseY>188  && mouseY<273 && mousePressed){
    now=2;
    }
  }
  if(now==2){
    show2();
    if(jumpH>0){
      jumpH=jumpH-10; 
      my-=10;
     }
    if(my<400){
      my+=5;
     }
    image(cat1,mouseX,my,138,235); //讓跳跳人跟著滑鼠X移動
  }
  if(now==3){
  show3();
  }
}
void show1(){
  image(s1,0,0);
}
void show2(){
  //有手指指標
  if (mousePressed == true) {
    noCursor();
  } else {
    cursor(HAND);
  }
}
void show3(){
  image(s3,0,0);
  fill(0);
  textSize(50);
  text("cheer up !", 300, 200);
  textSize(150);
  text(score, 360, 350);
}
//*****當按下滑鼠左鍵******

void mouseClicked()
{
    jumpH=100 - (200-my); //就跳起
}


場景1

場景2
場景3

角色1

角色2

week01,hw01

1.http://www.youtube.com/watch?v=TAVbWKGUDiU
2size(772, 443);  //視窗大小
background(210); //背景
fill(0,0,0); //耳朵(外)
ellipse(200, 221,120, 120); //(x,y,寬,高)
fill(255,255,255); //耳朵(內)
ellipse(200, 221, 90, 90); //(x,y,寬,高)
fill(0,0,0); //耳朵(外)
ellipse(397, 221,120, 120);
fill(255,255,255); //耳朵(內)
ellipse(397, 221, 90, 90);
fill(0,0,0); //臉(外)
ellipse(300, 300,190, 190);
fill(255,255,255); //臉(內)
ellipse(300, 300, 165, 165);
fill(0,0,0); //黑色眼睛
ellipse(267, 273, 20, 30); //(x,y,寬,高)
fill(0,0,0); //黑色眼睛
ellipse(333, 273, 20, 30); //(x,y,寬,高)
noStroke();
//stroke(10);
fill(255,0,0); //嘴巴紅色部分
ellipse(300, 320,80, 80);
fill(255,255,255); //嘴巴白色部分
ellipse(300,310,80,62);
fill(0,0,0); //鼻子
ellipse(300,310,25,18);


Week08,Hw08

1.1加上手指可以戳泡泡及會游動的魚
1.2加上背景音樂及戳到泡泡時的音效
1.3如何讓泡泡一直不停出現...用回圈寫寫看能不能讓泡泡一直出現

2.1
int popox=0,popoy=0;
int fishx=0,fishy=0;

PImage popo;
PImage finger;
PImage bobo;
PImage back;
PImage fish;
void setup()
{
  size(800,600);
  fish=loadImage("fish.png");
  bobo=loadImage("bobo.png");
  finger=loadImage("finger.png");
  popo=loadImage("popo.png");
  back=loadImage("back.jpeg");
}

void draw()
{
// background(255,255,255);

  
 image(back,0,0);
  image(bobo,250,100);
  popoy-=0.05;
  image(popo,popox+300,popoy+600,100,100);
  popoy-=0.05;
  image(popo,popox+200,popoy+500,100,100);
   popoy-=0.05;
  image(popo,popox+100,popoy+700,100,100);
  popoy-=0.05;
  image(popo,popox+500,popoy+600,100,100);
  
    popoy-=0.05;
  image(popo,popox+300,popoy+1500,100,100);
  popoy-=0.05;
  image(popo,popox+200,popoy+1400,100,100);
   popoy-=0.05;
  image(popo,popox+100,popoy+1300,100,100);
  popoy-=0.05;
  image(popo,popox+500,popoy+1200,100,100);
  
    popoy-=0.05;
  image(popo,popox+300,popoy+1600,100,100);
  popoy-=0.05;
  image(popo,popox+200,popoy+1500,100,100);
   popoy-=0.05;
  image(popo,popox+100,popoy+1700,100,100);
  popoy-=0.05;
  image(popo,popox+500,popoy+1600,100,100);
  
  popoy--;
  image(popo,popox+300,popoy+800,100,100);
  popoy--;
  image(popo,popox+200,popoy+1000,100,100);
   popoy--;
  image(popo,popox+100,popoy+700,100,100);
  popoy--;
  image(popo,popox+500,popoy+1200,100,100);
  
      popoy-=0.05;
  image(popo,popox+300,popoy+2200,100,100);
  popoy-=0.05;
  image(popo,popox+200,popoy+1900,100,100);
   popoy-=0.05;
  image(popo,popox+100,popoy+2000,100,100);
  popoy-=0.05;
  image(popo,popox+500,popoy+1000,100,100);
  
      popoy-=0.05;
  image(popo,popox+400,popoy+2000,100,100);
  popoy-=0.05;
  image(popo,popox+600,popoy+2300,100,100);
   popoy-=0.05;
  image(popo,popox+500,popoy+2400,100,100);
  popoy-=0.05;
  image(popo,popox+500,popoy+2600,100,100);
  
        popoy-=0.05;
  image(popo,popox+100,popoy+2000,100,100);
  popoy-=0.05;
  image(popo,popox+300,popoy+2300,100,100);
   popoy-=0.05;
  image(popo,popox+200,popoy+2400,100,100);
  popoy-=0.05;
  image(popo,popox+100,popoy+2600,100,100);
  
  image(finger,mouseX-30,mouseY-30,60,60);
  
  fishx++;
  image(fish,fishx,fishy+200);
  
}

2.2

Week08, HW08

(1) 之前完成的進度

a. 調整俄羅斯方塊介面設計
b. 用鍵盤控制方向 ( ↑、↓、←、→ )


(2) 第 8 周預期完成進度

a. 每個方塊的旋轉狀態用陣列去宣告
b. 方塊在二維陣列中怎麼和背景貼齊
c. 預計用的背景圖


 










(3) 遇到的問題及可能的解決方法

  a 問題:
           在方塊創立時已經使用二維陣列宣告,
           也把1、0放進去 if 做判斷,
           但是方塊沒有依照1的位置正確填色
           譬如說我的二維陣列是

                      int nts[][]={{0,0,1,0},
                                       {0,1,1,0},
                                       {0,1,0,0},
                                       {0,0,0,0}};


                     for(int a=0;a<4;a++){
                       for(int b=0;b<4;b++)
                      if(nts[a][b]==1){
                      fill(91,0,183);
                      rect(a,b,20,20);

          在呼叫進draw時,只出現一個 rect ,
          正常應該是要由四個 rect 拼成一個 N型的方塊類型。

發現並解決: 
          在 rect 的座標軸要加一個位置值,他就出現 N 型方塊種類
           rect(a*20+320,b*20,20,20);



    b.問題:
             七個俄羅斯的方塊種類 已經設定完畢
              在map (陣列地圖) 的初始值也設定ok

              可是我在draw中隨機呼叫俄羅斯的種類時遇到了問題

              隨機呼叫就是 任意種類的俄羅斯方塊被我呼叫進map中
              利用swich的方式,雖然把所有方塊類型都有亂數跑出來
              但是亂數停不了,所有的方塊在map中都是一閃一閃的

          k=round(random(0)); 
          println(k);

          if(k>=0){
          switch(k){
          case 0:
          translate(110,0+(s/500)*20);
          Lt(270,0,20,20);
          break;
          case 1:
          It(270,0,20,20);
          break;
          case 2:
          Wt(270,0,20,20);
           break;
           case 3:
           Nt(270,0,20,20);
           break;
           }}
          

發現並解決:
             目前還沒有找到方法可以解決這個問題
  


(4)心得:

           在這幾週試著去處理俄羅斯方塊遇到的問題
       發現其實俄羅斯方塊還需要解決的問題還很多
       但是希望我們未來遇到的問題能順利的解決
       在這上面得到成就感



Week08, HW08

作業8-1.1:之前完成了甚麼?
    已解決了分數無法顯示的問題
    雞蛋上拋的效果(仍有小問題)

作業8-1.2:今天計畫要做甚麼?
     1.籃子移動的效果,隨機的速度和起始位置
     2.完全解決雞蛋上拋的問題
     3.判斷雞蛋是否正確落到籃子上
     4.分數增加的動作
     5.雞蛋落下使生命減少

作業8-1.3:可能會遇到的問題
     (1)籃子移動的運算式
     (2)問題2:雞蛋位置的判斷

作業8-2:今日進度:

week7 HW7


import processing.video.*;
Capture video;
void setup(){
size(640,480,P2D);
video = new Capture(this, width, height);
video.start();
loadPixels();
}
void draw(){
if(video.available()){
video.read();
video.loadPixels();
for(int i=0;i<640*480;i++){
pixels[i]=video.pixels[i];
}
updatePixels();
}
}
最短視訊碼

HW08, Week08, 葉正聖老師示範

1. 請寫下以下資料:
1.1. 你之前完成了什麼?
1.2. 你今天計畫要做什麼?
1.3. 可能會遇到的問題... (及可能的解決方法)

2. 請把你目前期中作品的進度貼出來


示範時間 : 老師示範一些期中作品,如果是老師,會怎麼實作。

Week07,HW07

Week07,Hw07

(1) 期中作品進度


a. 調整俄羅斯方塊介面設計
b. 用鍵盤控制方向 ( ↑、↓、←、→ )
c. 方塊旋轉


◎ 第 7 周進度程式碼

a. 俄羅斯介面設計調整

PImage cube;
float angle=0.01;
int mx=300,my=100,rs=300;
void setup(){
    size(500,500);
    cube = loadImage("200.png");
   // background(255,255,255);
  for(int i=0;i<12;i++){    //行個數
  for(int k=0;k<20;k++){  //列個數
    fill(41,205,136,80);
    rect(i*25,k*25,25,25);
  }
}
}
void draw(){
    //background(255,255,255);
    translate(mx-18,my-35);
    rotate(angle);
    translate(-mx-35,-my-18);
    scale(1.2);
    image(cube,mx,my);
}
void keyPressed(){
  if(key==CODED && keyCode==LEFT){
    mx-=20;
    if(mx<0)mx=0;
  }
  if(key==CODED && keyCode==RIGHT){
    mx+=20;
    if(mx>445)mx=445;
  }
  if(key==CODED && keyCode==DOWN){
    my+=20;
    if(my>460)my=460;
  }
   if(key==' '){
   angle++;
  }
 
}




















b. 用鍵盤控制方向 ( ↑、↓、←、→ )

PImage cube;
float angle=0.01;
int mx=300,my=100,rs=300;
void setup(){
    size(500,500);
    cube = loadImage("200.png");
    background(255,255,255);
}
void draw(){
    background(255,255,255);
    translate(mx-18,my-35);
    rotate(angle);
    translate(-mx-35,-my-18);
    image(cube,mx,my);
}
void keyPressed(){
  if(key==CODED && keyCode==LEFT){
    mx-=20;
    if(mx<0)mx=0;
  }
  if(key==CODED && keyCode==RIGHT){
    mx+=20;
    if(mx&rt;445)mx=445;
  }
  if(key==CODED && keyCode==DOWN){
    my+=20;
    if(my&rt;460)my=460;
  }
   if(key==' '){
   angle++;
  }
}





















目前遇到的問題
a. 旋轉無法轉到正確位置
b. 方塊如何與格子做對應

(2) 視訊

視訊程式碼

import processing.video.*;
Capture video;
void setup(){
size(640,480,P2D);
video = new Capture(this, width, height);
video.start();
loadPixels();
}
void draw(){
if(video.available()){
video.read();
video.loadPixels();
for(int i=0;i<640*480;i++){
pixels[i]=video.pixels[i]; 
}
updatePixels();
scale(0.5);
PImage kitty;
kitty = loadImage("132.jpg");
image(kitty, 750,20);

scale(0.8);
PImage kitty2;
kitty2 = loadImage("122.jpg");
image(kitty2, 20,50);
}
}


視訊截圖


黃慶華、詹中豪、王靚暄、蕭靖芸 ya 



























2012年10月29日 星期一

week7 視訊

//小葉老師最短的視訊
import processing.video.*;
Capture video;
void setup(){
  size(640,480,P2D);
  video = new Capture(this, width, height);
  video.start();
  loadPixels();
}
void draw(){
  if(video.available()){
    video.read();
    video.loadPixels();
    for(int i=0;i<640*480;i++){
      pixels[i]=video.pixels[i];      
    }
    updatePixels();
  }




我們可愛的組員及頭上長花反串同學 XD


臉臭臭的組員在認真上課中