Web开发基础:JavaScript飞机大战

2024-09-04 20:32

本文主要是介绍Web开发基础:JavaScript飞机大战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

超详细的Java知识点路线图


飞机大战

图片链接:https://pan.baidu.com/s/1elfvlHClwwDnc8buUnySPw
提取码:mi5y
在这里插入图片描述

功能点:

1、飞机跟着鼠标移动
在onmousemove事件中获得鼠标的坐标,设置给飞机图片
2、发射子弹
子弹需要动态添加到网页中
动态创建标签对象
document.createElement(“标签名”);
动态添加到层中
层对象.appendChild(标签对象);
设置样式
3、敌机移动
4、击中敌机

代码

<!DOCTYPE html>
<html>
<head><title>飞机大战</title><style type="text/css">#bg{width: 300px;height: 500px;background: url(images/background_1.png);/*margin: 0px auto;*/}#plane{width: 40px;height: 50px;position: absolute;}</style>
</head>
<body><div id="bg" onmousemove="movePlane()"><img id="plane" src="images/plane.gif"></div><script type="text/javascript">//获得背景对象var bg = document.getElementById("bg");//获得飞机对象var plane = document.getElementById("plane");//鼠标的位置var x,y;//移动飞机function movePlane(){//获得鼠标的x和y坐标x = window.event.clientX;y = window.event.clientY;if(x >=0 && x <= bg.offsetWidth && y >= 0 && y <= bg.offsetHeight){//修改飞机图片的位置plane.style.left = (x - plane.offsetWidth / 2) + "px";plane.style.top = (y - plane.offsetHeight / 2) + "px";}}//子弹的数组var bullets = new Array();//敌人的数组var enemys = new Array();//子弹类,x,y代表子弹出现的初始位置function Bullet(x,y){var img = document.createElement("img");//创建img标签对象bg.appendChild(img);					//添加图片对象到游戏背景上img.src = "images/bullet1.png";			//设置子弹图片img.style.position = "absolute";		//绝对定位img.style.width = "6px";img.style.height = "14px";img.style.left = x + "px";				//设置子弹图片初始坐标img.style.top = y + "px";this.width = 6;							//子弹的尺寸this.height = 14;this.x = x;								//子弹的坐标this.y = y;this.move = function(){					//子弹的移动this.y -= 10;						//向上移动img.style.top = this.y + "px";		//修改子弹图片的位置}this.remove = function(){				//删除子弹bg.removeChild(img);				//从背景中删除图片}}//敌人类,x,y代表子弹出现的初始位置function Enemy(x,y){var img = document.createElement("img");//创建img标签对象bg.appendChild(img);					//添加图片对象到游戏背景上img.src = "images/enemy1_fly_1.png";	//设置子弹图片img.style.position = "absolute";		//绝对定位img.style.width = "34px";img.style.height = "24px";img.style.left = x + "px";				//设置子弹图片初始坐标img.style.top = y + "px";this.width = 34;							//子弹的尺寸this.height = 24;this.x = x;								//子弹的坐标this.y = y;this.isDead = false;this.move = function(){					//子弹的移动this.y += 10;						//向上移动img.style.top = this.y + "px";		//修改子弹图片的位置}this.remove = function(){				//删除子弹bg.removeChild(img);				//从背景中删除图片}this.dead = function(){					//显示爆炸图片img.src = "images/boom.png";this.isDead = true;}}//创建子弹对象function createBullet(){bullets.push(new Bullet(x,y - plane.offsetHeight / 2));}//创建敌人对象function createEnemy(){enemys.push(new Enemy(bg.offsetWidth * Math.random(),0));}//移动所有的子弹function moveBullets(){for(var i = 0;i < bullets.length;i++){bullets[i].move(); 			//移动子弹checkHit(bullets[i]); 		//判断子弹是否打中敌人if(bullets[i].y <= 0){		//子弹到顶部后,删除子弹bullets[i].remove();bullets.splice(i,1);}}}//移动所有的敌人function moveEnemys(){for(var i = 0;i < enemys.length;i++){enemys[i].move(); //移动子弹if(enemys[i].y >= bg.offsetHeight || enemys[i].isDead){		//敌人到底部或被子弹打中,就删除敌人enemys[i].remove();enemys.splice(i,1);}}}//判断子弹是否打中敌人function checkHit(bullet){//遍历所有敌人for(var i = 0;i < enemys.length;i++){//碰撞检查if(bullet.x > enemys[i].x && bullet.x + bullet.width < enemys[i].x + enemys[i].width &&bullet.y > enemys[i].y && bullet.y + bullet.height < enemys[i].y + enemys[i].height){enemys[i].dead();}}}//启动周期任务执行创建子弹setInterval("createBullet()",200);//移动子弹setInterval("moveBullets()",50);//创建敌人setInterval("createEnemy()",2000);//移动敌人setInterval("moveEnemys()",100);</script>
</body>
</html>

这篇关于Web开发基础:JavaScript飞机大战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136952

相关文章

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c