Search the Community
Showing results for tags 'touchmove'.
-
I've been working on the old pandajs bloks example, someone spotted a potential bug on mobile a while back ( http://www.html5gamedevs.com/topic/3851-pandajs-bloks/ ) and I'm not sure if its been resolved. The live demo works fine on mobile, but when I downloaded the source from github and checked it on mobile it no longer worked, I cant seem to spot the difference between the live version ond the github code. I have managed to narrow the problem down somewhat. In the objects.js file on line 50: was: this.sprite.mouseover = this.touchmove.bind(this); which I changed to: this.sprite.mouseover = this.sprite.touchmove = this.touchmove.bind(this); (now the sprite.touchmove function receives an event on touchmove...) then on line 108: I added console.log(this.pos); this showed the problem to be that on desktop, the mouseover event is called for the sprite that is moused-over, but on mobile the touchmove event only references the first block, that is touched, so only the touchstart block. I cant find a way to get that touchmove event to be called for each sprite that is moved over... I am a serious beginner at pandajs and game dev in general but I would really appreciate it if anyone could help out... I'm sure its something simple. The only file I've modified from the github repo is the objects.js file and I've attached it to this post. Thanks in advance. objects.txt
-
I have an object that contains a Sprite and I set that sprite to be interactive and set all the interaction callbacks however when I add a few of them to my scene I must touch the last added one before the other's will send the touchmove event (touchstart, and touched are still being called). The mouse events are called fine when played in a browser, this issue arises when I play on my iOS devices. MySprite NameSpace.MySprite = function(){ this.selected = this.selected.bind(this); this.dragged = this.dragged.bind(this); this.deselected = this.deselected.bind(this); this.sprite = PIXI.Sprite.fromFrame("sprite01.png"); this.sprite.interactive = true; this.sprite.mousedown = this.sprite.touchstart = this.selected; this.sprite.mousemove = this.sprite.touchmove = this.dragged; this.sprite.mouseup = this.sprite.mouseupoutside = this.sprite.touchendoutside = this.sprite.touchend = this.deselected;}NameSpace.MySprite.prototype.constructor = NameSpace.MySprite;NameSpace.MySprite.prototype.selected = function(data){ this.data = data; this.dragging = true;};NameSpace.MySprite.prototype.dragged = function(){ if(this.dragging) { this.destinationX = this.data.getLocalPosition(this.container).x; }};NameSpace.MySprite.prototype.deselected = function(){ this.destinationX = this.sprite.position.x; this.dragging = false; this.data = null;};Create MySprites this.sprites = [];var sprite = null;for(var i = 0, spriteCount = 5; i < spriteCount; i++){ sprite = new NameSpace.MySprite(); this.sprites.push(sprite);}