十一、飛機大戰(IVX 快速開發教程)

十一、飛機大戰

制作微信小游戲大致流程與微信小程序、Web類似,不同的在于是組件的使用。

文章目錄

  • 十一、飛機大戰
      • 11.1.1 完成游戲角色制作
      • 11.1.2 完成物理世界添加
      • 11.1.3 完成子彈對象反重力運動
      • 11.1.4 使用對象組創建子彈
      • 11.1.5 子彈優化
      • 11.1.6 設置敵機
      • 11.1.7 優化游戲

11.1.1 完成游戲角色制作

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

創建好游戲場景后在游戲界面中可以添加圖片,作為游戲中的元素。點擊圖片組件在畫布中繪制一個主角飛機。點擊圖片后在畫布中拖動鼠標繪制區域后將會彈出資源選擇框:


選中我們需要添加的圖片素材后,此時畫布中就會出現主角飛機圖片:

我們點擊圖片,拖拽到合適大小:

11.1.2 完成物理世界添加

為了方便之后飛機與敵機之間檢測物理碰撞,我們需要在畫布中添加一個物理世界,并將主角飛機作為物理世界的子對象:

為了使主角飛機能夠收到物理世界的影響,需要給主角飛機添加一個物體。在對象樹種點擊飛機圖片組件,在左側組件欄中點擊物體進行添加:

此時我們通過 web 瀏覽器進行調試,點擊預覽:

為了更好的方便觀察,我們在出現的瀏覽器窗口中按下 F12,選擇該窗口為手機瀏覽器窗口:

我們刷新界面后將會看到主角飛機從上往下掉落:

由于在物理世界中發生碰撞,物體之間將會出現旋轉等情況,我們需要飛機頭一直正朝著上方,需要禁止主角飛機的旋轉角度。點擊飛機主角下的物體組件,在屬性欄中將物體的固定旋轉角度開啟:

11.1.3 完成子彈對象反重力運動

接下來開始設置子彈自動發射,我們先在畫布中再次添加一個子彈圖片組件,并且在這個子彈圖片組件下添加物體組件:


此時預覽發現子彈會自動掉落,解決這個問題只需要在子彈組件下添加一個運動組件:

我們點擊運動組件,設置移動方向為 90 度則為垂直向上運動,隨后給與這個方向設置移動速度,設置為 -600 則為表示反方向運動,最后還需要開啟自動播放才會生效:

接著我們預覽將會發現已經成功的使該子彈反方向進行運動,此時還要注意要將子彈的固定旋轉屬性開啟,否則子彈將會在之后的碰撞中發生不理想的效果。

11.1.4 使用對象組創建子彈

由于子彈是需要間隔一定時間進行自動發射,我們現在使用對象組組件對子彈進行統一管理。此時添加一個對象組添加到物理世界中,選擇管理的范圍為整個畫布(此處需要頂部和底部留一點空隙用于之后的碰撞處理):


添加完畢后發現飛機和子彈都不見了,這是因為對象組覆蓋了飛機主角圖片與子彈圖片。此時將對象組在對象樹的次序放到最底部即可(在對象樹種越靠近頂部顯示的優先級越高)。

接著把子彈圖片組件添加到對象組下:

由于子彈是間隔發射,此時我們需要在前臺中創建一個觸發器定時發射子彈:

隨后設置觸發器的時間間隔為 0.3,并且開啟自動播放:

接著為觸發器設置事件,條件為觸發器觸發時,使用對象組組件的創建對象動作并設置模板對象為子彈對象:

我們接著給子彈設置一個初始的出現位置,這個位置我們可以設置成主角飛機的位置,之后再通過微調使子彈出現的位置在飛機機頭即可:

我們運行程序將會發現子彈將會自動發射:

11.1.5 子彈優化

此時子彈并不會自動消失,我們可以在頂部加一個矩形組件命名為頂部,該組件添加物體組件后,設置位置為固定 xy 坐標與固定旋轉角度:

接下來我們為子彈添加一個事件,該事件觸發為開始碰撞,選擇碰撞對象為頂部,動作為當前對象自動移除:

此時再預覽項目則會發現子彈會自動消失,但是頂部的物體存在邊框和顏色,我們點擊頂部組件,更改背景顏色的透明度為 0,再更改該組件的邊框寬度為 0,該組件就可以從視覺上消失在這個頁面之中:

接著我們開始為這個飛機主角添加移動事件。我們點擊前臺添加事件,當手指按下,飛機主角組件將會在指定范圍內移動到該位置:

11.1.6 設置敵機

接著我們添加敵機。在對象組中添加一個圖片組件,并且為其添加物體組件:

點擊物體組件,設置阻尼為 0.95 并開啟固定旋轉角度,此時該飛機從頂部掉落速度將會減慢:

我們此時再給敵機組件一個碰撞事件,當碰到子彈時自動消失:

再給子彈組件添加一個事件,碰到敵機自動消失:

此時我們開始批量創建敵機,我們創建一個數值變量命名為隨機 x,用于敵機的隨機橫軸位置:

接著我們在觸發器中給隨機 x 變量隨機值:

接著在觸發器中使用對象組創建飛機對象,X 值為隨機x 變量值, Y 值給與一個固定值距離頂部一定距離即可:

此時敵機未擊中將會掉落到屏幕底部,此時在底部添加一個透明的矩形組件命名為底部,敵機觸發后自動消失:


11.1.7 優化游戲

接下來創建一個變量記錄擊落敵機數量:

在子彈觸碰到敵機時該數值加一:

我們在前臺創建一個文本命名為擊落,用于顯示該變量值并且設置初始文本為 0:

之后在子彈觸碰敵機時添加一個動作,將顯示該變量的內容:

此時預覽內容將會實現計分效果:

最后在主角飛機中添加觸碰到敵機時的動作:

以上事件當主角飛機觸碰敵機使使用物理世界以及觸發器執行暫停動作游戲則會停止。

最終考慮用戶體驗,我們在停止后再顯示一個游戲結束文本。在前臺中添加一個文本命名為游戲結束,默認為不可見:

在敵機觸碰到主角時添加游戲結束文本顯示操作即可:


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

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

相關文章

中國版LinkedIn呼之欲出

迄今為止,發展勢頭強勁的Facebook仍未上市,而美國職業社交網站LinkedIn 卻率先登錄紐約證券交易所,股價在第一天的交易中飆升,從45美元的發行價上漲了一倍,然后超過100美元,最終以94.25美元收盤。 LinkedIn…

Android之實現RecyclerView拖拽效果和固定部分元素不進行交換位置(包含源代碼下載地址)

1、效果爆照 啟動的效果 拖動過程中的效果 拖動后的效果 2、需求和問題 需求:RecyclerView實現拖拽效果,但是部分固定位置不能進行拖拽也不能在拖拽的過程中交換順序

各主流瀏覽器內核介紹

所謂的“瀏覽器內核”無非指的是一個瀏覽器最核心的部分——“Rendering Engine”,直譯這個詞匯叫做“渲染引擎”,不過我們也常稱其為“排版引擎”、“解釋引擎”。這個引擎的作用是幫助瀏覽器來渲染網頁的內容,將頁面內 容和排版代碼轉換為用…

測繪地理信息標準(國家、行業、地方)大全來了:測繪地理信息標準化服務平臺

測繪地理信息標準化服務平臺,這里有你需要的所有標準,趕快來圍觀吧!

WPF效果第一百八十七篇之再玩ListBox

大周末的接著上一篇又玩了ListBox,這不又來再次去玩耍ListBox;畢竟是我的最愛,沒辦法就喜歡玩耍他;閑話也不多扯了,直接看最終效果:2、ItemsPanel還是老樣子:<ItemsPanelTemplate x:Key"CommonItemsPanelTemplate"><WrapPanel Orientation"Horizontal&…

Nginx支持比Apache高并發的原因

1.先從各自使用的多路復用IO模型說起&#xff1a; select模型&#xff1a;&#xff08;apache使用&#xff0c;由于受模塊等限制&#xff0c;用的不多&#xff09; 單個進程能夠 監視的文件描述符的數量存在最大限制select()所維護的 存儲大量文件描述符的數據結構 &#xf…

利用pdf.js開發嵌入pdf顯示,以及利用jquery-ui左右分欄顯示

原來考慮用pdf.js的viewer.html頁面&#xff0c;但怎么用都不方便。因此直接用pdf.js在左側連續顯示pdf所有內容&#xff0c;右側顯示其它相關內容&#xff0c;并且左右寬度可以任意拖動&#xff0c;最終實現效果如圖&#xff1a; 代碼&#xff1a;<!DOCTYPE html><ht…

十三、制作 iVX音樂分享小程序

功能介紹 通過前幾節的學習&#xff0c;我們對完成一個應用已經有了一些自己的心得。在此再次再制作一個小的音樂小程序應用。該應用一共分為首頁、榜單頁、音樂分享頁和音樂搜索頁。 首頁&#xff1a; 榜單內容頁&#xff1a; 音樂分享頁&#xff1a; 音樂搜索頁&#xff1a…

01_反射_02_反射類的構造方法

【工程截圖】 【Person.java】 //將要被反射的類 package com.Higgin.reflect; import java.util.List;public class Person {private String name"NULL";private int age0;public Person(){System.out.println("構造方法&#xff1a;Person()");}public P…

西北師范大學地理與環境科學學院考研真題匯總(自然地理學)持續更新。。。

西北師范大學地理與環境學科學院研究生入學考試的所有專業(地圖學與地理信息系統、自然地理學、人文地理學、環境科學、環境工程)的專業課均為自然地理學,本文持續收集整理歷年自然地理學考研入學考試真題。 1998年 一、名詞 1. 焚風 2. 徑流模數 3. 趨同適應 4. 墨卡托…

Android之提示type checking has run into a recrusive problem. Easiest workaround: specify types of your

1 問題 寫kotlin的時候錯誤提示如下 type checking has run into a recrusive problem. Easiest workaround: specify types of your declarations explicitly 2 分析 我寫得是遞歸函數如下&#xff0c;錯誤提示就是上面&#xff0c;是因為我們寫返回值&#xff0c;才導致 s…

私有云搭建 OpenStack(centos7.3, centos-release-openstack-ocata)

OpenStack&#xff08;centos7.3,centos-release-openstack-ocata&#xff09;nova&#xff1a;計算節點queue&#xff1a;消息隊列&#xff0c;系統瓶頸所在scheduler&#xff1a;調度機制conductor&#xff1a;更新數據庫cert&#xff08;objectstore&#xff09;&#xff1a…

C# 類繼承中的私有字段都去了哪里?

最近在看 C 類繼承中的字段內存布局&#xff0c;我就很好奇 C# 中的繼承鏈那些 private 字段都哪里去了? 在內存中是如何布局的&#xff0c;畢竟在子類中是無法訪問的。一&#xff1a;舉例說明 為了方便講述&#xff0c;先上一個例子&#xff1a;internal class Program{stati…

大型分布式網站架構技術總結

本文是學習大型分布式網站架構的技術總結。對架構一個高性能&#xff0c;高可用&#xff0c;可伸縮&#xff0c;可擴展的分布式網站進行了概要性描述&#xff0c;并給出一個架構參考。一部分為讀書筆記&#xff0c;一部分是個人經驗總結。對大型分布式網站架構有很好的參考價值…

python 數據分析找到老外最喜歡的中國美食【完整代碼】

一、環境及依賴 語言&#xff1a;python3.8 抓取&#xff1a;selenium 代理&#xff1a;ipide **注&#xff1a;**想要完整代碼的在末尾&#xff0c;注意新手建議慢慢看完。在此提示一下本篇文章的編寫步驟&#xff1a;1.獲取數據、2.翻譯、3.數據清洗、4.切詞詞權重、5.詞云 …

Android之檢查跳轉的Activity是否存在

1、需求 android我們知道經常會跳各種設置頁面,比如設置默認瀏覽器頁面、設置添加快捷方式權限頁面,我們會根據機型進行適配,但是有時候如果找到也找個頁面不try catch操作程序會奔潰 2、檢查跳轉的Activity是否存在代碼實現 public static boolean hasActivity(Context co…

hihoCoder 1257 Snake Carpet(很簡單的構造方法)

2015 ACM / ICPC 北京現場賽 I 題 構造 注意一個小坑&#xff0c;每條蛇的輸出是要從頭到尾輸出的。 還要注意的是&#xff0c;不能開數組去模擬構造過程&#xff0c;然后輸出&#xff0c;那樣會TLE的。 #include <cstdio> #include <cstring> #include <cmath&…

西北師范大學地理與環境科學學院考研真題匯總(高等數學)持續更新。。。

西北師范大學地理與環境學科學院研究生入學考試的所有專業(地圖學與地理信息系統、自然地理學、人文地理學、環境科學、環境工程)的數學均為自主命題,復習參考教材為同濟大學第五版。

操作系統與多核處理器

這篇文章解答了我心中的疑問&#xff0c;那就是操作系統會自動調度cpu資源來處理多進程&#xff0c;多線程的并發。早在上世紀90年代末&#xff0c;就有眾多業界人士呼吁用CMP(單芯片多處理器)技術來替代復雜性較高的單線程CPU。IBM、惠普、Sun等高端服務器廠商&#xff0c;更是…

Java網絡編程二:Socket詳解

Socket又稱套接字&#xff0c;是連接運行在網絡上兩個程序間的雙向通訊的端點。 一、使用Socket進行網絡通信的過程 服務端&#xff1a;服務器程序將一個套接字綁定到一個特定的端口&#xff0c;并通過此套接字等待和監聽客戶端的連接請求。 客戶端&#xff1a;客戶端程序根據你…