圖形循環(huán)往復移動的問題
劉玉蓉
發(fā)布于2014-10-17 16:52
93
0
標簽:
想做一個皮帶機運行時的動態(tài)效果,在一個矩形里面等距離放了一些小矩形,把這些小矩形合成一個組,讓這個組往右移動5次后返回原地,這樣循環(huán)形成一個動態(tài)的效果。我在全局腳本里面編了一下,可是發(fā)現(xiàn)激活項目的時候,動態(tài)效果什么的都正常,如果在圖形編輯器界面再次點激活按鈕,運行畫面中的小矩形組就錯位了。譬如小矩形組靜態(tài)X坐標是100,我讓他每250ms,X軸的坐標加5,移動5次后回到坐標100,可是在圖形編輯器界面再次點激活按鈕,運行畫面中的小矩形組的X軸坐標會錯位到100以前,不知道為什么?我對C動作不熟悉,請指教,全局腳本如下(其中的一條皮帶機):
long a; //PL-1皮帶X軸坐標
static int a1;
BOOL a2;
a2=GetTagBit("temp_1"); //temp_1皮帶機運行反饋信號
if(a2==1)
{
a=GetLeft("主畫面.pdl","組8"); //組8就是要循環(huán)移動的小矩形組
if(a1<5)
{a=a+5;a1=a1+1;}
else
{a=a-25;a1=0;}
SetLeft("主畫面.pdl","組8",a);
}
問題補充:
在激活狀態(tài)下點激活,怎樣才能讓我的計數(shù)器a1清零呢?
或者還有其他更好的辦法實現(xiàn)這個動態(tài)嗎?下面是我用另一種方法實現(xiàn)的,不會出現(xiàn)錯位的情況,但是需要一個參照物。
long a; //PL-1
long a1;
a=GetLeft("主畫面.pdl","組8"); //Return-Type: long int
a1=GetLeft("環(huán)燒主畫面20.pdl","矩形121"); //我把這個固定的矩形當參照物
if (a<a1-10+25)
a=a+5;
else
a=a1-10; //小矩形組的起始位置在參照物矩形的左邊10的位置
SetLeft("環(huán)燒主畫面20.pdl","組8",a);
佳答案
因為每次激活的時候都是讀a1和小矩形組靜態(tài)X坐標值。問題出在從新激活時的小矩形組靜態(tài)X坐標值是固定的(100),但是 a1值不一定是0,因此矩形不一定移動5次,所以在減去-25后矩形組的X軸坐標會錯位到100以前。
如果每次直接激活的話出現(xiàn)你說的問題,如果取消激活后再次激活的話不會出現(xiàn)上述問題。