Last active
November 3, 2019 13:57
-
-
Save bobrokrol/35554b928dc29333fb1da72f240b439e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ; | |
//import cgs.cardlib.globals.MonsterNames; | |
import openfl.display.DisplayObjectShader; | |
import openfl.display.Sprite; | |
import openfl.events.Event; | |
import openfl.events.MouseEvent; | |
import openfl.filters.ShaderFilter; | |
/** | |
* ... | |
* @author Rich | |
*/ | |
class MainTest2 extends Sprite { | |
public function new() { | |
super(); | |
graphics.beginFill(0xFFFFFF); | |
graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); | |
addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); | |
} | |
var spr1:Sprite = new Sprite(); | |
var spr2:Sprite = new Sprite(); | |
var spr2c:Sprite = new Sprite(); | |
var rotat:Float = 0; | |
var shader2:BitmapMaskShader; | |
private function onMouseDown(e:MouseEvent):Void | |
{ | |
spr1.graphics.beginFill(0x000000); | |
spr1.graphics.drawRect(0, 0, 128, 128); | |
spr2.graphics.beginFill(0xFFFF00); | |
spr2.graphics.drawRect(0, 0, 128, 128); | |
addChild(spr1); | |
spr2c.addChild(spr2); | |
spr2.cacheAsBitmap = true; | |
spr1.x = spr2c.x = 200; | |
spr1.y = spr2c.y = 200; | |
addChild(spr2c); | |
shader2 = new BitmapMaskShader (); | |
var shf:ShaderFilter = new ShaderFilter(shader2); | |
shf.shader = shader2; | |
spr2.filters = null; | |
spr2.filters = [shf]; | |
removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); | |
removeEventListener(Event.ENTER_FRAME, onEnterFrame); | |
addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); | |
addEventListener(Event.ENTER_FRAME, onEnterFrame); | |
} | |
private function onEnterFrame(ev:Event):Void | |
{ | |
} | |
private function onMouseMove(ev:MouseEvent):Void | |
{ | |
rotat++; | |
spr2c.rotation = rotat; | |
} | |
} | |
class BitmapMaskShader extends DisplayObjectShader { | |
@:glFragmentSource(" | |
#pragma header | |
uniform sampler2D maskImage; | |
uniform vec2 maskPos; | |
uniform float testF; | |
uniform mat3 matrix; | |
void main(void) { | |
#pragma body | |
vec4 color2 = texture2D (openfl_Texture, openfl_TextureCoordv); | |
if (openfl_TextureCoordv.x > 0.5) | |
{ | |
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); | |
} else | |
{ | |
gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); | |
} | |
if (color2.a == 0.0) | |
{ | |
gl_FragColor = vec4(1.0, 1.0, 0.0, 1); | |
} | |
} | |
") | |
public function new () { | |
super (); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment