Estou testando um código e não parece funcionar. Alguém pode me dizer o que estou perdendo aqui, desde já agradeço!
javascript
var entity = function (type, w, h, c, kickSpeed, accuracy, power) {
var entity = {};
entity.type = type;
entity.appearance = {
w : w,
h : h,
c : c
};
entity.attribute = {
kickSpeed : kickSpeed,
accuracy : accuracy,
power : power
};
return entity;
};
var spawnPlayer = function () {
var player = {};
entity("player", 50, 50, "green", 10, 1, 10);
entity = player;
ctx.fillRect(1, 1, player.appearance.w, player.appearance.h);
};
spawnPlayer();
O problema neste código é que ele não consegue encontrar o objeto player.appearance.
Você não está atribuindo a função de entidade que está retornando o valor à variável do player, portanto, nunca é definido. Você deve ler sobre escopos variáveis .
var entity = function (type, w, h, c, kickSpeed, accuracy, power) {
var entity = {};
entity.type = type;
entity.appearance = {
w : w,
h : h,
c : c
};
entity.attribute = {
kickSpeed : kickSpeed,
accuracy : accuracy,
power : power
};
return entity;
};
var spawnPlayer = function () {
var player = entity("player", 50, 50, "green", 10, 1, 10);
ctx.fillRect(1, 1, player.appearance.w, player.appearance.h);
};
spawnPlayer();
Aqui está o JSfiddle, com um alerta para mostrar seu funcionamento.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras