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