我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

来源:https://www.cnblogs.com/FatTiger4399/archive/2023/04/19/17330574.html
-Advertisement-
Play Games

好家伙,我的包終於開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ...


好家伙,我的包終於開發完啦

 

歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩

  • 這是一個有趣的網頁小游戲包,使用canvas和js開發
  • 使用ES6模塊化開發

效果圖如下:

 (覺得圖片太sb的可以自己改)

代碼已開源!!

Git:

https://gitee.com/tang-and-han-dynasties/panghu-planebattle-esm.git

NPM:

panghu-planebattle-esm - npm (npmjs.com)

 

來我們來按照(我給的)文檔來試一遍能不能成功導入這個游戲

 (這tm要是失敗就尷尬了)

 

1.開一個文件夾新建一個vue項目

不會的來看這一篇博客

第六十八篇:vue-cli新建項目

 

2.進行npm安裝包

 

3.去package裡面檢查一下

 

4.把文檔里的代碼複製到HelloWorld.vue文件中

文檔地址:panghu-planebattle-esm: 胖虎的飛機大戰,下載後導入,直接使用 (gitee.com)

 

 

誒,成了

 

5.改參數

有的人這時候就要開罵了,這什麼sb作者,放個這麼sb的背景

沒關係,可以改的嘛(其實就是教你改參數)

在node_modules文件中找到相應的panghu-planebattle-esm包,

你自己Ctrl+Shift+F搜索也行

來到配置項文件config.js中

 

 我在img中放了一張額外的背景(以備不時之需)

 

順便再把所有敵機的生命調成1,然後,擊殺得分調成100,直接開啟無敵模式

 

好了,你無敵了

飛機都看不見直接秒殺了

 

 

 

6.存在問題

這個小游戲目前還存在很多問題: 如:

  1.英雄和敵機的撞擊判斷存在很多問題

//main.js中的全局方法:
function checkHit() {
            // 遍歷所有的敵機
            for (let i = 0; i < enemies.length; i++) {
                //檢測英雄是否撞到敵機
                if (enemies[i].hit(hero)) {
                    //將敵機和英雄的destory屬性改為true
                    enemies[i].collide();
                    hero.collide();
                }
                
            }
        }

  enemy對象中的hit方法(即碰撞判定方法)

hit(o) {
    let ol = o.x;
    let or = o.x + o.width;
    let ot = o.y;
    let ob = o.y + o.height;
    let el = this.x;
    let er = this.x + this.width;
    let et = this.y;
    let eb = this.y + this.height;
    if (ol > er || or < el || ot > eb || ob < et) {
      return false;
    } else {
      return true;
    }
  }

你應該看出來了,這是一個"正方形"判定,這會導致很多問題 例如,我的英雄還沒有"真正"碰到敵機,

而是英雄的左上角與敵機的右下角接觸 (想像兩個正方形接觸)

英雄的"身體"沒有碰到敵機的"身體" 就爆炸了

 

這會導致後期游戲體驗非常差

 

  2.這個游戲不夠好玩  就如字面意思一樣,這個游戲不夠好玩

 

7.歡迎加入我的倉庫,我們一起完善這個項目

如果你碰巧看到了這篇博客

又碰巧對網頁小游戲製作感興趣,

又碰巧有一定的js基礎

 

歡迎加入我的倉庫,我們一起完善這個項目

聯繫我:1072253914 (QQ) 或者通過我的博客私信我


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言:ETL(是Extract-Transform-Load的縮寫,即數據抽取、轉換、裝載的過程),對於企業應用來說,我們經常會遇到各種數據的處理、轉換、遷移的場景。今天特地給大家彙總了一些目前市面上比較常用的ETL數據遷移工具,希望對你會有所幫助。 ...
  • 如圖,引導開始,球從上落下,同時淡入文字,然後文字開始輪播,最後一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實現 首先新建一個類 TextTranslationXGuideView,用於動畫展示 文本是類似的,最後會有個圖片箭頭動畫,佈局很簡單,就是一個 TextVi ...
  • 一. 問題描述 使用華為推送服務下發IM消息時,下發消息請求成功且code碼為80000000,但是手機總是收不到消息; 在華為推送自助分析(Beta)平臺查看發現,消息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類消息做了單個設備每日推送數量上限管理,具體 ...
  • 在前面的Blog例子中我們使用的是GraphQL, 雖然GraphQL的使用處於上升趨勢,但是Rest API還是使用的更廣泛一些. 所以還是決定回到傳統的rest api framework上來, Django rest framework的官網上給了一個很好用的QuickStart, 我參考Qu ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 大家平時在開發的時候有沒被new Date()折磨過?就是它的諸多怪異的設定讓你每每用的時候,都可能不小心踩坑。造成程式意外出錯,卻一下子找不到問題出處,那叫一個煩透了…… 下麵,我就列舉它的“四宗罪”及應用思考 可惡的四宗罪 1. Sa ...
  • 實現文字跑馬燈效果,首先用到 substring()截取 和 setInterval計時器 clearInterval()清除計時器 效果如下: 實現代碼如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ...
  • JavaScript 操作符/運算符 在 JavaScript 中,有一些操作符可以使代碼更簡潔、易讀和高效。以下是一些常見的操作符: 1、可選鏈操作符(optional chaining operator) ?.是可選鏈操作符(optional chaining operator)。?. 可選鏈操 ...
  • 一、概述 rem是一個相對長度單位,它的單位長度取決於根標簽html的字體尺寸。rem即root em的意思,中文翻譯為根em。瀏覽器的文本尺寸一般預設為16px,即預設情況下: 1rem = 16px rem佈局原理:根據CSS媒體查詢功能,更改根標簽的字體尺寸,實現rem單位隨屏幕尺寸的變化,如 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...