Цитата:
|
Цитата:
var flower= { init: function(x,y,sprite){ var wind; var pos=0; function animateFlower(){код анимации цветка} var cache_canvas=c.getImageData(x,y,16,16) animateFlower(); wind=setInterval(animateFlower,500) }, clear: function(){ clearInterval(wind); } } Запускаем var rose = flower.init(150, 100,sprite); где 150 - позиция по х, 100 - позиция по y. 1. Что мне нужно написать в коде чтобы считывать позицию по х и y и как будет выглядеть этот вызов? rose.posX? 2. когда чел наступит на цветок - его нужно удалить. для этого я ввел ф-ю clear только непонятно как добраться до ссылки на таймер wind и как ее в этом случае запустить. |
Цитата:
function Flower(x, y) { this.x = x; this.y = y; this.posX = function(){return this.x}; } var rose = new Flower(10, 20); alert(rose.posX()); |
Цитата:
ВО! Переписал. var flower= { init: function(x,y,sprite){ var wind; var pos=0; function animateFlower(){//alert(cache_canvas); c.putImageData(cache_canvas,x,y); var imgFlower=new Image(); imgFlower.src=sprite.spriteimg; c.drawImage(imgFlower,(sprite.flower[0]+pos)*16,sprite.flower[1]*16,16,16,x,y,16,16) pos<3 ? pos++ : pos=0; } this.posX = x; this.posY = y; var cache_canvas=c.getImageData(x,y,16,16) animateFlower(); this.wind=setInterval(animateFlower,500) }, clear: function(){ clearInterval(this.wind); }, } Допустим, хотим несколько цветков: var rose[0] = flower.init(150, 200,sprite); var rose[1] = flower.init(150, 100,sprite); Теперь, как получить позицию скажем rose[1]? |
На что ссылается this в вашем коде?
Попробуйте создать var rose = flower.init(150, 200,sprite) и запросить rose.posX и flower.posX. |
Цитата:
<script> var flower= { init: function(x,y){ var wind; var pos=0; function animateFlower(){ } this.posX = x; this.posY = y; return this; }, clear: function(){ clearInterval(this.wind); } } var rose=new Array(); for(var i = 0; i < 2; i++) { rose.push(flower.init(i*100, i*100)); } alert(rose[0].posX+" "+rose[0].posY+" "+rose[1].posX+" "+rose[1].posY); </script> Непонятно мне, почему возвращаются координаты последнего объекта |
Цитата:
|
беда :( Как же быть то?
|
Можно посмотреть в сторону предложенного мной сначала решения. Или еще такой вариант:
function createObject(x, y) { return {x: x, y: y} } var o = createObject(2,3); var o2 = createObject(7,8); |
Цитата:
У нас есть объект flower, у него есть свойства init (инициализация), posX,posY - его текущие координаты, clear (удаление). Вот с ним и работаем. Никакие непонятные ф-и не нужны :nono: |
Часовой пояс GMT +3, время: 19:06. |