mirror of
https://github.com/RandomityGuy/MBHaxe.git
synced 2026-04-22 02:32:01 +00:00
complete helpcreditsgui, fix few bugs relating to object previews
This commit is contained in:
parent
677ad3b887
commit
1b34bcf7f9
8 changed files with 340 additions and 0 deletions
BIN
marblegame.hl
BIN
marblegame.hl
Binary file not shown.
|
|
@ -287,6 +287,29 @@ class DtsObject extends GameObject {
|
|||
}
|
||||
}
|
||||
|
||||
if (!this.isInstanced) {
|
||||
for (i in 0...this.materials.length) {
|
||||
var info = this.materialInfos.get(this.materials[i]);
|
||||
if (info == null)
|
||||
continue;
|
||||
|
||||
var iflSequence = this.dts.sequences.filter(seq -> seq.iflMatters.length > 0 ? seq.iflMatters[0] > 0 : false);
|
||||
if (iflSequence.length == 0)
|
||||
continue;
|
||||
|
||||
var completion = 0 / (iflSequence[0].duration);
|
||||
var keyframe = Math.floor(completion * info.length) % info.length;
|
||||
var currentFile = info[keyframe];
|
||||
var texture = ResourceLoader.getTexture(this.directoryPath + '/' + currentFile);
|
||||
|
||||
var flags = this.dts.matFlags[i];
|
||||
if (flags & 1 > 0 || flags & 2 > 0)
|
||||
texture.wrap = Wrap.Repeat;
|
||||
|
||||
this.materials[i].texture = texture;
|
||||
}
|
||||
}
|
||||
|
||||
rootObject = new Object(this);
|
||||
|
||||
for (i in rootNodesIdx) {
|
||||
|
|
|
|||
|
|
@ -93,5 +93,6 @@ class MarbleGame {
|
|||
public function render(e:h3d.Engine) {
|
||||
if (world != null && !world._disposed)
|
||||
world.render(e);
|
||||
canvas.renderEngine(e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,4 +49,10 @@ class Canvas extends GuiControl {
|
|||
children[children.length - 1].update(dt, mouseState);
|
||||
}
|
||||
}
|
||||
|
||||
public override function renderEngine(e:h3d.Engine) {
|
||||
if (children.length > 0) {
|
||||
children[children.length - 1].renderEngine(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -196,4 +196,10 @@ class GuiControl {
|
|||
c.onRemove();
|
||||
}
|
||||
}
|
||||
|
||||
public function renderEngine(engine:h3d.Engine) {
|
||||
for (c in this.children) {
|
||||
c.renderEngine(engine);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
90
src/gui/GuiObjectShow.hx
Normal file
90
src/gui/GuiObjectShow.hx
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
package gui;
|
||||
|
||||
import src.TimeState;
|
||||
import gui.GuiControl.MouseState;
|
||||
import h3d.Vector;
|
||||
import h2d.Tile;
|
||||
import h3d.mat.DepthBuffer;
|
||||
import h2d.Scene;
|
||||
import h2d.Bitmap;
|
||||
import h3d.mat.Texture;
|
||||
import src.ResourceLoader;
|
||||
import src.DtsObject;
|
||||
|
||||
class GuiObjectShow extends GuiControl {
|
||||
var scene:h3d.scene.Scene;
|
||||
var sceneTarget:Texture;
|
||||
|
||||
public var sceneObject:DtsObject;
|
||||
public var renderDistance:Float = 3;
|
||||
public var renderPitch:Float = 0;
|
||||
public var visible:Bool;
|
||||
|
||||
var sceneBitmap:Bitmap;
|
||||
var _initialized:Bool = false;
|
||||
|
||||
var timeState = new TimeState();
|
||||
|
||||
public function new() {
|
||||
super();
|
||||
scene = new h3d.scene.Scene();
|
||||
timeState.currentAttemptTime = 0;
|
||||
timeState.dt = 0;
|
||||
timeState.gameplayClock = 0;
|
||||
timeState.timeSinceLoad = 0;
|
||||
}
|
||||
|
||||
public override function render(scene2d:Scene) {
|
||||
var renderRect = getRenderRectangle();
|
||||
init(renderRect);
|
||||
if (scene2d.contains(sceneBitmap))
|
||||
scene2d.removeChild(sceneBitmap);
|
||||
if (visible)
|
||||
scene2d.addChild(sceneBitmap);
|
||||
sceneBitmap.x = renderRect.position.x;
|
||||
sceneBitmap.y = renderRect.position.y;
|
||||
sceneBitmap.width = renderRect.extent.x;
|
||||
sceneBitmap.height = renderRect.extent.y;
|
||||
super.render(scene2d);
|
||||
}
|
||||
|
||||
public override function update(dt:Float, mouseState:MouseState) {
|
||||
super.update(dt, mouseState);
|
||||
timeState.currentAttemptTime += dt;
|
||||
timeState.timeSinceLoad += dt;
|
||||
timeState.dt = dt;
|
||||
sceneObject.update(timeState);
|
||||
}
|
||||
|
||||
function init(targetRect:Rect) {
|
||||
if (!_initialized) {
|
||||
sceneTarget = new Texture(cast targetRect.extent.x, cast targetRect.extent.y, [Target]);
|
||||
sceneTarget.depthBuffer = new DepthBuffer(cast targetRect.extent.x, cast targetRect.extent.y);
|
||||
|
||||
sceneBitmap = new Bitmap(Tile.fromTexture(sceneTarget));
|
||||
|
||||
scene.addChild(sceneObject);
|
||||
var objCenter = sceneObject.getBounds().getCenter();
|
||||
scene.camera.pos = new Vector(0, renderDistance * Math.cos(renderPitch), objCenter.z + renderDistance * Math.sin(renderPitch));
|
||||
scene.camera.target = new Vector(objCenter.x, objCenter.y, objCenter.z);
|
||||
_initialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override function renderEngine(engine:h3d.Engine) {
|
||||
if (_initialized) {
|
||||
engine.pushTarget(this.sceneTarget);
|
||||
engine.clear(0, 1);
|
||||
scene.render(engine);
|
||||
engine.popTarget();
|
||||
}
|
||||
super.renderEngine(engine);
|
||||
}
|
||||
|
||||
override function dispose() {
|
||||
super.dispose();
|
||||
scene.dispose();
|
||||
sceneBitmap.remove();
|
||||
sceneTarget.dispose();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
package gui;
|
||||
|
||||
import h3d.shader.AlphaChannel;
|
||||
import src.DtsObject;
|
||||
import hxd.res.BitmapFont;
|
||||
import h3d.Vector;
|
||||
import src.ResourceLoader;
|
||||
|
|
@ -12,6 +14,24 @@ class HelpCreditsGui extends GuiImage {
|
|||
var page = 0;
|
||||
var hcText:GuiMLText;
|
||||
var hcText2:GuiMLText;
|
||||
var startPadCtrl:GuiObjectShow;
|
||||
var endPadCtrl:GuiObjectShow;
|
||||
var gem1Ctrl:GuiObjectShow;
|
||||
var gem2Ctrl:GuiObjectShow;
|
||||
var gem3Ctrl:GuiObjectShow;
|
||||
var superSpeedCtrl:GuiObjectShow;
|
||||
var superJumpCtrl:GuiObjectShow;
|
||||
var shockAbsorberCtrl:GuiObjectShow;
|
||||
var helicopterCtrl:GuiObjectShow;
|
||||
var timeTravelCtrl:GuiObjectShow;
|
||||
var antiGravityCtrl:GuiObjectShow;
|
||||
var ductFanCtrl:GuiObjectShow;
|
||||
var tornadoCtrl:GuiObjectShow;
|
||||
var trapdoorCtrl:GuiObjectShow;
|
||||
var oilSlickCtrl:GuiObjectShow;
|
||||
var landMineCtrl:GuiObjectShow;
|
||||
var bumperCtrl:GuiObjectShow;
|
||||
var superBounceCtrl:GuiObjectShow;
|
||||
|
||||
public function new() {
|
||||
super(ResourceLoader.getImage("data/ui/background.jpg").toTile());
|
||||
|
|
@ -102,6 +122,63 @@ class HelpCreditsGui extends GuiImage {
|
|||
hcText2.text.textColor = 0;
|
||||
helpWindow.addChild(hcText2);
|
||||
|
||||
startPadCtrl = buildObjectShow("data/shapes/pads/startarea.dts", new Vector(30, 82), new Vector(79, 66), 8, 0.5);
|
||||
helpWindow.addChild(startPadCtrl);
|
||||
|
||||
endPadCtrl = buildObjectShow("data/shapes/pads/endarea.dts", new Vector(31, 146), new Vector(79, 66), 8, 0.5);
|
||||
helpWindow.addChild(endPadCtrl);
|
||||
|
||||
gem1Ctrl = buildObjectShow("data/shapes/items/gem.dts", new Vector(17, 234), new Vector(79, 66), 2.5, 0.4);
|
||||
helpWindow.addChild(gem1Ctrl);
|
||||
|
||||
gem2Ctrl = buildObjectShow("data/shapes/items/gem.dts", new Vector(43, 215), new Vector(79, 66), 2.5, 0.4, ["base.gem" => "purple.gem"]);
|
||||
helpWindow.addChild(gem2Ctrl);
|
||||
|
||||
gem3Ctrl = buildObjectShow("data/shapes/items/gem.dts", new Vector(45, 250), new Vector(79, 66), 2.5, 0.4, ["base.gem" => "green.gem"]);
|
||||
helpWindow.addChild(gem3Ctrl);
|
||||
|
||||
superSpeedCtrl = buildObjectShow("data/shapes/items/superspeed.dts", new Vector(30, 73), new Vector(79, 66), 3.5, 0.35);
|
||||
helpWindow.addChild(superSpeedCtrl);
|
||||
|
||||
superJumpCtrl = buildObjectShow("data/shapes/items/superjump.dts", new Vector(31, 137), new Vector(79, 66), 3.5, 0.35);
|
||||
helpWindow.addChild(superJumpCtrl);
|
||||
|
||||
shockAbsorberCtrl = buildObjectShow("data/shapes/items/shockabsorber.dts", new Vector(33, 204), new Vector(72, 61), 3.5, 0.35);
|
||||
helpWindow.addChild(shockAbsorberCtrl);
|
||||
|
||||
superBounceCtrl = buildObjectShow("data/shapes/items/superbounce.dts", new Vector(35, 260), new Vector(72, 61), 3.5, 0.35);
|
||||
helpWindow.addChild(superBounceCtrl);
|
||||
|
||||
helicopterCtrl = buildObjectShow("data/shapes/images/helicopter.dts", new Vector(30, 82), new Vector(79, 66), 2, 0.35);
|
||||
helpWindow.addChild(helicopterCtrl);
|
||||
|
||||
timeTravelCtrl = buildObjectShow("data/shapes/items/timetravel.dts", new Vector(31, 146), new Vector(79, 66), 3.5, 0.35);
|
||||
helpWindow.addChild(timeTravelCtrl);
|
||||
|
||||
antiGravityCtrl = buildObjectShow("data/shapes/items/antigravity.dts", new Vector(35, 217), new Vector(72, 61), 3.5, 0.35);
|
||||
helpWindow.addChild(antiGravityCtrl);
|
||||
|
||||
ductFanCtrl = buildObjectShow("data/shapes/hazards/ductfan.dts", new Vector(30, 82), new Vector(79, 66), 4, 0.5);
|
||||
helpWindow.addChild(ductFanCtrl);
|
||||
|
||||
tornadoCtrl = buildObjectShow("data/shapes/hazards/tornado.dts", new Vector(26, 155), new Vector(91, 66), 18, 0.35);
|
||||
for (mat in tornadoCtrl.sceneObject.materials) {
|
||||
mat.blendMode = None;
|
||||
}
|
||||
helpWindow.addChild(tornadoCtrl);
|
||||
|
||||
trapdoorCtrl = buildObjectShow("data/shapes/hazards/trapdoor.dts", new Vector(35, 217), new Vector(77, 76), 8, 0.35);
|
||||
helpWindow.addChild(trapdoorCtrl);
|
||||
|
||||
oilSlickCtrl = buildObjectShow("data/shapes/hazards/oilslick.dts", new Vector(35, 217), new Vector(77, 76), 8, 0.35);
|
||||
helpWindow.addChild(oilSlickCtrl);
|
||||
|
||||
landMineCtrl = buildObjectShow("data/shapes/hazards/landmine.dts", new Vector(26, 155), new Vector(91, 66), 1.5, 0.35);
|
||||
helpWindow.addChild(landMineCtrl);
|
||||
|
||||
bumperCtrl = buildObjectShow("data/shapes/bumpers/pball_round.dts", new Vector(30, 82), new Vector(79, 66), 1.8, 0.5);
|
||||
helpWindow.addChild(bumperCtrl);
|
||||
|
||||
redrawPage();
|
||||
}
|
||||
|
||||
|
|
@ -121,51 +198,159 @@ class HelpCreditsGui extends GuiImage {
|
|||
formatText("The marble can be moved forward, back, left and right by pressing <func:bind moveforward>, <func:bind movebackward>, <func:bind moveleft> and <func:bind moveright>, respectively. Pressing <func:bind jump> causes the marble to jump, and pressing <func:bind mouseFire> uses whatever powerup you currently have available. All movement is relative to the view direction.");
|
||||
}
|
||||
if (page == 2) {
|
||||
startPadCtrl.visible = false;
|
||||
endPadCtrl.visible = false;
|
||||
gem1Ctrl.visible = false;
|
||||
gem2Ctrl.visible = false;
|
||||
gem3Ctrl.visible = false;
|
||||
hcText2.text.text = "";
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Camera Controls</p></font><br/>'
|
||||
+
|
||||
formatText("The camera direction can be changed by moving the mouse or by pressing <func:bind panUp>, <func:bind panDown>, <func:bind turnLeft> or <func:bind turnRight>. In order to look up and down freely with the mouse, hold down <func:bind freelook>. You can turn free look on always from the Mouse pane of the Control Options screen.");
|
||||
startPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
endPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
gem1Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem2Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem3Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 3) {
|
||||
startPadCtrl.visible = true;
|
||||
endPadCtrl.visible = true;
|
||||
gem1Ctrl.visible = true;
|
||||
gem2Ctrl.visible = true;
|
||||
gem3Ctrl.visible = true;
|
||||
superJumpCtrl.visible = false;
|
||||
superSpeedCtrl.visible = false;
|
||||
shockAbsorberCtrl.visible = false;
|
||||
superBounceCtrl.visible = false;
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Goals</p></font><br/>';
|
||||
hcText2.position = new Vector(110, 24);
|
||||
hcText2.extent = new Vector(418, 274);
|
||||
hcText2.text.text = "<br/><br/>Start Pad - this is where you start the level.<br/><br/>End Pad - roll your marble here to end the level.<br/><br/>Gems - if a level has gems, you must pick them all up before you can exit.";
|
||||
startPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
endPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
gem1Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem2Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem3Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
hcText2.render(MarbleGame.canvas.scene2d);
|
||||
superJumpCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superSpeedCtrl.render(MarbleGame.canvas.scene2d);
|
||||
shockAbsorberCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superBounceCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 4) {
|
||||
startPadCtrl.visible = false;
|
||||
endPadCtrl.visible = false;
|
||||
gem1Ctrl.visible = false;
|
||||
gem2Ctrl.visible = false;
|
||||
gem3Ctrl.visible = false;
|
||||
superJumpCtrl.visible = true;
|
||||
superSpeedCtrl.visible = true;
|
||||
shockAbsorberCtrl.visible = true;
|
||||
superBounceCtrl.visible = true;
|
||||
helicopterCtrl.visible = false;
|
||||
timeTravelCtrl.visible = false;
|
||||
antiGravityCtrl.visible = false;
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Bonus Items (1/2)</p></font><br/>';
|
||||
hcText2.position = new Vector(110, 24);
|
||||
hcText2.extent = new Vector(418, 274);
|
||||
hcText2.text.text = "<br/><br/>Super Speed PowerUp - gives you a burst of speed.<br/><br/>Super Jump PowerUp - gives you a big jump up.<br/><br/>Shock Absorber PowerUp - absorbs bounce impacts.<br/><br/>Super Bounce PowerUp - makes you bounce higher.";
|
||||
startPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
endPadCtrl.render(MarbleGame.canvas.scene2d);
|
||||
gem1Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem2Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
gem3Ctrl.render(MarbleGame.canvas.scene2d);
|
||||
hcText2.render(MarbleGame.canvas.scene2d);
|
||||
superJumpCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superSpeedCtrl.render(MarbleGame.canvas.scene2d);
|
||||
shockAbsorberCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superBounceCtrl.render(MarbleGame.canvas.scene2d);
|
||||
helicopterCtrl.render(MarbleGame.canvas.scene2d);
|
||||
timeTravelCtrl.render(MarbleGame.canvas.scene2d);
|
||||
antiGravityCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 5) {
|
||||
superJumpCtrl.visible = false;
|
||||
superSpeedCtrl.visible = false;
|
||||
shockAbsorberCtrl.visible = false;
|
||||
superBounceCtrl.visible = false;
|
||||
helicopterCtrl.visible = true;
|
||||
timeTravelCtrl.visible = true;
|
||||
antiGravityCtrl.visible = true;
|
||||
ductFanCtrl.visible = false;
|
||||
tornadoCtrl.visible = false;
|
||||
trapdoorCtrl.visible = false;
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Bonus Items (2/2)</p></font><br/>';
|
||||
hcText2.position = new Vector(110, 24);
|
||||
hcText2.extent = new Vector(418, 274);
|
||||
hcText2.text.text = "<br/><br/>Gyrocopter PowerUp - slows your fall in the air.<br/><br/>Time Travel - takes some time off the clock.<br/><br/>Gravity Modifier - Changes the direction of \"down\" - the new down is in the direction of the arrow.";
|
||||
hcText2.render(MarbleGame.canvas.scene2d);
|
||||
superJumpCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superSpeedCtrl.render(MarbleGame.canvas.scene2d);
|
||||
shockAbsorberCtrl.render(MarbleGame.canvas.scene2d);
|
||||
superBounceCtrl.render(MarbleGame.canvas.scene2d);
|
||||
helicopterCtrl.render(MarbleGame.canvas.scene2d);
|
||||
timeTravelCtrl.render(MarbleGame.canvas.scene2d);
|
||||
antiGravityCtrl.render(MarbleGame.canvas.scene2d);
|
||||
ductFanCtrl.render(MarbleGame.canvas.scene2d);
|
||||
tornadoCtrl.render(MarbleGame.canvas.scene2d);
|
||||
trapdoorCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 6) {
|
||||
helicopterCtrl.visible = false;
|
||||
timeTravelCtrl.visible = false;
|
||||
antiGravityCtrl.visible = false;
|
||||
ductFanCtrl.visible = true;
|
||||
tornadoCtrl.visible = true;
|
||||
trapdoorCtrl.visible = true;
|
||||
bumperCtrl.visible = false;
|
||||
landMineCtrl.visible = false;
|
||||
oilSlickCtrl.visible = false;
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Hazards (1/2)</p></font><br/>';
|
||||
hcText2.position = new Vector(110, 24);
|
||||
hcText2.extent = new Vector(418, 274);
|
||||
hcText2.text.text = "<br/><br/>Duct Fan - be careful this doesn't blow you away!<br/><br/>Tornado - it'll pull you in and spit you out.<br/><br/>Trap Door - keep moving when you're rolling over one of these.";
|
||||
hcText2.render(MarbleGame.canvas.scene2d);
|
||||
helicopterCtrl.render(MarbleGame.canvas.scene2d);
|
||||
timeTravelCtrl.render(MarbleGame.canvas.scene2d);
|
||||
antiGravityCtrl.render(MarbleGame.canvas.scene2d);
|
||||
ductFanCtrl.render(MarbleGame.canvas.scene2d);
|
||||
tornadoCtrl.render(MarbleGame.canvas.scene2d);
|
||||
trapdoorCtrl.render(MarbleGame.canvas.scene2d);
|
||||
bumperCtrl.render(MarbleGame.canvas.scene2d);
|
||||
landMineCtrl.render(MarbleGame.canvas.scene2d);
|
||||
oilSlickCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 7) {
|
||||
ductFanCtrl.visible = false;
|
||||
tornadoCtrl.visible = false;
|
||||
trapdoorCtrl.visible = false;
|
||||
bumperCtrl.visible = true;
|
||||
landMineCtrl.visible = true;
|
||||
oilSlickCtrl.visible = true;
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">Hazards (2/2)</p></font><br/>';
|
||||
hcText2.position = new Vector(110, 24);
|
||||
hcText2.extent = new Vector(418, 274);
|
||||
hcText2.text.text = "<br/><br/>Bumper - this'll bounce you if you touch it.<br/><br/>Land Mine - Warning! Explodes on contact!<br/><br/>Oil Slick - you won't have much traction on these surfaces";
|
||||
hcText2.render(MarbleGame.canvas.scene2d);
|
||||
ductFanCtrl.render(MarbleGame.canvas.scene2d);
|
||||
tornadoCtrl.render(MarbleGame.canvas.scene2d);
|
||||
trapdoorCtrl.render(MarbleGame.canvas.scene2d);
|
||||
bumperCtrl.render(MarbleGame.canvas.scene2d);
|
||||
landMineCtrl.render(MarbleGame.canvas.scene2d);
|
||||
oilSlickCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 8) {
|
||||
bumperCtrl.visible = false;
|
||||
landMineCtrl.visible = false;
|
||||
oilSlickCtrl.visible = false;
|
||||
hcText2.text.text = "";
|
||||
hcText.text.text = '<font face="Expo50"><p align="center">About GarageGames</p></font><br/>'
|
||||
+
|
||||
"GarageGames is a unique Internet publishing label for independent games and gamemakers. Our mission is to provide the independent developer with tools, knowledge, co-conspirators - whatever is needed to unleash the creative spirit and get great innovative independent games to market.";
|
||||
bumperCtrl.render(MarbleGame.canvas.scene2d);
|
||||
landMineCtrl.render(MarbleGame.canvas.scene2d);
|
||||
oilSlickCtrl.render(MarbleGame.canvas.scene2d);
|
||||
}
|
||||
if (page == 9) {
|
||||
hcText2.text.text = "";
|
||||
|
|
@ -243,4 +428,31 @@ class HelpCreditsGui extends GuiImage {
|
|||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
function buildObjectShow(dtsPath:String, position:Vector, extent:Vector, dist:Float = 5, pitch:Float = 0, matnameOverride:Map<String, String> = null) {
|
||||
var oShow = new GuiObjectShow();
|
||||
var dtsObj = new DtsObject();
|
||||
dtsObj.dtsPath = dtsPath;
|
||||
dtsObj.ambientRotate = true;
|
||||
dtsObj.ambientSpinFactor /= -2;
|
||||
dtsObj.showSequences = false;
|
||||
dtsObj.useInstancing = false;
|
||||
if (matnameOverride != null) {
|
||||
for (key => value in matnameOverride) {
|
||||
dtsObj.matNameOverride.set(key, value);
|
||||
}
|
||||
}
|
||||
dtsObj.init(null);
|
||||
for (mat in dtsObj.materials) {
|
||||
mat.mainPass.enableLights = false;
|
||||
if (mat.blendMode != Alpha && mat.blendMode != Add)
|
||||
mat.mainPass.addShader(new AlphaChannel());
|
||||
}
|
||||
oShow.sceneObject = dtsObj;
|
||||
oShow.position = position;
|
||||
oShow.extent = extent;
|
||||
oShow.renderDistance = dist;
|
||||
oShow.renderPitch = pitch;
|
||||
return oShow;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -375,6 +375,8 @@ class PlayGui {
|
|||
powerupImageObject.init(null);
|
||||
for (mat in powerupImageObject.materials) {
|
||||
mat.mainPass.enableLights = false;
|
||||
if (mat.blendMode != Alpha && mat.blendMode != Add)
|
||||
mat.mainPass.addShader(new h3d.shader.AlphaChannel());
|
||||
}
|
||||
powerupImageScene.addChild(powerupImageObject);
|
||||
var powerupImageCenter = powerupImageObject.getBounds().getCenter();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue