【十分鐘】學會微信小游戲,攀登不止小游戲制作(IVX 快速開發教程十一)

十一、攀登不止小游戲制作

制作微信小游戲大致流程與微信小程序、Web類似,不同的在于是組件的使用。我們此節需要完成的小游戲需求為:

  • 小球觸碰矩形塊會跳躍或攀爬
  • 小球觸碰頂部或底部游戲結束
  • 點擊屏幕將會使小球朝著該方向移動
  • 小球進行跳躍時分數會增加
  • 矩形塊在游戲運行過程中自動下沉
  • 游戲結束停止游戲出現按鈕可以重新開始游戲

教程目錄

一、iVX簡介
二、基礎
三、界面介紹
四、WebApp 基礎可視組件
五、Web App 基礎可視組件屬性
六、WebApp 二手信息站點頁面制作
七、功能性組件與事件邏輯
八、后臺與數據庫
九、二手信息站點后臺完成
十、小程序實戰

游戲效果如下:

文章目錄

  • 十一、攀登不止小游戲制作
    • 教程目錄
      • 11.1 完成矩形塊自動下沉
      • 11.2 完成小球在矩形塊上跳躍
      • 11.3 完成小球的移動
      • 11.4 完成矩形重復生成
      • 11.4 完成分數計數
      • 11.5 設置隨機不可跳躍矩形
      • 11.6 設置觸碰底部游戲結束

11.1 完成矩形塊自動下沉

首先我們創建一個微信 2D小游戲:

創建完畢后,我們點擊矩形組件在小游戲中創建一個矩形:

創建完矩形后,點擊對象樹中的矩形對象,更改寬高屬性為 16,使其更美觀:

更改完后由于我們需要矩形塊自動下沉,使用物理世界讓矩形塊擁有物理屬性;擁有物理屬性的矩形塊將會將會受到重力的影響進行下沉。在前臺中添加物理世界,并且將矩形塊添加到物理世界中:


需要使矩形塊擁有物理屬性還需要重要的一步,點擊矩形1組件,在左側的組件欄中點擊物體組件進行添加:

添加完物體組件后,點擊物體組件物體1,在屬性中更改阻尼值,更改阻尼值可以使該物體的阻力發生改變,使其下沉變快或者變慢;在這里我們將阻尼值設置為 1,使其在進行下沉時速度放緩:

更改完后,在游戲運行中該矩形塊將會與小球發生碰撞,我們此時應該更改矩形塊的質量為 99,使其難以被小球的碰撞發生移動:

除了質量外,我們還需固定旋轉角度,使其禁止發生旋轉偏移:

最后改變該矩形塊的顏色為紅色:

此時點擊預覽,該紅色矩形塊將會緩慢進行下沉:

11.2 完成小球在矩形塊上跳躍

點擊橢圓組件,在矩形塊上添加一個小球設置小球的寬高為16,并且添加物體組件:


添加完成后我們還需要為橢圓1其改變質量,使其對矩形組件的影響最小:


此時我們在前臺創建兩個數值變量,一個為記錄小球碰撞的組件標志命名為觸碰組件,另一個為排除組件,排除組件用于排除不跳躍的矩形塊,為接下來的制作做準備:


接下來我們為矩形添加一個事件,該事件用作判斷橢圓1組件觸碰到的矩形類別。設置事件為觸碰觸發,觸發后為矩形邊路進行賦值:


在此我們將該矩形的背景色更改為紅色,在此我們規定:紅色矩形塊的目標值為1、橙色矩形塊的目標值為2、藍色矩形塊的目標值為3、綠色矩形塊的目標值為4。

設置之后我們在物理世界中創建一個觸發器,用觸發器定時響應跳躍內容:


接下來我們點擊觸發器,使其能夠進行自動播放:


對該觸發器設置一個事件,事件觸發后開始判斷當前觸碰的物體值是不是排除外的目標,如果不是給該橢圓組件下的物體組件添加一個垂直的速度,該速度為負數,設置為負數將會使該物體有一個向上的力,此時即可完成小球跳躍效果:

但是預覽小游戲后,我們發現該小球一直都會超頂部跳躍:

這是因為我們設置了碰撞值在跳躍后并沒有進行置零,并且還需要為其增加一個條件,判斷觸碰矩形變量值不能為 0,這樣就完成了小球跳躍后只執行一次向上的作用力:

完成該部分后我們復制 3 個矩形塊1,設置為橙、藍、綠的背景色:

此時我們重命名矩形塊的名稱,讓其有辨識度:

接下來在對應矩形的事件中,將對觸碰矩形變量賦值的動作值按照橙色矩形塊的目標值為2、藍色矩形塊的目標值為3、綠色矩形塊的目標值為4 的規則進行修改,在此以橙色矩形塊的事件為例:


接著我們手動更改排除組件變量的值為 2:

此時小球若碰到 2 代表的橙色矩形塊將不會進行跳躍。

11.3 完成小球的移動

此時我們需要將小球移動到黃色矩形塊上演示黃色矩形塊不進行跳動。在此我們在前臺添加事件,當鼠標或手指按下某個位置時使小球朝著該方向平移。我們先創建一個變量命名為按下x,該變量用于記錄按下的 x 坐標:


之后在事件中為其賦值:


完成后,我們判斷按下的位置在小球的左側還是右側,若在左側小球則往左側移動,若在右側小球則往右側移動。判斷按下未知是否在小球左側還是右側只需要使用小球 x 坐標減去按下位置的 x 值,結果為負數則表示按下在右側,若按下位置的值為正數則表示按下的位置在小球的左側,之后在設置一個數值變量命名為方向,值 1 表示往左側移動,值 2 表示往右側進行移動:


接下來在觸發器中進行判斷,方向為 1 則橢圓 x 坐標減少值,方向為 2 則橢圓 x 坐標增加值:

此時即可完成小球移動:

11.4 完成矩形重復生成

此時這些矩形會一直下降,接下來我們需要矩形到達底部后自動在頂部進行創建。在底部創建一個矩形,命名為底部,添加物體組件固定其位置:

接下來為所有跳躍矩形設置一個碰撞事件,當矩形到達底部后自動調整 y 值位置,在此設置 y 值為 36,在此以紅色矩形為例:

現在我們可以創建多個矩形,完成界面的編排。復制多個矩形,使用鼠標移動到對應的位置:

隨后即可完成矩形自動創建:

最后創建一個變量名為隨機 x ,使每次矩形復位后重新生成 x 位置值游戲將更多趣味性:

11.4 完成分數計數

接下來我們添加分數記錄需要創建一個變量命名為分數,當小球進行一次跳躍時我們就為其分數加一:

在觸發器的小球跳躍的事件中,添加動作將分數進行增加:


我們再到前臺中創建兩個文本,用于分數的顯示,并且在分數增加的動作中設置一個文本的內容為分數變量的值:

11.5 設置隨機不可跳躍矩形

設置隨機不可跳躍矩形我們需要使用一個時間變量,在界面中添加一個時間變量以及一個數值變量命名為記錄時間用于時間記錄:

在前臺中添加一個事件,當界面進行資源加載時記錄一個時間秒數:


接下來我們在觸發器中判斷記錄當前時間減去記錄時間是否大于 10 秒,若大于則給排除組件賦值一個隨機數,該隨機數最小為 1 最小為 4,此時即可完成隨機排除組件標志:


此時還需要注意在進行隨機組件排除后,還需記錄時間變量重新設置值方便排除組件變量之后值的隨機變換:


此時為了方便給玩家知道當前排除的組件,我們在觸發器中設置幾個條件,當排除組件值等于 1、2、3、4值時給與底部矩形塊一個顏色值,使其可以用作提示:

11.6 設置觸碰底部游戲結束

當小球掉到底部時游戲提示游戲結束,我們給底部設置一個事件,當觸碰小球暫停物理世界以及觸發器:

此時將會停止該游戲物理世界級觸發器運行事件:

停止游戲后我們應該出現停止游戲的文本,并且有一個重新開始按鈕。在頁面中增加文本與按鈕組件:

我們此時對其應該設置隱藏,點擊可見按鈕即可:


隨后在停止游戲時將其開啟可見:

隨后為重新開始按鈕其添加重啟事件,首先將文本設置隱藏:


隨后使物理世界、觸發器重新播放、分數歸零、小球位置重置:

最后增加游戲復雜度,復制底部重命名為頂部,此時頂部矩形將會擁有底部事件,我們只需要在觸發器中增加頂部改變其排除組件的顏色即可:

最后即可完成游戲效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286740.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286740.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286740.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

十天沖刺---Day8

站立式會議 站立式會議內容總結:燃盡圖照片最近思考一個問題。項目是怎么進行到這一步的。算了,這個發在明天的沖刺總結吧。。還需繼續努力,隊友快回來快回來。。轉載于:https://www.cnblogs.com/imguang/p/4965054.html

Android之去掉RecycleView和NestedScrollView邊緣效果

1 問題 使用RecycleView和NestedScrollView的時候,滑倒頂部或者底部,會有邊緣效果,就像水溫波一樣,現在需求去掉 2 解決辦法 在RecycleView和NestedScrollView的xml文件里面加上如下屬性即可。 android:overScrollMode"nev…

Action過濾器重構

(注:本文參照 NickChapsas的Attributes get a feature long-overdue in C# 11)今天看一個泛型特性的例子,這個功能在C#11才受支持。在asp.net core mvc中,可以給action添加filter,達到攔截作用,…

征集對Oracle的問題

兩月前收到Oracle的邀請,10.10-16日參加在舊金山舉辦Oracle Open World 2009,旅程連上了長假。很榮幸,我是中國惟一入選的博客(感謝小松and北北,還有小廢物同學經年累月的鞭策和誘導,北北同學的誘導尤其受用…

一篇文學會商用可編輯問卷表單制作【iVX 十二】

公共表單 在 iVX 快速教程中,我們使用一個公共表單項目作為 WebApp 應用的演示說明。公共表單項目可以用于企業內部或一個問卷公共平臺做問卷調查,用戶可以自由的設置表單元素以及樣式,并且可以手動設置表單結束下載填寫問卷后的調查數據。 …

【地圖學】地圖投影的定義和分類

一、地圖投影 1、地圖投影的定義 地圖投影是利用一定數學法則把地球表面的經、緯線轉換到平面上的理論和方法。 2、地圖投影的分類 (1)按變形性質 ? 等角投影: 投影面上兩微分線段的夾角與地面上的相應兩線段的夾角相等,及沒有角度變形的投影叫 ~ 。

React-引領未來的用戶界面開發框架-讀書筆記(八)

第16章 架構模式 React主要功能在于渲染HTML。可以將其看成是MVC中的V,它不會影響到組件中直接調用AJAX請求之類的操作: var TakeSurveyReact.CreateClass({getInitialData:function(){return{survey:null};},componentDidMount:…

三)mybatis 二級緩存,整合ehcache

mybatis-config.xml <setting name"cacheEnabled" value"true" /> PersonMapper.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http:…

confluence5.8.10的使用

之前在windows上安裝了confluence5.8.10,結果有一天知什么緣故&#xff0c;數據庫數據損壞&#xff0c;知識庫徹底打不開了&#xff0c;所有的文檔都付之東流&#xff0c;真的不是一般心痛。因此考慮將其裝到linux機器上&#xff0c;因為tomcat和mysql實際上都為了linux而生的&…

Android之提示Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider

1 問題 接入SDK提示錯誤如下 java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException: 2 解決辦法 在AndroidManifest.xml文件下面配置如下 在application目錄下面配置如下&#xff0c;…

RPA之PAD(Power Automate Desktop)組件開發

本文由網友藍創精英團隊投稿&#xff0c;歡迎轉載、分享原文作者&#xff1a;藍創精英團隊原文鏈接&#xff1a;https://blog.csdn.net/i2blue/article/details/125040323其實&#xff0c;PAD&#xff0c;現在官方文檔還沒有對外組件式或者插件式開發接口。但是&#xff0c;有一…

【地圖學】高斯-克呂格(Gauss-Kruger)投影原理、應用詳解(3°帶、6°帶)

一、高斯克呂格投影概述 德國數學家、物理學家、天文學家高斯于19 世紀20 年代擬定,后經德國大地測量學家克呂格于1912 年對投影公式加以補充,故稱為高斯-克呂格投影(Gauss-Kruger,簡稱GK),又名"等角橫切橢圓柱投影”。中央經線和赤道投影為相互垂直的直線,其它經線…

Linux安裝 微信開發者工具(deepin linux ubt)

一.環境:: deepin linux15.4.1 二.安裝過程: 2.1 安裝wine sudo apt-get install wine 2.2 安裝nwjs-sdk 2.2.1 下載linux版nwjs-sdk wget https://dl.nwjs.io/v0.25.4/nwjs-sdk-v0.25.4-linux-x64.tar.gz 2.2.2 解壓nwjs-sdk tar xvf nwjs-sdk-v0.25.4-linux-x64.tar.gz 2.2…

Python 3.6學習筆記(一)

開始之前 基礎示例 Python語法基礎&#xff0c;python語法比較簡單&#xff0c;采用縮緊方式。 # print absolute value of a integer a 100 if a > 0:print(a) else:print(-a) 可以看到&#xff0c;注釋以#開頭&#xff0c;python的變量不需要任何前綴&#xff0c;行結束不…

小程序的 HelloWord 01《 程序員變現指南之 微信QQ 小程序 真的零基礎開發寶典》

本系列教程是針對粉絲的變現教程&#xff0c;還不是粉絲的可以關注我并且到社區&#xff1a;https://bbs.csdn.net/topics/603436232 進行打卡&#xff0c;不是老粉的也可以獲取最終的技術變現學習&#xff0c;最終還有詳細的變現教程等你來。 前言 《 程序員變現指南之 微信…

octave中的一些基本操作

1.矩陣的表示&#xff1a;v [1 2 2] %表示1行3列的矩陣 v [1; 2; 2] %表示3行1列的矩陣 v [1 2; 2 3; 4 5] %3*2矩陣 size(v) % 求v的行與列 length(v) %求v的列 2.幾個基本矩陣的表示&#xff1a;1&#xff09;s ones(2, 4) %2*4全1矩陣 2&#xff09;m zeros(3, 4) %3…

Docker 日志最佳實踐

當運行在 docker 容器中的應用程序打印日志時&#xff0c;日志會輸出到標準輸出流 stdout 和標準錯誤流 stderr。容器日志驅動可以訪問這些流&#xff0c;并將日志發送到文件、本機運行的日志收集器或遠端的日志服務端點&#xff08;endpoint&#xff09;。本文將介紹選擇不同的…

Android之提示A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution

1 問題 編譯項目的時候提示錯誤如下 A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution 2 原因 有2次我寫room數據庫的時候都提示這個 ColumnInfo(name "isAddBookmark")var isAddBookmark falseColumnInfo(name "…

一個獲取a標簽傳值的函數

//獲取url查詢參數 var getUrlParams function () {var href"",params;return function (key,url) {if(url) {href url;params null;} else if(!url && !href) href window.location;//console.log(href);if(!params) {params {};var search href.sea…

【大地信】新時代GIS發展趨勢與未來展望

一、你必須知道的國內外知名學者 1. RogerTomlinson(羅杰湯姆林森)---GIS之父 Roger Tomlinson從1963年開始創建世界上第一個地理信息系統,即加拿大地理信息系統(CGIS)。因此,Tomlinson被譽為地理信息系統之父。 RogerTomlinson(1933.12---2014.2.9) 2. Michael Fran…