월페이퍼 엔진 스크립트(Button, fade in/out)
19 Dec 2020각종 보드의 핀맵이나 정의들을 항상 찾기 번거로워 배경화면에서 바로 이용할 수 있는 방안을 고민해서 만들어 보았다.
드래그 앤 드랍으로 화면을 구성해준다.
속성창을 통해 스크립트 편집을 할 수 있다.
메인 배경(wallpaper) 스크립트
'use strict';
let timer=0;
shared.work_state=0; //shared=외부 변수 참조
shared.bt_state=0;
/**
* @param {Boolean} value - for property 'visible'
*/
//레이어 메인 반복문
export function update(value) {
switch(shared.bt_state)
{
case 'ardu on':
fade_in("UNO");
fade_in("NANO");
break;
case 'ardu off':
fade_out("UNO");
fade_out("NANO");
break;
default:
console.log('break');
break;
}
return value;
}
//fade in
export function fade_in(value) {
if(thisScene.getLayer(value).alpha<=1) //alpha=투명도
{
timer+= engine.frametime; //월페이퍼 엔진 프레임타임
thisScene.getLayer(value).alpha=timer*0.7;
}
console.log('fade_in'); //콘솔 확인용
console.log(value);
}
//fade out
export function fade_out(value) {
if(thisScene.getLayer(value).alpha>=0)
{
shared.work_state=1;
timer-= engine.frametime;
thisScene.getLayer(value).alpha=timer*0.7;
}
else
{
shared.work_state=0;
shared.bt_state=0;
}
console.log('fade_out');
console.log(value);
}
버튼(arduino_bt) 스크립트
'use strict';
/**
* @param {Boolean} value - for property 'visible'
*/
export function update(value) {
return value;
}
/**
* @param {Boolean} value - for property 'visible'
*/
//레이어 초기화
export function init(value) {
thisScene.getLayer("UNO").alpha=0; //투명도 0
thisScene.getLayer("NANO").alpha=0;
thisScene.getLayer("UNO").visible=true; //보이기 허용
thisScene.getLayer("NANO").visible=true;
return value;
}
/**
* @param {ICursorEvent} event
*/
//레이어 클릭 이벤트 함수
export function cursorClick(event) {
if(shared.work_state==0){
if(shared.bt_state=='ardu on') //외부 변수에 클릭 레이어 저장
shared.bt_state='ardu off';
else if(shared.bt_state==0)
shared.bt_state='ardu on';
console.log("ardu on");
}
}
스크립트 실행