#01 Swift 繪圖_看到球球的木兔貓頭鷹

(1) 成果展示

  1. 平常的木兔貓頭鷹 & 振奮狀態的木兔貓頭鷹

2. 色違木兔貓頭鷹 (1)雪地貓頭鷹版 (2) 紅眼紅喙貓頭鷹版

(2) GitHub 連結

(3) 作品說明

作為一個合格的排球迷以及動畫宅,排球少年這部動畫絕對是必看的。木兔光太郎是排球少年中的一個個性鮮明的角色,雖然他並不是主角群,但因為自己的號碼以及專位跟他一模一樣,我特別的喜歡這個角色。木兔所在的學校稱為梟谷,他也因此有了這個動物形象。在本次作業中,利用SwiftUI繪製出這個貓頭鷹形象,也加了幾個有趣的小變化。

參考圖片如下:

reference image

(4)作業要求

  • 利用 SwiftUI 的 Path 繪製可愛圖案, logo 或 emoji。

如成果展示中所展示

  • 遵從 protocol Shape,定義可重覆使用修改的形狀。

本次作業中一共定義了7個Shape,包含OwlBody, TummyFur, FaceFur, Eyebrow, Beak, Feather, Star。這些形狀的定義皆位於OwlBodyParts.swift檔案中。以Eyebrow和Beak為例,程式碼如下圖所示:

其中Star為透過rect參數動態產生的形狀,程式碼如下:

  • 使用到 Extract Subview,至少定義 2 個遵從 protocol View 的型別。

本次作業所定義的View有OwlOutlineView, OwlView, EyebrowView, NormalEyeView, StarryEyeView等五個View。以EyebrowView和StarryEyeView為例,程式碼如下:

  • 加上背景圖片和文字。

文字含義為木兔光太郎的口頭禪。使用的背景圖片源自於下方連結:

https://wallpaperaccess.com/haikyuu-laptop

參考背景圖片如下:

實作程式碼如下圖所示:

  • 用程式畫出兩種不同的圖片,比方紅色 & 綠色衣服的小新。

實作結果如成果展示。

(5) 加分功能

  • 利用 LibraryContentProvider 將自訂的 view 或 shape 加到 View Library,在文章裡附上 library 畫面截圖。

將自訂shape及view加入Library,實作程式碼如下圖:

LibraryContentProvider

實作結果如下:

  • 使用StrokeStyle

利用StrokeStyle改變貓頭鷹外框線格式,透過OwlView的outlineStyle參數可以改變格式。

實作結果如下:

--

--