canvas射击

代码描述:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"/>
<title> New Document 111111111 </title>
<meta name="Keywords" content="">
<meta name="Description" content="">
<style type="text/css">
#canvas{position:absolute;left:0;top:0;}
</style>
</head>
<body>
<canvas id=‘canvas‘ width=800 height=500></canvas>
<script type="text/javascript">
var canvas = document.getElementById(‘canvas‘);
var context = canvas.getContext(‘2d‘);
canvas.style.backgroundColor=‘#EEEEFF‘;

document.onmousemove=move;
function move(e){

}

var arr=[];
var brr=[];
var crr=[];
var drr=[];
var t =null;
canvas.onmousedown = function(e){
var e = e || window.event;

arr.push(e.clientX);
brr.push(e.clientY);
crr.push(400);//起始点x
drr.push(500);//起始点y
//redz(e.clientX,e.clientY);
run();
}
function redz(x,y){
context.save();
context.translate(400,500);
if(x<400){
var deg2 = Math.atan((500-y)/(400 - x))-Math.PI/2;
var dd = context.rotate(deg2);
}else{
var deg2 = Math.atan((500-y)/(400 - x ))+Math.PI/2;
var dd = context.rotate(deg2);
}
context.fillStyle=‘red‘;
context.fillRect(0,-50,4,50);
context.restore();
}
redz(200,200);
function run(){
context.clearRect(0,0,canvas.width,canvas.height);
if(t){
clearTimeout(t);
}
circilp();
for (var i=0;i<arr.length ;i++ )
{
redz(arr[arr.length-1],brr[brr.length-1]);
if(arr[i]<400){
crr[i]-=(400 - arr[i])/(500 - brr[i]);
drr[i]-=1;
}else{
crr[i]+=(arr[i] - 400)/(500 - brr[i]);
drr[i]-=1;
}
if(crr[i]<0||crr[i]>800||drr[i]<0){
arr.splice(i,1);
brr.splice(i,1);
crr.splice(i,1);
drr.splice(i,1);
}
context.strokeStyle=‘blue‘;
context.strokeRect(crr[i],drr[i],2,2);
}
t = setTimeout(run,2);
}
function circilp(){
context.beginPath();
context.arc(400,530,50,0,Math.PI,true);
context.closePath();
context.fill();
}
circilp();
</script>
</body>
</html>

时间: 2024-08-26 17:49:52

canvas射击的相关文章

用canvas制作酷炫射击游戏--part3

今天介绍下 游戏中的sprite模块,也就是构建玩家及怪物的模块.有了这个模块,就可以在咱们的游戏里加入人物了. 想必用过css的朋友都知道sprite,一种将需要加载的图片拼接在一张图里以减少请求的css性能优化的方法.在游戏中的sprite,指游戏里有行为.有模样的对象.也就是人物或怪物. 源码见game-engine第598行.这里截取下目前需要的部分 加以说明. // 精灵构造器 var Sprite= function (name,context,painter,behaviors)

web版canvas做飞机大战游戏 总结

唠唠:两天的时间跟着做了个飞机大战的游戏,感觉做游戏挺好的.说是用html5做,发现全都是js.说js里一切皆为对象,写的最多的还是函数,都是函数调用.对这两天的代码做个总结,希望路过的大神指点一下,我对这个游戏的思路,可改进优化的代码. 先说一下游戏的基本内容: 打飞机(不要想歪了),有鼠标控制移动英雄机,子弹自动射击:敌机从上而下,有三种敌机: 先说下HTML代码(主要就是这一行): <canvas id="canFly" width="480" heig

Unity UGUI Canvas 使用Slider制作角色血条

最近课程实训选修Unity,讲解的是Unity官方案例--SpaceShoot,培训无聊,便想着给游戏角色制作一下血条,以此增加游戏的可玩性. Unity版本:5.4.1 案例模版:太空射击 原文作者:茄阁云云 原文连接:http://www.cnblogs.com/vmoor2016/p/6044941.html 把一个大象装进冰箱里需要三步:①把冰箱门打开:②把大象塞冰箱里:③关上冰箱门. 那么制作一个角色的血条需要几部呢?在这里也划分为三步:①制作血条:②摆放血条:③操作血条. 下面就来给

用canvas写飞机大战

1.老规矩,当我们开始做项目的时候,我们第一步就是要进行分析,当我们的游戏开始做的时候我们要把一整个游戏分成五个阶段来写: 五个阶段和我方飞机的生命值,还有游戏的得分情况如下: //游戏欢迎状态 const START=0; // 第二阶段:游戏加载状态 const LOADING=1; // 第三阶段:游戏运行状态 const RUNNING=2; // 第四阶段:游戏暂停阶段 const PAUSE=3; // 第五阶段:游戏结束阶段 const GAMEOVER=4; //定义游戏得分 v

HTML5新增Canvas标签及对应属性、API详解(基础一)

知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签原型 <canvas width=”1000” height=”1000” id=”myCanvas”> 您的浏览器版本过低,不支持HTML5新增的canvas标签. </canvas> 使用js获取该画布,并指定对象 <script> Var canvasID = doc

移动端canvas抗锯齿

未抗锯齿效果图: 加入抗锯齿代码效果: var Game = function(){ var H = document.documentElement.clientHeight || document.body.clientHeight; var W = document.documentElement.clientWidth || document.body.clientWidth; this.canvas = document.getElementById("canvas"); t

Canvas

仿百度贴吧客户端 loading 小球 前言 几天前在简书上看到在一篇文章<Android仿百度贴吧客户端Loading小球>,看了一下作者,他写了两个好玩的 demo,效果图如下: 今天趁着周末有空,用 H5 的 Canvas 仿了一下.这篇文章只实现第一个效果图.这是我实现的效果: 实现原理 实现原理是参考简书的那篇文章,这里不再复述.现在我们来一步一步实现这样的效果. 第零步:画一个圆 源码如下: <!DOCTYPE html> <html> <head&g

canvas设置width, height

在style里面设置canvas的宽高时,会发现画出的图像被拉伸了:在canvas元素中直接设置width和height就会恢复正常:如果在canvas元素里的style里设置width和height会发现又不行了!看了chy龙神 的博客发现了其中玄机.. 首先这是由canvas的构造导致的,canvas是一个画板和一张画纸组成的.当画板和画纸尺寸一致时,不会发生拉伸变形的情况:当画板和画纸尺寸不一致时,就会被拉伸变形. 能正确设置画板和画纸宽高一致的方法,这些方法可以同时设置画板和画纸的宽高:

【铜】第131篇 融合一对一canvas视频录制到备份上(二)简版做成及追加图片过程周四

关键词:一对一canvas视频录制, 简版做成,追加图片过程 一.一对一视频录制 1.1 往备份上布录制-----------------bug处理 现在不知道,网页录制都依赖哪些文件,现在需要一个一个的去除.现在去除差不多了,如下: 经过整理发现,仅仅需要两个文件,就能实现录制.如下: 简版访问地址如下: http://localhost:9001/record-canvas-drawings.html#no-back-button 二.追加图片过程 2.1 学生端追加拍照 <li><