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 相关文章推荐
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
js实现仿百度瀑布流的方法
Feb 05 Javascript
Javascript常用小技巧汇总
Jun 24 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
Sep 28 Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 Javascript
jQuery插件zTree实现删除树节点的方法示例
Mar 08 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 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之Smarty入门
2007/01/04 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
教大家制作简单的php日历
2015/11/17 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
nodejs基础应用
2017/02/03 NodeJs
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
vue实现信息管理系统
2020/05/30 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
django缓存配置的几种方法详解
2018/07/16 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
python/golang 删除链表中的元素
2020/09/14 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
css3闪亮进度条效果实现思路及代码
2013/04/17 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
STP的判定过程
2012/10/01 面试题
小区门卫岗位职责
2013/12/31 职场文书
法律进机关实施方案
2014/03/12 职场文书
幼儿园新年寄语
2014/04/03 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
博士生专家推荐信
2015/03/25 职场文书
放假通知
2015/04/14 职场文书
黑白记忆观后感
2015/06/18 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript
React四级菜单的实现
2022/04/08 Javascript
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis