canvas实现太空飞船射击类游戏ASTEROIDS代码
代码语言:html
所属分类:游戏
代码描述:canvas实现太空飞船射击类游戏ASTEROIDS代码,鼠标移动控制飞船,鼠标左键单击射击。
代码标签: canvas 太空 飞船 射击类 游戏 ASTEROIDS 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<style>
* {
padding: 0;
margin: 0;
}
body {
background-color: #000000;
color: #fff;
font-size: 12px;
font-family: Arial, Helvetica, sans-serif;
}
canvas {
cursor: crosshair;
position: absolute;
}
a {
color: #fff;
text-decoration: none;
cursor: pointer;
}
#menu {
position: absolute;
top: 50%;
margin-top: -45px;
text-align: center;
width: 100%;
}
#start {
font-size: 20px;
font-weight: bold;
}
#title {
font-size: 24px;
margin-bottom: 15px;
}
#message {
font-size: 14px;
margin-bottom: 30px;
}
a#tweet {
color: white;
font-size: 11px;
display: inline-block;
margin-top: 15px;
padding: 5px 10px;
background-color: transparent;
border: 1px solid white;
}
a#tweet:hover {
color: black;
background-color: white;
}
#hud {
position: absolute;
top: 10px;
left: 10px;
list-style: none;
}
#menu, #hud {
-moz-user-select: none;
-webkit-user-select: none;
-khtml-user-select: none;
}
#hud li.score {
width: 120px;
overflow: hidden;
}
#hud li {
float: left;
margin-right: 20px;
}
</style>
</head>
<body >
<div id='container'>
<canvas id='c'></canvas>
<ul id='hud'>
<li class='score'>SCORE: <span id='score'>0</span></li>
<li>WEPON: <span id='wepon'>NORMAL BEAM</span></li>
</ul>
<div id='menu'>
<h2 id='title'></h2>
<div id='message'></div>
<a href='#' id='start'>START</a>
</div>
</div>
<script >
// Machine translation because I'm not good at English!
//------------------------------------
// CONFIG
//------------------------------------
// デフォルトの武器
// Default weapon
var WEPON_DEFAULT = {
// 武器の名前
// Weapon name
name: 'NORMAL BEAM',
// 与えるダメージ 0~1
// Damage dealt 0 ~ 1
power: 0.3,
// 弾のスピード
// Bullet speed
speed: 3,
// 弾の長さ
// Bullet length
length: 10,
// 弾の幅
// Bullet width
width: 1,
// 弾の色, 特殊武器の場合アイテムの色に反映される, CSS カラーで指定
// The color of the bullet, in the case of special weapons, reflected in the color of the item, specified by CSS color
color: 'white',
// 連射速度
// Fire rate
shootingInterval: 1000 * 0.35,
// 貫通弾か示す
// true の場合着弾しても消滅しない
// explosion を指定した場合はそちらが優先される
// Indicates whether the bullet
// If true, will not disappear even if it lands
// If explosion is specified, it takes precedence.
through: false,
// 爆発による着弾後の範囲攻撃
// 以下のプロパティを持つオブジェクトで指定する
// { range: 爆発範囲, speed: 爆発の速度 }
// * 範囲攻撃の威力は武器の基本威力の半分
// Range attack after landing due to explosion
// Specify with an object that has the following properties:
// { range: Explosion range, speed: Explosion speed }
// * The power of range attacks is half the basic power of weapons
explosion: false };
// 特殊武器の配列, UFO を撃破するとランダムで出現する
// Special weapon array, Randomly appear when you destroy a UFO
var WEPON_SPECIAL = [
{
name: 'TINY BEAM',
power: 0.1,
speed: 10,
length: 5,
width: 1,
color: 'rgb(131, 224, 8)',
shootingInterval: 1000 * 0.1,
through: false,
explosion: false },
{
name: 'BLASTER',
power: 1,
speed: 3,
length: 15,
width: 3,
color: 'rgb(244, 0, 122)',
shootingInterval: 1000 * 0.3,
through: false,
explosion: false },
{
name: 'LASER',
power: 0.2,
speed: 35,
length: 200,
width: 2,
color: 'rgb(138, 227, 252)',
shootingInterval: 1000 * 0.6,
through: true,
explosion: false },
{
name: 'EXPLOSION BEAM',
power: 0.15,
speed: 15,
length: 10,
width: 2,
color: 'rgb(255, 153, 0)',
shootingInterval: 1000 * 0.5,
through: false,
explosion: {
range: 100,
speed: 4.5 } }
/*
,{
name: 'INSANE BEAM',
power: 0.035,
speed: 7.5,
length: 5,
color: 'rgb(255, 246, 0)',
width: 2,
shootingInterval: 1000 * 0.015,
through: true,
explosion: false,
explosion: {
range: 75,
speed: 2
}
}//*/];
var ASTEROID_MAX_SIZE = 80; // 小惑星の最大サイズ
var ASTEROID_MIN_SIZE = 5; // 小惑星の最小サイズ
var ASTEROID_MAX_NUM = 75; // 小惑星の最大数
var ASTEROID_SPAWN_TIME = 350; // 小惑星の復活時間
var SHIP_SPEED = 1.5; // 自機のスピード
var UFO_SPEED = 2; // UFO のスピード
var ITEM_SPEED = 0.5; // アイテムのスピード
// UFO の出現率 0~1
var UFO_INCIDENCE = 0.0035;
// 特殊武器の持続時間
var SPECIAL_WEPON_TIME = 1000 * 20;
// 各種スコア
var SCORE = {
ASTEROID_DAMAGE: 10,
ASTEROID_DESTROY: 50,
UFO_DAMAGE: 0,
UFO_DESTROY: 300 };
//------------------------------------
// CONSTANTS
//------------------------------------
var PI = Math.PI;
var TWO_PI = PI * 2;
var DEG_TO_RAD = PI / 180;
var FPS = 60;
//------------------------------------
// VARS
//------------------------------------
var canvas;
var canvasWidth;
var canvasHeight;
var context;
var mouse;
var isMouseDown = false;
var ship; // Ship
var beams; // Collection of Beam
var asteroids; // Collection of Asteroid
var splinters; // Collection of Splinter
var debris; // Collection of Debri
var ufo; // Ufo
var item; // Item
var asteroidLastSpawn = 0; // 小惑星が最後に復活した時間
var ufoLastSpawn = 0; // UFO が最後に復活した時間
var debriLastSpawn = 0; // 背景の星屑が最後に出現した時間
var fieldRange; // フィールドの範囲
var score = 0; // スコア
var isPlay = false; // ゲームが開始されているか示す
var dom = {
menu: null,
title: null,
message: null,
tweet: null,
start: null,
score: null,
wepon: null };
//---------------------------------.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0