Reseting position of entities

Post your help queries and engine programming questions here

Reseting position of entities

Postby Killersan » Thu Jan 08, 2015 11:42 pm

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.
User avatar
Killersan
 
Posts: 24
Joined: Sat Jun 21, 2014 1:45 pm

Return to Help & Questions

Who is online

Users browsing this forum: No registered users and 1 guest
cron