Posted By: Aku_Aku
Latency of value assignment in loop with wait - 09/26/16 17:45
I tried to make a code that is able to move a panel with mouse drag.
I was surprised when turned out there is a latency of value assignment in loop with wait.
Here is a sample code:
The content of the old_x and the old_y variables will be changed after 15-30 frames. It is strange.
I read the wait documentation, but i can't find out why the heck is working this way..
What is the reason? What should be the solution?
What a pity, lite-c has no option to declare volatile variables.
I was surprised when turned out there is a latency of value assignment in loop with wait.
Here is a sample code:
Code:
function drag_panel(PANEL* inPanel) { int old_x; int old_y; int dif_x, dif_y; diag("\ndrag_panel"); old_x = mouse_cursor.x; old_y = mouse_cursor.y; while(mouse_left) { diag_var("\nold_x:%4.0f", old_x); diag_var("\nold_y:%4.0f", old_y); dif_x = mouse_cursor.x - old_x; dif_y = mouse_cursor.y - old_y; if(0 != dif_x || 0 != dif_y) { old_x = mouse_cursor.x; old_y = mouse_cursor.y; diag_var("\nmouse_pos.x:%4.0f", mouse_cursor.x); diag_var("\nmouse_pos.y:%4.0f", mouse_cursor.y); inPanel.pos_x += dif_x; inPanel.pos_y += dif_y; diag_var("\nnew old_x:%4.0f", old_x); diag_var("\nnew old_y:%4.0f", old_y); } wait(1); } }
The content of the old_x and the old_y variables will be changed after 15-30 frames. It is strange.
I read the wait documentation, but i can't find out why the heck is working this way..
What is the reason? What should be the solution?
What a pity, lite-c has no option to declare volatile variables.