2022年11月7日 星期一

week10_新手上碌

 1.決定學期作品方向

畫線遊戲:材質(ex.水 )  蟲洞 改變重力方向  反彈 不能畫的區域

partner:晨馨

1-1.玩法:

    玩家用滑鼠畫出線條軌跡,使球可以到達目的地。途中會有星星、炸藥,觸碰星星可加分;碰觸炸藥會失敗。



1-2.預計目標:

  • 期中:  炸彈 得分機制(墨水量 星星) 問題:摩擦力 怎麼爬/不上去? 線沒有重力 介面優化(設計圖案、開始結束畫面)
  • 期末: 線有重力會掉下來、旋轉  球本身有彈力會反彈  改變重力 

設計關卡:各5關 

預期畫面:網格 淺色 可愛卡通 墨水條 restart鍵



可參考:彈蛋蛋炸彈(不能碰到的地方)
2.老師示範"如何畫線"

2-1.簡易畫線:
前一滑鼠的X位置  pmouseX
line(mouseX,mouseY,pmouseX,pmouseY);
不規則、很多小線段>>>問題:無法知道整數的XY座標
1.用陣列>>>要多大??
2.ArryList鏈結串列(自動變大)

2-2.鏈結串列:
ArrayList<PVector> points;    //PVector:向量(座標) 宣告:資料結構 名稱;
points=new ArrayList<PVector>();    //new 創建一個新物件points
points.add(  new PVector(mouseX,mouseY) );    //捕捉滑鼠XY座標放到points裡


for(int i=0; i<points.size() ; i++){        //在points的範圍裡
    PVector pt = points.get(i) ;        ///向量pt=第i個points(把每個座標秀出來)
    ellipse(pt.x, pt.y, 5,5);        /// 這樣就能捕捉每個整數座標並使用了!!
  }

避免重複的點占用資料空間:
if( mousePreesed && ( mouseX != pmouseX || mouseY!=pmouseY) )

儲存的是XY座標,但能利用座標畫線>>>>>>
PVector pt2=points.get(i+1);    ///抓第i+1個,因此範圍要-1
line(pt.x, pt.y, pt2.x, pt2.y);        //第i個和第i+1個,頭尾連線


2-3.移動:
用上下左右鍵移動線
pupMatrix();

//可以理解為:保存母體(紀錄每個點的相對位置)
translation(x,y);    //重新定義座標原點ex.(0,0) >> (x,y) >>(x+x,y+y)
//後再移動整體

popMatrix();
//恢復每個點的相對位置


2-4.轉動TRT:


沒有留言:

張貼留言