【发布时间】:2021-06-06 01:20:18
【问题描述】:
setScale() 也不起作用。
当有趣的事情发生时,我打算翻转相机,但我不知道如何。
【问题讨论】:
标签: camera haxe haxeflixel
setScale() 也不起作用。
当有趣的事情发生时,我打算翻转相机,但我不知道如何。
【问题讨论】:
标签: camera haxe haxeflixel
您可以使用着色器翻转相机(并应用其他有趣的效果)!
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();
}
}
【讨论】: