package org.tjuscs.bulletgame.model;
import java.util.HashMap;
import java.util.Map;
import org.tjuscs.bulletgame.task.Task;
import org.tjuscs.bulletgame.task.TaskList;
import org.tjuscs.bulletgame.util.GameUtil;
import org.tjuscs.bulletgame.view.component.Renderer;
/***********************************************************************
* Module: Background.java
* Author: Administrator
* Purpose: Defines the Class Background
***********************************************************************/
/**
* 背景
*
* @pdOid 7c0da75d-2f5b-45ea-b580-0859944e9f1a
*/
public class Background extends BaseObject {
private double alpha;
private Task initTask, frameTask, renderTask;
private Map<String, Object> data = new HashMap<String, Object>();
public Task getFrameTask() {
return frameTask;
}
public void setFrameTask(Task frameTask) {
this.frameTask = frameTask;
}
public Background(boolean isScBg, String scriptPath) {
super();
TaskList tl = TaskList.readScript(scriptPath);
tl.setBinding("data", data);
tl.setBinding("bg", this);
initTask = tl.get("init");
frameTask = tl.get("frame");
renderTask = tl.get("render");
this.init(isScBg);
initTask.act();
initTask.reset();
}
/**
* 符卡背景初始透明
*
* @param isScBg
*/
public void init(boolean isScBg) {
this.setGroup(GameUtil.GROUP_GHOST);
if (isScBg) {
setLayer(GameUtil.LAYER_BG);
setAlpha(0);
} else {
setLayer(GameUtil.LAYER_BG - 0.1);
setAlpha(1);
}
}
@Override
public void frame() {
setTimer(getTimer() + 1);
frameTask.act();
frameTask.reset();
}
@Override
public void render() {
Renderer.getInstance().setMode(Renderer.MODE_3D);
renderTask.act();
renderTask.reset();
Renderer.getInstance().setMode(Renderer.MODE_2D);
}
public double getAlpha() {
return alpha;
}
public void setAlpha(double alpha) {
this.alpha = alpha;
}
}