javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来


Posted in Javascript onJanuary 23, 2013

首先来说,让一个游戏赋有可玩性必须要动静结合。(哈哈,大家以为我要讲作文了。。。但其实我今天要讲的是Javascript)静态的东西谁不会做呢?因为东西一生下来就是静态的(除非你是用的gif动画),所以不需要任何处理就能完成静态。那么我将要在下面告诉大家如何运用Javascript将静态图片变为动态图片。

一、图片准备

javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来  javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来 javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来 javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来fight01.pngfight02.pngfight03.pngfight04.png03.png02.png01.png首先,我找了一些出自经典游戏《三国志曹操传》里的素材(这些是魏将庞德的图片)。在下面我要用这些静态图片来演示如何化静为动。如果自己要演示代码,请把以上的图片下载下来,图片名为图片对应下面那一栏。

二、代码讲解

先看以下javascript代码:
var picSub = 0; var time = 150; //时间间隔(毫秒) 
var pic1 = "./01.png"; 
var pic2 = "./02.png"; 
var pic3 = "./03.png"; 
var pic4 = "./01.png"; 
var picArr = [pic1, pic2, pic3, pic4]; //定义数组,并将图片的位置所对应的变量放入其中 
setInterval(changeImg, time); //使图片按一定时间切换 
function changeImg() 
{ 
var xElem = document.getElementById("ID_IMG_ROLE"); 
if(picSub == picArr.length-1){ 
picSub = 0; 
}else{ 
picSub += 1; 
} //判断是否超出数组长度,若超出,便使数组下标归0,使其不超出 
xElem.src = picArr[picSub]; //切换图片 
} 
function changeFight() 
{ 
pic1 = "./fight01.png"; 
pic2 = "./fight02.png"; 
pic3 = "./fight03.png"; 
pic4 = "./fight04.png"; 
picArr = [pic1, pic2, pic3, pic4]; 
setTimeout(reduction, 600); 
} 
function reduction() 
{ 
pic1 = "./01.png"; 
pic2 = "./02.png"; 
pic3 = "./03.png"; 
pic4 = "./01.png"; 
picArr = [pic1, pic2, pic3, pic4]; 
}

这些代码用到了我最爱的数组,当然,这里的数组也是整个程序的核心。以下是我一字一句的讲解:
var pic1 = "./01.png"; 
var pic2 = "./02.png"; 
var pic3 = "./03.png"; 
var pic4 = "./01.png"; 
var picArr = [pic1, pic2, pic3, pic4]; //定义数组,并将图片的位置所对应的变量放入其中

首先在数组里我放了几个图片的位置所对应的变量。以便用于以下操作。
再看代码:
var xElem = document.getElementById("ID_IMG_ROLE"); if(picSub == picArr.length-1){ 
picSub = 0; 
}else{ 
picSub += 1; 
} //判断是否超出数组长度,若超出,便使数组下标归0,使其不超出 
xElem.src = picArr[picSub]; //切换图片

这里用if...else语句判断数组下标是否超出数组长度,超出则让下标归0。然后取出下标在数组里对应的图片位置并赋给带有id属性为ID_IMG_ROLE的img标签里的src属性。这样就可以让图片不停的变化了。因此在这时只要给他一个函数调用的地方就能大功告成!为了让图片显示不是一瞬间的事,我们要给它一个等待秒数,等待完了再显现下一张图。因此我用了以下代码进行函数调用:
var time = 150; //时间间隔(毫秒) 
setInterval(changeImg, time); //使图片按一定时间切换

这样就能使图片动起来了。我在这里还添了一个功能:当你在绿色边框里按下鼠标左键时,里面的人物会进行攻击,原理也很简单,大家慢慢研究吧!
为了大家测试方便,我把包括html的所有代码放在下面供大家下载:

我提供下载代码: 
三、演示效果

先开始是:

javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来

然后是:

javascript游戏开发之《三国志曹操传》零部件开发(一)让静态人物动起来

演示位置:
四、后记

看完这一篇文章大家一定对Javascript做动态的人物有了初步的了解吧。
以后大家可以尽情发挥自己的想象,运用这种方法作出漂亮的动态游戏。
当然,程序的奥秘不只这些,摸透它也不简单呀!以后我会给大家讲讲其他的Javascript游戏开发技术。希望大家喜欢。

Javascript 相关文章推荐
关于IE7 IE8弹出窗口顶上
Dec 22 Javascript
event对象的方法 兼容多浏览器
Jun 27 Javascript
JavaScript代码生成PDF文件的方法
Feb 26 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
Sep 14 Javascript
javascript加载xml 并解析各节点的值(实现方法)
Oct 12 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
jQuery pjax 应用简单示例
Sep 20 jQuery
javascript json字符串到json对象转义问题
Jan 22 Javascript
用VsCode编辑TypeScript的实现方法
May 07 Javascript
uni-app使用微信小程序云函数的步骤示例
May 22 Javascript
canvas绘制折线路径动画实现
May 12 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
Jan 23 #Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
Jan 23 #Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 #Javascript
jquery简单瀑布流实现原理及ie8下测试代码
Jan 23 #Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
Jan 23 #Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 #Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
Jan 23 #Javascript
You might like
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
利用javascript查看html源文件
2006/11/08 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
Python自动发送邮件的方法实例总结
2018/12/08 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python__new__内置静态方法使用解析
2020/01/07 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
求职自荐信格式
2013/12/04 职场文书
高中毕业自我评价
2014/02/08 职场文书
就业协议书的作用
2014/04/11 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
幼师自荐信范文
2015/03/06 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
2022微信温控新功能上线
2022/05/09 数码科技