Page 1 of 1

Reseting position of entities

PostPosted: Thu Jan 08, 2015 11:42 pm
by Killersan
Hello guys,

During our project we faced problem but first things first.

1. What we want to achieve:
Dragable window with button and empty space for element which will appear after click on the button.

2. We built test lab with dragable window (You can drag the window by clicking on the red header) and button (blue element), but after we move this window in any other not default position and clicked the button, new element appeared (green one) but the position of dragable window was reseted to it's default values. Is it a good behaviour or is it some kind of bug ?

3. Here is sample of code which You can use to see the problem live (below is client.js file).
Code: Select all
var Client = IgeClass.extend({
   classId: 'Client',
   init: function () {
      ige.showStats(1);
      // Load our textures
      var self = this;
      this.gameTextures = {};
         // Create the HTML canvas
         ige.createFrontBuffer(true);

         // Start the engine
         ige.start(function (success) {
            // Check if the engine started successfully
            if (success) {
               // Add base scene data
            //   ige.addGraph('mainScene');

                    self.mainScene = new IgeScene2d()
                        .id('mainScene')
                        .translateTo(0, 0, 0)
                        .drawBounds(false)
                        .drawBoundsData(false);
                    self.vp1 = new IgeViewport()
                        .depth(1002)
                        .autoSize(true)
                        .scene(self.mainScene)
                        .drawBoundsData(true)
                        .mount(ige);
                    self.uiScene = new IgeScene2d()
                        .id('uiScene')
                        .depth(100)
                        .ignoreCamera(true)
                        .drawBounds(false)
                        .drawBoundsData(false)
                        .mount(self.mainScene)
                        .mouseMove(function(e){
                             var a = ige.client.data('Drag');
                            var b = ige.client.data('DragP');
                            if (ige.client.data('mDown')==!0 && a!=undefined && a!=null){
                                ige.$(a).translateTo(e.igeBaseX- b.x, e.igeBaseY - b.y, 0);
                            }
                        });
                    self._obj = new IgeUiEntity()
                        .center(0)
                        .width(300)
                        .height(200)
                        .backgroundColor('#37352e')
                        .mount(ige.$('uiScene')) ;
                    self._obj_1 = new IgeUiEntity()
                        .top(0)
                        .width(300)
                        .height(10)
                        .backgroundColor('#ff0000')
                        .mount(self._obj)
                        .mouseDown(function (e) {
                            ige.input.stopPropagation();
                            console.log('mouse down action on BP cn');
                            ige.client.data('mDown',!0);
                            ige.client.data('Drag',this._parent.id());
                            ige.client.data('DragP',this._parent.mousePosAbsolute());
                        })
                        .mouseUp(function () {
                            ige.input.stopPropagation();
                            console.log('mouse up action on BP cn');
                            ige.client.data('mDown',!1);
                            ige.client.data('Drag',null);
                            ige.client.data('DragP',null);
                        });
                    self._obj_2 = new IgeUiEntity()
                        .top(50)
                        .left(50)
                        .width(30)
                        .height(20)
                        .backgroundColor('#0000ff')
                        .mount(self._obj)
                        .mouseUp(function () {
                            ige.input.stopPropagation();
                            ige.client.data('obj',new IgeUiEntity().width(100).height(100).backgroundColor('#00ff00').mount(self.uiScene));
                        });
                    // CREATE SOME ENTITIES AND WHOTNOT HERE
            }
         });
   }
});

if (typeof(module) !== 'undefined' && typeof(module.exports) !== 'undefined') { module.exports = Client; }


Update: It seems that only horizontaly alignment is reseted, vertical stays after window is moved so I think that this is wrong behaviour.
The problem was solved by removing this (.center(0)) parameter from entity, but still I think that entity shouldn't restore it's parameters after mouse event triggered.