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 相关文章推荐
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
Dec 07 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
浅谈js和css内联外联注意事项
Jun 30 Javascript
javascript 开发之百度地图使用到的js函数整理
May 19 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
Jan 16 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
Layui表格行工具事件与数据回填方法
Sep 13 Javascript
编写一个javascript元循环求值器的方法
Apr 14 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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
php 中的str_replace 函数总结
2007/04/27 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
2009/03/24 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
Windows下python2.7.8安装图文教程
2016/05/26 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
python程序变成软件的实操方法
2019/06/24 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
军训自我鉴定
2014/01/22 职场文书
高中生职业规划范文
2014/03/09 职场文书
个人委托书格式
2014/04/04 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
歌舞青春观后感
2015/06/10 职场文书
心术观后感
2015/06/11 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers