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 相关文章推荐
jquery下操作HTML控件的实现代码
Jan 12 Javascript
Javascript获取表单名称(name)的方法
Apr 02 Javascript
jquery中trigger()无法触发hover事件的解决方法
May 07 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
May 24 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
AngularJS使用拦截器实现的loading功能完整实例
May 17 Javascript
JavaScript文件的同步和异步加载的实现代码
Aug 19 Javascript
如何解决vue在ios微信"复制链接"功能问题
Mar 26 Javascript
Vue的props父传子的示例代码
May 20 Javascript
DWR内存兼容及无法调用问题解决方案
Oct 16 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
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
javascript页面上使用动态时间具体实现
2014/03/18 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
详解JavaScript的BUG和错误
2018/05/07 Javascript
基于layui数据表格以及传数据的方式
2018/08/19 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
优秀干部获奖感言
2014/01/31 职场文书
党员教师一句话承诺
2014/05/30 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技