make checkerboard a background with transparency. close #2
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
(import flixel.FlxState)
|
||||
(import flixel.FlxG)
|
||||
(import flixel.FlxSprite)
|
||||
(import flixel.util.FlxColor)
|
||||
(import openfl.filters.BitmapFilter)
|
||||
(import openfl.filters.ShaderFilter)
|
||||
|
||||
@@ -10,9 +11,11 @@
|
||||
|
||||
(method &override :Void create []
|
||||
(super.create)
|
||||
(set FlxG.camera.bgColor FlxColor.TRANSPARENT)
|
||||
(let [bg (new FlxSprite 0 0 "assets/images/apTestRoomEdited.jpg")]
|
||||
(bg.setGraphicSize FlxG.width FlxG.height)
|
||||
(bg.setGraphicSize (iHalf FlxG.width) (iHalf FlxG.height))
|
||||
(bg.screenCenter)
|
||||
(set bg.alpha 0.5)
|
||||
(add bg))
|
||||
(set shader (new kiss_flixel.shaders.CheckerBoard))
|
||||
// (set shader.data.invert.value [true])
|
||||
|
@@ -6,6 +6,10 @@ uniform float checkSize = 64;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = flixel_texture2D(bitmap, openfl_TextureCoordv);
|
||||
|
||||
float transparency = 1.0 - color.a;
|
||||
|
||||
vec2 position = openfl_TextureCoordv * iResolution + cameraPos;
|
||||
float row = floor(position.y / checkSize);
|
||||
float col = floor(position.x / checkSize);
|
||||
@@ -16,5 +20,6 @@ void main()
|
||||
vec4 oddColor = oddRow ? color1 : color2;
|
||||
vec4 evenColor = oddRow ? color2 : color1;
|
||||
|
||||
gl_FragColor = oddCol ? oddColor: evenColor;
|
||||
vec4 bgColor = oddCol ? oddColor: evenColor;
|
||||
gl_FragColor = color + bgColor * transparency;
|
||||
}
|
Reference in New Issue
Block a user