每乙個場景都不是單獨存在的。玩家可以從乙個場景中切換到另外乙個場景中。本小節,我們來講解場景切換。在每乙個遊戲中都會使用到場景與場景的切換功能,例如,在街機原始人遊戲中,選擇關卡這一場景中,可以看到有4關,這四關分別代表了4個場景,如圖2.20所示。
圖2.20 街機原始的關卡選擇
當玩家選擇第一關時,就會由選擇關卡的場景跳轉到第一關的場景中,如圖2.21所示。
圖2.21 第一關的場景
當玩家選擇第二關時,就會由選擇關卡的場景跳轉到到第二關的場景中,如圖2.22所示。
圖2.22 第二關的場景
此時,它們就使用了到了場景與場景的切換功能,即當玩家輕拍相應的場景後,就會進入到到所選場景中。
單純的場景切換就是指,在場景與場景進行切換時是沒有任何過渡效果出現的。切換時需要使用到presentscene(_ scene: skscene?)方法。
【示例2-7】以下將以專案2-1為基礎,實現在輕拍螢幕後,場景gamescene切換至newgamescene的功能,具有操作步驟如下:
(1)開啟gameviewcontroller.swift檔案,在viewdidload()方法中的編寫**,實現在執行程式後,第乙個顯示的場景是gamescene,**如下:
(2)開啟gamescene.swift檔案,刪除touchesbegan(touches: nsset, withevent event: uievent)中的**,在其中編寫**,實現觸控螢幕顯示newgamescene場景的功能,**如下:
此時執行程式,會看到如圖2.23所示的效果。
圖2.23 執行效果
使用單純的場景切換會使遊戲看起來十分生硬。所以遊戲開發者為了解決這一不足之處,在切換過程中為遊戲新增了過渡效果,使場景與場景切換更加舒適。這些過渡效果包括淡入淡出、水平關閉等,如表2-3所示。
表2-3 過渡動畫
如果想要讓乙個場景在切換至另乙個場景時可以使用到這些過渡動畫,需要使用到presentscene(_ scene:skscene?, transition transition: sktransition?)方法,其語法形式如下:
其中,_ scene表示新的場景,transition表示所使用的過渡動畫效果。
【示例2-8】以下將在示例2-7的基礎上實現在場景與場景切換時,加入乙個舊場景從中間向兩邊開啟,新場景從後方向螢幕靠近的過渡動畫。具體的的操作步驟如下:
開啟gamescene.swift檔案,刪除touchesbegan(touches: nsset, withevent event: uievent)中的**,在其中編寫**,實現觸控螢幕顯示newgamescene場景的功能,**如下:
此時執行程式,會看到如圖2.24所示的效果。
圖2.24 執行效果
過渡動畫除了可以使用在圖2.24中所看到的外,還可以使用其他的效果,如以下的**就使用了fliphorizontalwithduration的過渡動畫,即以水平中軸線垂直翻轉的過渡動畫,**如下:
此時執行程式,會看到如圖2.25所示的效果。
圖2.25 執行效果
OpenGL教程之著色
jeff molofee nehe 的opengl 教程 著色 原 文 lesson 3 colors 譯 者 cker 上一課中我教給您三角形和四邊形的繪製方法。這一課我將教您給三角形和四邊形新增2種不同型別的著色方法。使用單調著色 flat coloring 給四邊形塗上固定的一種顏色。使用平滑...
NumPy教程之(四)
numpy針對陣列 array 的基本數學操作函式一般是逐元素進行的,比如矩陣的加減運算,線性代數上的矩陣運算則有專門的函式,如dot函式等,具體看示例。陣列的有些數 算,如 和 施行的是原位運算,即直接修改覆蓋原來的變數,而不是新建乙個變數,如下所示 當遇到型別不同的陣列進行運算的時候,numpy...
nginx 教程之安裝
docker 安裝映象 docker pull nginx docker 檢視映象 docker images docker 啟動nginx容器 docker run id p 80 80 nginx docker run it p 80 80 nginx docker 檢視啟動容器 docker ...