设置变量时破坏游戏代码
Game code breaking when setting variable
这个游戏代码看起来不错,但不起作用:
//Get canvas and context
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
//Capture keypresses
var keys = [];
document.onKeyDown = function (e) {keys[e.keyCode] = true;};
document.onKeyUp = function (e) {keys[e.keyCode] = false;};
//Set game variables
var characters;
characters.charList = [];
var player = {};
//Character constructor
function Character (Name, Strength, Speed, Intelligence, Reflexes, Age, Height, Weight, Weapon, UsesMagic, MagicType, Armor, Hair, Eyes, Skin, Clothes, Species, Type, Accessories) {
this.name = Name;
this.strength = Strength;
this.speed = Speed;
this.intelligence = Intelligence;
this.reflexes = Reflexes;
this.age = Age;
this.height = Height;
this.weight = Weight;
this.weapon = Weapon;
this.usesMagic = UsesMagic;
this.magicType = MagicType;
this.armor = Armor;
this.hair = Hair;
this.eyes = Eyes;
this.skin = Skin;
this.clothes = Clothes;
this.species = Species;
this.type = Type;
if (Accessories) {
this.accessories = Accessories;
}
characters.charList[characters.charList.length] = Name;
}
characters.Xantar = new Character('Xantar', 1, 1, 1, 1, 1, 1, 1, 'sword', true, 'derp', [], 'hair is brown'?', 'duh', 'foo', [], 'animale', 'wolf', []);
alert(characters.Xantar.weapon + ' ' + characters[0].type);
//Activate mainloop and get value for pausing purposes
var mainloopInterval = setInterval(mainloop, 5);
//Main game loop
function mainloop(){
}
程序似乎停止在:
characters.charList = [];
我根本看不出这里有什么问题。以下是相关的HTML:
<canvas id='canvas' style='border:1px solid black;'>Your browser does not support canvas. Please update your browser.</canvas>
注意:我在JSFiddle上运行这个。如果有人能在这里帮助我,我将不胜感激。以下是链接:https://jsfiddle.net/q6vdph1p/14/.
需要将其设置为对象var characters = {};
- 变量"character"必须是一个对象。
var characters = {};
- charList不应该用"var"关键字初始化,因为它不是一个新变量,所以它只是
characters.charList = [];
- 第42行不是
characters[0].type
,而是characters.Xantar.type
JSFiddle
如前所述,您需要将一个对象分配给characters
变量,然后才能访问其中的属性。
仅仅用var characters;
声明它就会给它分配undefined
的值,尝试访问undefined.charList
并给它分配一个空数组将失败。
一种更合适、更抗故障、更可读的声明方式是构建空数据结构,如下所示:
var characters = {
charList: []
};
此外,使用array.push()
添加到数组末尾比使用array.length
索引(即)更安全
characters.charList.push(Name);
而不是
characters.charList[characters.charList.length] = Name;
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 如何将函数包装在函数中以避免代码重复
- 设置变量时破坏游戏代码
- JavaScript游戏引擎——编辑器中的代码运行:)检查器中的错误
- HTML5/JavaScript游戏-编辑JS代码以更改AJAX请求
- 使用 IIFE 进行游戏开发 - 代码分离
- 基本程序的JavaScript代码错误(猜谜游戏)
- 用于选择随机数游戏的 JavaScript 代码不起作用
- HTML代码允许用户一键加入特定的游戏服务器
- Javascript游戏代码运行非常慢
- 我的X O游戏JQuery代码在处理innerhtml时遇到了一些问题
- 手机游戏的拖放代码
- 是否可以向用户隐藏基于网络的游戏jQuery代码
- Javascript岩石,纸,剪刀游戏.我的代码出了什么问题
- 什么是c99.游戏意味着在这个javascript代码
- 我的Html 5 Javascript Canvas游戏代码有什么问题?我是初学者
- 在这段代码中,1/cos(x)对于一款3d画布游戏有何意义?
- 在这段代码中,我如何为游戏(tsc)等于非最终版本时制作另一个脚本;不显示那些游戏吗
- PHP 变量,用于游戏的 Javascript 代码中