1. 程式人生 > >Javascript實現飛機大戰小遊戲

Javascript實現飛機大戰小遊戲

原始碼地址:https://github.com/markLijun/planeWar

最近看到一個用JS寫的坦克大戰小遊戲,覺得好神奇,於是自己嘗試著寫了一個飛機大戰。

敵機類

function Enemy(x, y)
this.x = x;
this.y = y;
this.moveId = null;
this.isLive = true;//當子彈打中敵機或敵機落地時死亡,isLive屬性標記敵機是否已死
this.run = function run() {
if (this.y > boxheight || this.isLive == false) {
 
window.clearInterval(this.moveId);//如果飛機已經死亡,停止運動,this.moveId會在生產飛機的時候賦值
 
this.isLive = false;
}
else {
this.y += 2.5;
 
}
}
}

生產敵機的函式

function procuceEnemy() {
var x = Math.ceil(Math.random() * (boxwidth - planewidth));//敵機的橫座標,為畫布寬度減去飛機寬度之間的隨機值
theEnemy = new Enemy(x, boxy);
allEnemy.push(theEnemy);//allEnemy負責儲存所有敵機,將新生產的敵機推入allEnemy棧
var moveId = window.setInterval("allEnemy[" + (allEnemy.length - 1) + "].run()", 60);//這是重點,使新制造的敵機每60ms run一次,並獲得新敵機的moveId
allEnemy[(allEnemy.length - 1)].timer = timer;//把獲得的moveId送給敵機類中的moveId,這裡是物件引用
}



畫敵機的函式
function drawEnemy() {
for (var i = 0; i < allEnemy.length; i++) {//遍歷所有敵機(包括已死亡的和未死亡的)
if (allEnemy[i].isLive ==true) {//挑選出活著的敵機(即應該出現在畫面上的敵機)
ctx.drawImage(enemyImage, allEnemy[i].x, allEnemy[i].y, enemywidth, enemyheight);//將它們畫在畫布上
}
}
}
為了使飛機的運動更加流暢,可以使用setInterval()函式改變飛機的座標,按下方向鍵就會呼叫這個函式,鬆開就會取消。



相關推薦

Javascript實現飛機大戰遊戲

原始碼地址:https://github.com/markLijun/planeWar 最近看到一個用JS寫的坦克大戰小遊戲,覺得好神奇,於是自己嘗試著寫了一個飛機大戰。 敵機類 function Enemy(x, y) this.x = x; this.y = y;

Python:用Pygame實現飛機大戰遊戲

2、開啟main.py檔案,寫入程式碼。 # main.py import pygame import sys import traceback import myplane import enemy import bullet imp

[原始碼分享]基於Python的Pygame庫實現的仿微信遊戲中的飛機大戰遊戲

不知大家是否還記得當時微信上風靡一時的打飛機小遊戲,通過控制我方飛機的上下左右移動,發射子彈來擊毀敵機,增加得分。這是一款簡單操作易上手又很有趣味性的遊戲,我使用python作為基本語言,利用pygame仿照微信版本完成了這款低配版飛機大戰遊戲。   我方飛機會按時的不斷髮射子彈,玩家通過上下左

[原始碼和文件分享]基於Python的Pygame庫實現的仿微信遊戲中的飛機大戰遊戲

不知大家是否還記得當時微信上風靡一時的打飛機小遊戲,通過控制我方飛機的上下左右移動,發射子彈來擊毀敵機,增加得分。這是一款簡單操作易上手又很有趣味性的遊戲,我使用python作為基本語言,利用pygame仿照微信版本完成了這款低配版飛機大戰遊戲。 我方飛機會按時的不斷髮射子彈,玩家通過上下左右的方向鍵來躲避

飛機大戰遊戲

官方網站:https://www.pygame.org/ 安裝pygame模組 pip install pygame 測試是否安裝成功 python -m pygame.examples.aliens 使用pygame建立圖形視窗 pygame.init() 匯入並初

網頁HTML5--飛機大戰遊戲開發--canvas的應用

一,概述 此小專案,是用來練習HTML5的canvas的程式設計運用。在這個專案中,我們需要建立一個可執行的網頁小遊戲,開發此小遊戲並不難,大概如下圖所示: 在整個遊戲的執行中,總共要分為5個狀態(state)去實現,分別是首頁(START),載入中(STARTING)

HTML5+JS實現坦克大戰遊戲

   聽了韓順平老師的視訊教程,學到了不少程式設計思想,原來看似簡單的坦克大戰小遊戲寫起來其實並不簡單。這裡總結一下這幾天學到的東西。         首先是關於html5的知識了。這裡我們基本上只用了畫布canvas來畫坦克,還有就是html5的第一行<!DOCTY

C++練習例項———控制檯程式碼實現坦克大戰遊戲

    坦克大戰是一款經典的遊戲,今天我來介紹一個在vs中僅用控制檯程式碼實現的坦克大戰小遊戲,在很多學校裡作為一個面對物件程式設計的大作業,對於學習C++的多型性很有幫助。程式的架構思路由老師提供,遊戲中用到了EasyX圖形庫,這個庫非常小巧輕便,下載地址:https://

[知了堂學習筆記]_純JS制作《飛機大戰遊戲_第1講(實現思路與遊戲界面的實現)

hid width 解決 -1 出現 span port webkit rom 整體效果展示: 一、實現思路 如圖,這是我完成該項目的一個邏輯圖,也是一個功能模塊完成的順序圖。 遊戲界面的完成 英雄飛機對象實現,在實現發射子彈方法過程中,又引出了子彈對象並實現。

[知了堂學習筆記]_純JS制作《飛機大戰遊戲_第3講(邏輯方法的實現)

了解 隱藏 div 開始遊戲 創建對象 eve 我們 span nbsp 整體展示: 上一講實現了諸多對象,這次我們就需要實現許多邏輯方法,如控制飛機移動,判斷子彈擊中敵機,敵機與英雄飛機相撞等等。並且我們在實現這些功能的時候需要計時器去調用這些方法。setInt

javascript飛機大戰-----002遊戲引擎

pan sco htm gin () ear 效果 time margin 基本html布局 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

原生JS實現的h5遊戲-植物大戰僵屍

完成後 資源 life css lan posit 獲得 抽象 dom 代碼地址如下:http://www.demodashi.com/demo/12755.html 項目介紹 本項目是利用原生js實現的h5小遊戲-植物大戰僵屍,主要結合了一下自己對於h5小遊戲的理解,

HTML5與Javascript 實現網頁彈球遊戲

fonts tab tool open article idt lang true 用戶 終於效果圖: 1. 使用html 5 的canvas 技術和javascript實現彈球遊戲 總體流程圖: 1.1 html5 c

CSS3實現五子棋Web遊戲,Canvas畫布和DOM兩種實現,並且具有悔棋和撤銷悔棋功能。

posit oct padding 角色 sar pac osi fse ech 用Canvas實現五子棋的思路: 1、點擊棋盤,獲取坐標x,y,計算出棋子的二維數組坐標i和j, 2、棋子的實現,先arc一個圓,再填充漸變色。 3、下完一步棋後切換畫筆和角色。 4、贏法算法

android:怎樣用一天時間,寫出“飛機大戰”這種遊戲!(無框架-SurfaceView繪制)

col ride raw ech tro cti 開發人員 contex epo 序言作為一個android開發人員,時常想開發一個小遊戲娛樂一下大家,今天就說說,我是怎麽樣一天寫出一個簡單的“飛機大戰”的.體驗地址:http://www.wandoujia.com/ap

Python基礎入門-實現猜數字遊戲

結束 選擇 提示 int pri 返回 重新開始 系統默認 pan 今天呢,我們來通過前面學過的一些知識點來完成一個猜數字大小的遊戲程序設計。那麽呢,一般人寫代碼直接上來就幹,沒有分析,這樣的做法是沒有產出的,除非你是大牛,今天呢,我會把我學習編程的思路分享給大家,我的思路

C語言實現簡易2048遊戲

blog 而在 而是 null 移動 是我 我們 空指針 主體 一直很喜歡玩這個小遊戲,簡單的遊戲中包含運氣與思考與策略,喜歡這種簡約又不失內涵的遊戲風格。於是萌生了用C語言實現一下的想法。 具體代碼是模仿這個:https://www.cnblogs.com/judgeyo

Java實現貪吃蛇遊戲(附完整原始碼)

今天我就從零開始來完成這個小遊戲,完成的方式也是一步一步的新增功能這樣的方式來實現。 第一步完成的功能:寫一個介面 大家見到的貪吃蛇小遊戲,介面肯定是少不了的。因此,第一步就是寫一個小介面。 實現程式碼如下: 第二步完成的功能:在介面上畫成一格一格的 我們見過的貪吃蛇遊戲

c++ 飛機大戰控制檯遊戲

之所以寫這個遊戲,是 #include<iostream> #include<cstring> #include<windows.h> #include<cmath> #include<time.h> #

nodejs服務端實現微信遊戲登入

nodejs服務端實現微信小遊戲登入的驗證與解密資訊 本文章主要借鑑於微信公眾平臺開放介面進行相應功能的開發,參照流程時序圖如: 目錄 文章目錄 nodejs服務端實現微信小遊戲登入的驗證與解密資訊 目錄 小遊戲客戶端