PiPi

雖然還不是很完全(目前只能專屬我的手機大小),不過可以當個小遊戲來玩!

在設計初期,一開始是去下載一張迷宮圖,很天真地貼上Image,然後在走的時候就發現穿牆啦!,由於是圖片,我沒辦法知道裡面的資訊,於是只好自己動手畫迷宮!

剛好可以整合很多功能:

cornerRadius

在設定角色在這邊剛好選擇圓形來使用,要注意的是如果是用程式寫出來的話必須要多一個.clipaToBounds這個東西啊!

UIBezierPath

迷宮線條就使用這功能來完成,在繪畫時會發現線跟線的距離必須搭配角色圓點,在這邊圓點直徑20,距離邊線10,所以在光畫線就多了幾根白髮😩

如果要讓Layer能消失,這邊變數必須設在func外面

在畫完線時,還是會遇到穿牆問題,於是這時就要來設定限制區,這邊才是整個程式最繁瑣的地方,抓緊原則,當左右移動時,就是設定上下的限制區,反之亦然,設定完成後又多了一撮白髮!

CAGradientLayer

為了讓背景美觀點,在這邊使用漸層背景,跟美術扯不上邊的我已經盡量讓螢幕美觀點了…

randomElement

為了讓這迷宮更活潑一點,想到讓出口是隨機的方法(如果出口都固定一下就膩了),這樣可以讓三個人一起玩這遊戲來猜誰的路線是對的,當然隨機程式只會在遊戲剛開始與走到對的出口後的Reset才會觸發,讓下一輪遊戲又有新的出口,如果走到錯的出口,對的出口並不會再隨機!

exit為三個出口的y座標,由於出口都在右邊,所以x座標是定值

在這邊是將出口的array先做亂數,從三個數中隨機取出,將之丟至空array(empty)的第一個位置(因為使用append,所以會依序往後面放),然後將含有放入亂數值的array與原本的array做比較,將其餘的值放入第二與第三個位置,這樣我只要將empty的第一個位置指定為對的出口,那對的出口就會是隨機值,其餘兩個都是錯的出口!

由於出口在右邊,所以只需要把這判斷式寫在往右Button的IBAction裡就好

removeFromSuperlayer

當走到出口時,將迷宮關掉,由於UIBezierPath是增加layer的方式,所以要選跟移除layer有關的,

在上面有提到,startLayer這變數要設在UIBezierPath這個func外面,一開始放在裡面,想說為什麼一直清不掉,經過Peter boy指點,放在裡面會一直是產生新的layer,所以舊的會一直在,只會清掉新的,所以要放在外面才會有舊的值!

animate

此功能會淡入淡出功能,這個我自己上網找的功能,之後好像會教到,再深入研究

Duration為設定時間

在最後為了讓我驗證與使用上方便,所以將對的出口答案放在左下角,可以直接知道對的出口在哪,哈

之後可以在朝著可以設定角色方面與其他功能來精進這個迷宮,如果時間夠多可以有多種不同難度可以選擇,這樣遊戲就更趨近完整!

--

--

睽違已久再次蹦出作業,這次挑戰除了IBOutlet、IBAction外,其餘都用程式來完成!

這次的StoryBoard畫面只有這樣,主要是用來排版的,本來圖像顯示想使用新增與移除來完成,但發現疊圖會有先後問題,導致頭跟臉會有順序問題作罷,只能用isHidden來完成!

--

--

在時間有限的情況下,發現平常就在使用的Line已包含多種功能!

雖然目前只做一頁,也花了我不少時間排版,為了只達到功能,就先把連結都連至同一個view,有些功能也必須加入程式才能達成(ex:將button與navigation controller連結),不過也差不多87分像了!

比較特別的是Container View,底層使用View Controller,再加上Container View,將Table View Controller加進來,使之達到上面不動,下面可以上下滑動,也在Cell裡加進Scroll View來達成左右滑動!

--

--

在還沒學到邊界設定時,使用scroll view加入paging enabled後遇到滑動後的畫面跑掉,不是原先希望的位置(原先以為每張畫面都會在正中央),思考過後覺得它怎麼認定你隨意放的圖會在哪個位置??

正當我在懷疑時,我的某位大師朋友(Peter boy)提點迷津,直接使用暴力解法!

--

--

身為一位電子(硬體)工程師,在前公司做太陽能逆變器,現任公司做工業用風扇馬達驅動器,操作電壓都是380~480的市電,想當然爾最常遇到就是被電到啦~炸機啦~!$%@$^%

Photo by Michael Dziedzic on Unsplash

每天都在看著密密麻麻的電路,將之實現出來的電路板繪製也是一大重點,如何走線可以有效降低雜訊,空間排列組合技巧也必須融入在此,於是第二能力“電路板繪製”也隨之誕生。

--

--