Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 制作显示敌人的下一个和上一个按钮';名称和生命值,但隐藏伤害_Javascript_Html - Fatal编程技术网

Javascript 制作显示敌人的下一个和上一个按钮';名称和生命值,但隐藏伤害

Javascript 制作显示敌人的下一个和上一个按钮';名称和生命值,但隐藏伤害,javascript,html,Javascript,Html,我是js中数组的新手。我认为我的代码很好。这是我的编辑。这就是我试图让它发挥作用的例子。因此,基本上它应该滚动通过敌人和hp,而不是损害。然后,应该在索引0处禁用上一个,在最大值处禁用下一个 我尝试了第一个JSFIDLE链接,但结果并不是我想要的那样 Js/html代码: <button id="previous">&#8249;</button> <span id="enemyName"></span> <span id="enem

我是js中数组的新手。我认为我的代码很好。这是我的编辑。这就是我试图让它发挥作用的例子。因此,基本上它应该滚动通过敌人和hp,而不是损害。然后,应该在索引0处禁用上一个,在最大值处禁用下一个

我尝试了第一个JSFIDLE链接,但结果并不是我想要的那样

Js/html代码:

<button id="previous">&#8249;</button>
<span id="enemyName"></span> <span id="enemyHp"></span>
    <button id="next">&#8250;</button>
<script type="text/javascript"> 
 function show() { 
      var item = enemyName[currentItemIndex];

document.getElementById("enemy").innerHTML=item.itemId+":"+item.itemName
      document.getElementById("previous").disabled=currentItemIndex<=0;


 document.getElementById("next").disabled=currentItemIndex>=enemyName.length-1;

    }

var enemyName = ["rat","slime","goblin","skeleton","zombie","succubus"]
var enemyHp = [10,20,25,50,75,100]
var enemyStrength = [1,3,5,10,15,25]

var currentItemIndex = 0;




window.onload=function() {
  document.getElementById("previous").onclick=function() {
    currentItemIndex--;
    if (currentItemIndex<=0) {
      currentItemIndex=0;
    }
    show();       
  }
  document.getElementById("next").onclick=function() {
    currentItemIndex++;
    if (currentItemIndex>=enemyName.length-1) {
      currentItemIndex=enemyName.length-1;
    }
    show();       
  }
  for(i=0;i<10;i++) {
    var ItemCatalog = new Object();
    ItemCatalog.itemId = i;
    ItemCatalog.itemName = "a"+i;
    enemyName.push(ItemCatalog);
  }
  show();
}
‹;
›
函数show(){
var item=enemyName[currentItemIndex];
document.getElementById(“敌人”).innerHTML=item.itemId+“:”+item.itemName
document.getElementById(“previous”).disabled=currentItemIndex=enemyName.length-1;
}
var enemyName=[“老鼠”、“粘液”、“地精”、“骷髅”、“僵尸”、“妖精”]
var enemyHp=[10,20,25,50,75100]
var enemyStrength=[1,3,5,10,15,25]
var currentItemIndex=0;
window.onload=function(){
document.getElementById(“previous”).onclick=function(){
当前项目索引--;
if(currentItemIndex=enemyName.length-1){
currentItemIndex=enemyName.length-1;
}
show();
}
对于(i=0;i回答:
  • 创建一个构造函数来创建一个滚动条
  • 创建一个名为敌人卷轴的构造函数,该构造函数扩展了卷轴
  • 从你的多个阵列中创建一个敌人对象列表
  • 将敌人列表、上一个按钮和下一个按钮应用于敌人滚动条
注意:单击“显示代码段”查看工作示例
//合并我们所有的敌人阵列
函数CreateEneyList(EneyStats){
//敌人的建造师
功能敌人(obj){
this.name=obj.name;
this.hp=obj.hp;
此强度=目标强度;
归还这个;
}
var=[];
for(让我输入enemyStats.name){
//创建一个敌人并添加到列表中
敌人。推(新敌人)({
name:enemyStats.name[i],
hp:enemyStats.hp[i],
力量:敌人。力量[i]
}));
}
//返回一个敌人列表
还敌;
}
//创建一个基本的滚动条构造函数
函数滚动条(数组){
var scope_this=此;
this.data=数组;
此.currentIndex=0;
//设置禁用下一步的索引限制
this.indexLimit=array.length-1;
//如果索引处于极限,则设置我们的标志
this.prevLimit=false;
this.nextLimit=false
//“下一步”功能
//关闭限制标志
//如果我们低于极限,增加指数
//返回数据
this.next=函数(){
this.prevLimit=false;
if(this.currentIndex0){
--这是当前的指数;
if(this.currentIndex==0){
this.prevLimit=true;
}
}
返回此.data[this.currentIndex];
}
//我们声明要保存的对象
//我们的按钮元素(上一个、下一个)
//我们的输出元素(hp、名称等)
this.buttons={};
this.outputs={};
//指定一个元素作为上一个按钮
this.prevBtn=函数(ele){
this.buttons.prev=ele;
ele.addEventListener(“单击”,函数(){
scope_this.output(scope_this.prev());
scope_this.btnCheck();
});
}
//指定一个元素作为“下一步”按钮
this.nextBtn=函数(ele){
this.buttons.next=ele;
ele.addEventListener(“单击”,函数(){
scope_this.output(scope_this.next());
scope_this.btnCheck();
});
};
//用于检查按钮是否应禁用的功能
//如果处于下一个限制,则应禁用“下一步”按钮
//如果处于prev限制,则应禁用“prev”按钮
this.btnCheck=函数(){
if(this.buttons.next){
this.buttons.next.disabled=this.nextLimit;
}
if(this.buttons.prev){
this.buttons.prev.disabled=this.prevLimit;
} 
}
//函数输出当前数据
//我们的输出元素
//如果我们的数据中存在属性
//(名称、马力、强度)
//我们检查是否有它的输出元素。
//如果我们这样做,我们将数据输出到该元素。
this.output=函数(obj){
如果(这是输出){
用于(让道具插入obj){
if(此.outputs[prop]){
this.outputs[prop].textContent=obj[prop];
}
}
}
}
//将元素设置为属性的输出
this.setOutput=函数(名称,ele){
如果(!name | | typeof name!=“string”| |!ele){
抛出错误(“setOutput需要一个名称和元素作为参数”);
}
this.outputs[name]=ele;
}
//安装时,调用init加载第一个索引
this.init=函数(){
this.output(this.prev());
}
归还这个;
}
//定义一个专门针对敌人的扩展滚动条
函数EnemyScroller(数组、上一个、下一个){
//创建一个新的滚动条
//分配下一个和上一个按钮
让父对象=新滚动条(数组);
parent.nextBtn(下一个);
parent.prevBtn(prev);
//用于设置输出的辅助函数
函数enemyStat(stat){
父.setOutput(stat,document.querySelector(“output#敌方+stat));
}
//设置“hp”和“名称”的输出
enemyStat(“hp”);
敌人状态(“名称”);
返回父母;
}
//合并所有敌人的统计数据
var=createneMyList({
名称:[“老鼠”、“粘液”、“地精”、“骷髅”、“僵尸”、“妖精”],
惠普:[10,20,25,50,100,125],
力量:[1,3,5,10,15,25]
});
//定义上一个和下一个按钮
变量按钮={
next:document.querySelector(“#next”),
prev:document.querySelector(“prev”)
}
//创建一个敌人卷轴
让es=EneyScroller(敌人,buttons.prev,buttons.next);
//装载第一个敌人
es.init();
#敌人统计数据{