setScale()
也不工作。当有有趣的事情发生时,我打算把相机翻过来,但我不知道怎么做。
你可以用着色器翻转相机(并应用其他有趣的效果)!
FlxCamera
有一个叫做setFilters()
的功能,它允许你添加一个位图过滤器列表到一个活动的相机。
这是我写的一个简单的过滤器,可以水平翻转所有纹理:
import openfl.filters.ShaderFilter;
var filters:Array<BitmapFilter> = [];
// Add a filter that flips everything horizontally
var filter = new ShaderFilter(new FlipXAxis());
filters.push(filter);
// Apply filters to camera
FlxG.camera.setFilters(filters);
在单独的FlipXAxis
类中:
import flixel.system.FlxAssets.FlxShader;
class FlipXAxis extends FlxShader
{
@:glFragmentSource('
#pragma header
void main()
{
vec2 uv = vec2(1.0 - openfl_TextureCoordv.x, openfl_TextureCoordv.y);
gl_FragColor = texture2D(bitmap, uv);
}')
public function new()
{
super();
}
}