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 相关文章推荐
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
JS实现的生成随机数的4个函数分享
Feb 11 Javascript
javascript函数自动执行常用方法汇总
Mar 28 Javascript
js判断空对象的实例(超简单)
Jul 26 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
Sep 30 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
使用React代码动态生成栅格布局的方法
May 24 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 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自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
jquery如何获取复选框的值
2013/12/12 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
vue实现分页栏效果
2019/06/28 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
React实现轮播效果
2020/08/25 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
python通过yield实现数组全排列的方法
2015/03/18 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
TensorFlow的权值更新方法
2018/06/14 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
python批量修改xml属性的实现方式
2020/03/05 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
英文版银行求职信
2013/10/09 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
党委领导班子整改方案
2014/09/30 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2014年老干部工作总结
2014/11/21 职场文书
公务员年终个人总结
2015/02/12 职场文书
详解JAVA的控制语句
2021/11/11 Java/Android
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
Java异常体系非正常停止和分类
2022/06/14 Java/Android