public Sprite( ITexture2D texture, IEffect effect ) { if ( effect == null ) { if ( baseSpriteEffect == null ) baseSpriteEffect = new SpriteEffect (); effect = baseSpriteEffect; } Texture = texture; Effect = effect; int width = 1, height = 1; if ( texture != null ) { width = texture.Width; height = texture.Height; } vertexBuffer = LiqueurSystem.GraphicsDevice.CreateVertexBuffer<SpriteVertex> ( SpriteVertexFormat, new SpriteVertex [] { new SpriteVertex ( new Vector2 ( 0.001f, 0.001f ), Color.White, new Vector2 ( 0.001f, 0.001f ) ), new SpriteVertex ( new Vector2 ( width, 0.001f ), Color.White, new Vector2 ( 1, 0.001f ) ), new SpriteVertex ( new Vector2 ( 0.001f, height ), Color.White, new Vector2 ( 0.001f, 1 ) ), new SpriteVertex ( new Vector2 ( width, height ), Color.White, new Vector2 ( 1, 1 ) ), } ); if ( indexBuffer == null ) indexBuffer = LiqueurSystem.GraphicsDevice.CreateIndexBuffer ( new int [] { 0, 1, 2, 1, 3, 2 } ); indexReference++; clippingArea = new Rectangle ( 0, 0, width, height ); TextureFilter = Liqueur.Graphics.TextureFilter.Nearest; }
public Batcher( GraphicsDevice graphicsDevice ) { Assert.isTrue( graphicsDevice != null ); this.graphicsDevice = graphicsDevice; _vertexInfo = new VertexPositionColorTexture4[MAX_SPRITES]; _textureInfo = new Texture2D[MAX_SPRITES]; _vertexBuffer = new DynamicVertexBuffer( graphicsDevice, typeof( VertexPositionColorTexture ), MAX_VERTICES, BufferUsage.WriteOnly ); _indexBuffer = new IndexBuffer( graphicsDevice, IndexElementSize.SixteenBits, MAX_INDICES, BufferUsage.WriteOnly ); _indexBuffer.SetData( _indexData ); _spriteEffect = new SpriteEffect(); _spriteEffectPass = _spriteEffect.CurrentTechnique.Passes[0]; _projectionMatrix = new Matrix( 0f, //(float)( 2.0 / (double)viewport.Width ) is the actual value we will use 0.0f, 0.0f, 0.0f, 0.0f, 0f, //(float)( -2.0 / (double)viewport.Height ) is the actual value we will use 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, -1.0f, 1.0f, 0.0f, 1.0f ); }
public void Sell() { StopAllCoroutines(); SpriteEffect effect = null; if (PoolManager.Instance != null && PoolManager.Instance.GetEffectFromPool((int)EffectTable.eEffectType.Type_Tower_Sell, out effect)) { effect.Init(transform); } else { EffectTable.TableRow effectTable = null; if (EffectTable.Instance.FindTable((int)EffectTable.eEffectType.Type_Tower_Sell, out effectTable)) { LoadAssetbundle.LoadPrefabCB loadPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadDestroyEffectCompleteCB); PrefabManager.Instance.LoadPrefab(effectTable.effectPath, System.Guid.NewGuid(), loadPrefabCB, effectTable); } } if (TowerManager.Instance != null) { TowerManager.Instance.RemoveTowerList(this); } if (PoolManager.Instance != null) { PoolManager.Instance.AddTowerPool(this); } if (GameManager.Instance != null) { GameManager.Instance.AddGameGold(status.GetSellPrice); } }
private void LoadAttackEffectCompleteCB(GameObject gameObj, System.Guid uid, params object[] param) { if (gameObj != null) { GameObject createObj = Instantiate(gameObj) as GameObject; createObj.transform.parent = GameManager.Instance.rootPanelArray[(int)GameManager.eRootPanelType.Type_Effect].transform; createObj.transform.localScale = gameObj.transform.localScale; createObj.transform.localPosition = Vector3.zero; SpriteEffect effect = createObj.GetComponent <SpriteEffect>(); if (effect != null) { if (param.Length.Equals(2)) { effect.Init((Transform)param[0], (EffectTable.TableRow)param[1]); } else if (param.Length.Equals(3)) { effect.Init((Transform)param[0], (EffectTable.TableRow)param[1], (SpriteEffect.EffectCompleteCB)param[2]); } } } }
public override void onStart() { plr = Objects.getObject <Player>("Player"); plr.Position = new Vector(200); Level.Camera.TruePosition = plr.Position; SpriteEffect fx = new SpriteEffect(Level); fx.Position = plr.Position; fx.Effect = "teleport"; fx.Frames = new Vector(2, 5); fx.Speed = 7; fx = new SpriteEffect(Level); fx.Position = plr.Position + new Vector(150, 200); fx.Effect = "teleport"; fx.Frames = new Vector(2, 5); fx.Speed = 7; fx = new SpriteEffect(Level); fx.Position = plr.Position + new Vector(65, 100); fx.Effect = "teleport"; fx.Frames = new Vector(2, 5); fx.Speed = 5; fx.Sprite.Scale *= 3; Objects.getObject <Wall>("WALLPIPE").Active = (Objects.getObject <Wall>("doorA").Y < 1201); if (Objects.getObject <Wall>("WALLPIPE").Active) { Objects.getObject <Wall>("WALLPIPE").X = 9650; } }
void Start() { GameObject deathObj = new GameObject(); deathSe = deathObj.AddComponent <SpriteEffect> (); dead = false; }
public void End() { if (TextureSize == Vector2.Zero) { return; } DWRenderTarget.EndDraw(); MutexD3D10.Release(0); MutexD3D11.Acquire(0, 100); ShaderResourceView srv = new ShaderResourceView(DeviceManager.Device, TextureD3D11); BlendState lastBlendState = DeviceManager.Context.OutputMerger.BlendState; Viewport[] lastViewports = DeviceManager.Context.Rasterizer.GetViewports(); //WVP行列をエフェクトに渡す SpriteEffect.GetVariableBySemantic("WORLDVIEWPROJECTION") .AsMatrix() .SetMatrix(ViewMatrix * SpriteProjectionMatrix); SpriteEffect.GetVariableBySemantic("SPRITETEXTURE").AsResource().SetResource(srv); DeviceManager.Context.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(VertexBuffer, SpriteVertexLayout.SizeInBytes, 0)); DeviceManager.Context.InputAssembler.InputLayout = VertexInputLayout; DeviceManager.Context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; DeviceManager.Context.OutputMerger.BlendState = state; DeviceManager.Context.Rasterizer.SetViewports(spriteViewport); renderPass.Apply(DeviceManager.Context); DeviceManager.Context.Draw(6, 0); DeviceManager.Context.Rasterizer.SetViewports(lastViewports); DeviceManager.Context.OutputMerger.BlendState = lastBlendState; srv.Dispose(); MutexD3D11.Release(0); }
public Sprite( ITexture2D texture, IEffect effect ) { if ( effect == null ) { if ( baseSpriteEffect == null ) baseSpriteEffect = new SpriteEffect (); effect = baseSpriteEffect; } if ( projectionMatrix == null ) projectionMatrix = new OrthographicOffCenterProjection ( 0, 800, 600, 0, 0.001f, 1000.0f ); Effect = effect; if ( vertexDeclaration == null ) { vertexDeclaration = Core.GraphicsDevice.CreateVertexDeclaration ( Utilities.CreateVertexElementArray<SpriteVertex> () ); } indexReference++; vertexBuffer = Core.GraphicsDevice.CreateBuffer ( BufferType.VertexBuffer, typeof ( SpriteVertex ), 4 ); textureArgument = new SamplerState ( texture, Graphics.TextureFilter.Nearest, TextureAddressing.Clamp, 0 ); Reset ( texture ); innerWorld = new World2(); }
public void Dispose() { if (VertexBuffer != null && !VertexBuffer.Disposed) { VertexBuffer.Dispose(); } if (VertexInputLayout != null && !VertexInputLayout.Disposed) { VertexInputLayout.Dispose(); } if (SpriteEffect != null && !SpriteEffect.Disposed) { SpriteEffect.Dispose(); } if (SpriteTexture != null && !SpriteTexture.Disposed) { SpriteTexture.Dispose(); } if (mapedBitmap != null) { mapedBitmap.Dispose(); } if (mapedGraphic != null) { mapedGraphic.Dispose(); } }
public void DifferentVboGetsSet() { var vb1 = new VertexBuffer(gd, VertexPosition.VertexDeclaration, 6, BufferUsage.None); var vb2 = new VertexBuffer(gd, VertexPosition.VertexDeclaration, 8, BufferUsage.None); var se = new SpriteEffect(gd); se.CurrentTechnique.Passes[0].Apply(); gd.SetVertexBuffer(vb1); gd.DrawPrimitives(PrimitiveType.TriangleList, 0, 2); int vbo; GL.GetInteger(GetPName.ArrayBufferBinding, out vbo); Assert.AreEqual(vb1.vbo, vbo); gd.SetVertexBuffer(vb2); gd.DrawPrimitives(PrimitiveType.TriangleList, 0, 2); GL.GetInteger(GetPName.ArrayBufferBinding, out vbo); Assert.AreEqual(vb2.vbo, vbo); se.Dispose(); vb1.Dispose(); vb2.Dispose(); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="context">レンダーコンテキスト</param> /// <param name="width">描画に利用するテクスチャの解像度の幅</param> /// <param name="height">描画に利用するテクスチャの解像度の高さ</param> public GDISpriteBatch(RenderContext context, int width, int height) { this.Context = context; Resize(width, height); SpriteEffect = CGHelper.CreateEffectFx5("Shader\\sprite.fx", context.DeviceManager.Device); renderPass = SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(0); VertexInputLayout = new InputLayout(context.DeviceManager.Device, SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(0).Description.Signature, SpriteVertexLayout.InputElements); SamplerDescription desc = new SamplerDescription(); desc.Filter = Filter.MinMagMipLinear; desc.AddressU = TextureAddressMode.Wrap; desc.AddressV = TextureAddressMode.Wrap; desc.AddressW = TextureAddressMode.Wrap; sampler = SamplerState.FromDescription(context.DeviceManager.Device, desc); mapedGraphic = Graphics.FromImage(mapedBitmap); BlendStateDescription blendDesc = new BlendStateDescription(); blendDesc.AlphaToCoverageEnable = false; blendDesc.IndependentBlendEnable = false; for (int i = 0; i < blendDesc.RenderTargets.Length; i++) { blendDesc.RenderTargets[i].BlendEnable = true; blendDesc.RenderTargets[i].SourceBlend = BlendOption.SourceAlpha; blendDesc.RenderTargets[i].DestinationBlend = BlendOption.InverseSourceAlpha; blendDesc.RenderTargets[i].BlendOperation = BlendOperation.Add; blendDesc.RenderTargets[i].SourceBlendAlpha = BlendOption.One; blendDesc.RenderTargets[i].DestinationBlendAlpha = BlendOption.Zero; blendDesc.RenderTargets[i].BlendOperationAlpha = BlendOperation.Add; blendDesc.RenderTargets[i].RenderTargetWriteMask = ColorWriteMaskFlags.All; } ViewMatrix = Matrix.LookAtLH(new Vector3(0, 0, -1), new Vector3(0, 0, 0), new Vector3(0, 1, 0)); state = BlendState.FromDescription(context.DeviceManager.Device, blendDesc); NeedRedraw = true; Update(); }
private void AddEffect(EffectType typeValue, int poolCount = 30) { GameObject prefab = Resources.Load <GameObject>("Prefabs/Effects/" + effNames[(int)typeValue]); // List <GameObject> effects = new List <GameObject>(); // GameObject holder = new GameObject(effNames[(int)typeValue] + "_Holder"); holder.transform.SetParent(transform); // effHolders.Add((int)typeValue, holder.transform); // for (int i = 0; i < poolCount; ++i) { GameObject effect = Instantiate(prefab, holder.transform); effect.name = effNames[(int)typeValue] + i; effect.SetActive(false); // SpriteEffect se = null; if (effect.TryGetComponent <SpriteEffect>(out se)) { se.type = typeValue; } //effect.GetComponent<SpriteEffect>().type = typeValue; // effects.Add(effect); } // totalEffect.Add(effNames[(int)typeValue], effects); }
public void SetPlayer(GameObject player) { this.animChar = player.GetComponent <Animator>(); this.RgbChar = player.GetComponent <Rigidbody2D>(); this.transform = player.transform; this.spriteEffect = player.GetComponent <SpriteEffect>(); this.playerController = player.GetComponent <PlayerController>(); this.scaleX = transform.localScale.x; }
/// <summary> /// Creates a new instance of the <see cref="SpriteRocket2D"/> class. /// </summary> /// <param name="device">The graphics device to render all polygons to.</param> public SpriteRocket2D(GraphicsDevice device) { GraphicsDevice = device ?? throw new ArgumentNullException(nameof(device)); GameUtils.Log("Sprite Rocket is preparing for lift-off."); _blankTexture = new Texture2D(device, 1, 1); _blankTexture.SetData(new[] { 0xffffffff }); _spriteEffect = new SpriteEffect(device); }
public void Draw() { SpriteEffect.GetVariableBySemantic("WORLDVIEWPROJECTION") .AsMatrix() .SetMatrix(context.MatrixManager.makeWorldViewProjectionMatrix(this)); SpriteEffect.GetVariableBySemantic("SPRITETEXTURE").AsResource().SetResource(_resView); context.DeviceManager.Context.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(VertexBuffer, SpriteVertexLayout.SizeInBytes, 0)); context.DeviceManager.Context.InputAssembler.InputLayout = VertexInputLayout; context.DeviceManager.Context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; renderPass.Apply(context.DeviceManager.Context); context.DeviceManager.Context.Draw(12, 0); }
public override void onClose() { SpriteEffect efx = new SpriteEffect(Level); efx.Effect = "blood"; efx.Sprite.Scale *= .3f; efx.Position = Gob.Position; efx.Frames = new Vector(4, 2); Sound s = new Sound("punch.wav"); s.play(); }
void CreateSprite(SpriteEffect spriteEffect, Vector3 pos, Vector3 dir) { SpriteObject spriteObj = new SpriteObject(); spriteObj.quad = GameObject.CreatePrimitive(PrimitiveType.Quad); spriteObj.quad.GetComponent <MeshCollider>().enabled = false; spriteObj.quad.GetComponent <MeshRenderer>().material = spriteEffect.materials[Random.Range(0, spriteEffect.materials.Length)]; spriteObj.quad.transform.localPosition = pos; spriteObj.quad.transform.localEulerAngles = dir; spriteObj.effect = spriteEffect; _sprites.Add(spriteObj); }
public GameObject(Texture2D texture, Vector2 position, Rectangle sourceRectangle, Color tint, float angle, Vector2 origin, float scale, SpriteEffect spriteEffects, int layerDepth) { this.texture = texture; this.positon = position; this.sourceRectangle = sourceRectangle; this.tint = tint; this.angle = angle; this.origin = origin; this.scale = scale; this.effects = spriteEffects; this.depth = layerDepth; }
public virtual void Start() { RenderPass = new BasicRenderPass(Graphics); SpriteEffect = new SpriteEffect( Graphics, RenderPass, MaxActors, PreviousEffect?.FinalLayout ?? ImageLayout.Undefined, PreviousEffect?.FinalAccess ?? Accesses.None, PreviousEffect?.FinalStage ?? PipelineStages.TopOfPipe ); SpriteEffect.Start(); SpriteEffect.SetCamera(Vector2.Zero, new Vector2(Graphics.Window.Size.X, -Graphics.Window.Size.Y)); }
void ZoomOut() { //set all receipts unseeable for raycast foreach (GameObject go in ReceiptManager.Instance.Receipts) { go.layer = 8; } //the screen goes bright GameObject darkScreenPic = GameObject.Find("DarkBackground"); SpriteEffect effect = darkScreenPic.AddComponent <SpriteEffect>(); effect.numberAssignment(3f, SpriteEffect.EffectType.FadeImage); //Destroy the game object Destroy(gameObject); }
public void Dispose() { if (BatchDisposing != null) { BatchDisposing(this, new EventArgs()); } if (TextureD3D10 != null && !TextureD3D10.Disposed) { TextureD3D10.Dispose(); } if (TextureD3D11 != null && !TextureD3D11.Disposed) { TextureD3D11.Dispose(); } if (MutexD3D10 != null && !MutexD3D10.Disposed) { MutexD3D10.Dispose(); } if (MutexD3D11 != null && !MutexD3D11.Disposed) { MutexD3D11.Dispose(); } if (DWRenderTarget != null && !DWRenderTarget.Disposed) { DWRenderTarget.Dispose(); } if (VertexBuffer != null && !VertexBuffer.Disposed) { VertexBuffer.Dispose(); } if (VertexInputLayout != null && !VertexInputLayout.Disposed) { VertexInputLayout.Dispose(); } if (SpriteEffect != null && !SpriteEffect.Disposed) { SpriteEffect.Dispose(); } if (sampler != null && !sampler.Disposed) { sampler.Dispose(); } //以下の二つはRenderContextがDisposeされるときに呼ばれないとバグが出る。(画面真っ黒) //これは同じ種類のブレンドステートがDisposeされてしまうからだと予測できる。 //このため、Dispose予定リストに含めておき、RenderContextの破棄時に処理をする context.Disposables.Add(TransParentBlendState); context.Disposables.Add(state); }
protected override void Start() { base.Start(); _effect = ContentManager.GetEffect <SpriteEffect>(); var rasterizerState = RasterizerStateDescription.CullBackSolid; rasterizerState.IsFrontCounterClockwise = false; _pipelineStateHandle = new EffectPipelineState( rasterizerState, DepthStencilStateDescription.None, BlendStateDescription.Opaque) .GetHandle(); }
public void Do(params object[] args) { Album = args[0] as Album; Mode = (int)args[1]; Indices = args[2] as int[]; Path = args[3] as string; if (args.Length > 4) { Prefix = (args[4] as string).Replace("\\", "/"); Increment = (int)args[5]; Digit = (int)args[6]; FullPath = (bool)args[7]; OnSaving = args[8] as SpriteEffect; } Action(Album, Indices); }
private void LoadDamageEffectCompleteCB(GameObject gameObj, System.Guid uid, params object[] param) { if (gameObj != null) { GameObject createObj = Instantiate(gameObj) as GameObject; createObj.transform.parent = GameManager.Instance.rootPanelArray[(int)GameManager.eRootPanelType.Type_Effect].transform; createObj.transform.localScale = gameObj.transform.localScale; SpriteEffect effect = createObj.GetComponent <SpriteEffect>(); if (effect != null) { effect.Init(effectDummy, (EffectTable.TableRow)param[0]); } } }
private void LoadAttackEffect(Transform target, SpriteEffect.EffectCompleteCB effectCompleteCB) { if (status.GetEffectTable != null) { SpriteEffect effect = null; if (PoolManager.Instance != null && PoolManager.Instance.GetEffectFromPool(status.GetEffectTable.id, out effect)) { effect.Init(target, effectCompleteCB); } else { LoadAssetbundle.LoadPrefabCB loadEffectCB = new LoadAssetbundle.LoadPrefabCB(LoadAttackEffectCompleteCB); PrefabManager.Instance.LoadPrefab(status.GetEffectTable.effectPath, System.Guid.NewGuid(), loadEffectCB, target, status.GetEffectTable, effectCompleteCB); } } }
private void SetDamageEffect(DamageParam param) { SpriteEffect effect = null; if (PoolManager.Instance != null && PoolManager.Instance.GetEffectFromPool(param.GetDamageEffectID, out effect)) { effect.Init(effectDummy); } else { EffectTable.TableRow effectTable = null; if (EffectTable.Instance.FindTable(param.GetDamageEffectID, out effectTable)) { LoadAssetbundle.LoadPrefabCB loadDamageEffectPrefabCB = new LoadAssetbundle.LoadPrefabCB(LoadDamageEffectCompleteCB); PrefabManager.Instance.LoadPrefab(effectTable.effectPath, System.Guid.NewGuid(), loadDamageEffectPrefabCB, effectTable); } } }
public D2DSpriteBatch(RenderContext context) { this.context = context; DeviceManager = context.DeviceManager; SpriteEffect = CGHelper.CreateEffectFx5FromResource("MMF.Resource.Shader.SpriteShader.fx", DeviceManager.Device); renderPass = SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(1); VertexInputLayout = new InputLayout(DeviceManager.Device, SpriteEffect.GetTechniqueByIndex(0).GetPassByIndex(0).Description.Signature, SpriteVertexLayout.InputElements); SamplerDescription desc = new SamplerDescription(); desc.Filter = Filter.MinMagMipLinear; desc.AddressU = TextureAddressMode.Wrap; desc.AddressV = TextureAddressMode.Wrap; desc.AddressW = TextureAddressMode.Wrap; sampler = SamplerState.FromDescription(DeviceManager.Device, desc); BlendStateDescription blendDesc = new BlendStateDescription(); blendDesc.AlphaToCoverageEnable = false; blendDesc.IndependentBlendEnable = false; for (int i = 0; i < blendDesc.RenderTargets.Length; i++) { blendDesc.RenderTargets[i].BlendEnable = true; blendDesc.RenderTargets[i].SourceBlend = BlendOption.SourceAlpha; blendDesc.RenderTargets[i].DestinationBlend = BlendOption.InverseSourceAlpha; blendDesc.RenderTargets[i].BlendOperation = BlendOperation.Add; blendDesc.RenderTargets[i].SourceBlendAlpha = BlendOption.One; blendDesc.RenderTargets[i].DestinationBlendAlpha = BlendOption.Zero; blendDesc.RenderTargets[i].BlendOperationAlpha = BlendOperation.Add; blendDesc.RenderTargets[i].RenderTargetWriteMask = ColorWriteMaskFlags.All; } state = BlendState.FromDescription(DeviceManager.Device, blendDesc); BlendStateDescription bsd = new BlendStateDescription(); bsd.RenderTargets[0].BlendEnable = true; bsd.RenderTargets[0].SourceBlend = BlendOption.SourceAlpha; bsd.RenderTargets[0].DestinationBlend = BlendOption.InverseSourceAlpha; bsd.RenderTargets[0].BlendOperation = BlendOperation.Add; bsd.RenderTargets[0].SourceBlendAlpha = BlendOption.One; bsd.RenderTargets[0].DestinationBlendAlpha = BlendOption.Zero; bsd.RenderTargets[0].BlendOperationAlpha = BlendOperation.Add; bsd.RenderTargets[0].RenderTargetWriteMask = ColorWriteMaskFlags.All; TransParentBlendState = BlendState.FromDescription(DeviceManager.Device, bsd); Resize(); }
/// <summary> /// Initializes a new instance of the <see cref="GeometryBatchRenderer"/> class. /// </summary> /// <param name="graphicsDevice">The graphics device.</param> /// <exception cref="ArgumentNullException">graphicsDevice - GraphicsDevice must not be null.</exception> public GeometryBatchRenderer(GraphicsDevice graphicsDevice) : base() { GraphicsDevice = graphicsDevice ?? throw new ArgumentNullException(nameof(graphicsDevice), "GraphicsDevice must not be null."); _spriteEffect = new SpriteEffect(graphicsDevice); _spritePass = _spriteEffect.CurrentTechnique.Passes[0]; _matrixTransform = _spriteEffect.Parameters["MatrixTransform"]; //_batcher = new SpriteBatcher(graphicsDevice); _beginCalled = false; _index = new short[65536]; _vertexArray = new VertexPositionColorTexture[32768]; PolygonCompiler = new ActionBlock <int>(a => CompilePolygon(a), new ExecutionDataflowBlockOptions() { MaxDegreeOfParallelism = Environment.ProcessorCount }); }
public FairyBatch() { _clipStack = new Stack <RectangleF>(); _renderTargets = new Stack <RenderTarget>(); _vertexCache = new VertexPositionColorTexture[1024]; _indexCache = new int[1024]; _device = Stage.game.GraphicsDevice; _scissorTestEnabled = new RasterizerState(); _scissorTestEnabled.CullMode = CullMode.None; _scissorTestEnabled.ScissorTestEnable = true; _defaultEffect = Stage.game.Content.Load <Effect>("FairyGUI"); _defaultPass = _defaultEffect.Techniques["Default"].Passes[0]; _grayedPass = _defaultEffect.Techniques["Grayed"].Passes[0]; _spriteEffect = new SpriteEffect(_device); _spritePass = _spriteEffect.CurrentTechnique.Passes[0]; }
public void ZoomIn() { //set all receipts unseeable for raycast foreach (GameObject go in ReceiptManager.Instance.Receipts) { go.layer = 2; } //the screen goes dark GameObject darkScreenPic = GameObject.Find("DarkBackground"); SpriteEffect effect = darkScreenPic.AddComponent <SpriteEffect>(); effect.numberAssignment(5f, SpriteEffect.EffectType.ShowSomeImage); //creat a copy in UI layer Sprite receiptSprite = GetComponent <SpriteRenderer>().sprite; GameObject zoomInObj = Instantiate(Resources.Load <GameObject>("Prefab/ZoomInImage"), darkScreenPic.transform.parent); zoomInObj.GetComponent <Image>().sprite = receiptSprite; zoomInObj.GetComponent <Image>().SetNativeSize(); zoomInObj.transform.localScale = zoomScale * zoomInObj.transform.localScale; StartCoroutine(waitAndAddCanvasImage(0.5f, zoomInObj)); }
public void PlayerDiedEffect() { GameObject obj = Instantiate(effectPrefab); RectTransform rect = obj.GetComponent <RectTransform>(); Transform parent = gameObject.transform.parent; GameObject UI = parent.gameObject; GameObject canvas = UI.GetComponent <Canvas>().gameObject; GameObject EffectContainer = canvas.transform.Find("Effects").gameObject; obj.transform.SetParent(EffectContainer.transform); SpriteEffect spriteEffect = obj.GetComponent <SpriteEffect>(); spriteEffect.colorEffect = Color.white; spriteEffect.colorEffect.a = .6f; spriteEffect.colorTime = 1f; rect.localPosition = parent.localPosition; rect.localScale = parent.localScale; rect.localRotation = parent.localRotation; }
/// <summary> /// スプライトを描画する /// </summary> public void Draw() { BlendState lastBlendState = Context.DeviceManager.Context.OutputMerger.BlendState; Viewport[] lastViewports = Context.DeviceManager.Context.Rasterizer.GetViewports(); //WVP行列をエフェクトに渡す SpriteEffect.GetVariableBySemantic("WORLDVIEWPROJECTION") .AsMatrix() .SetMatrix(ViewMatrix * SpriteProjectionMatrix); SpriteEffect.GetVariableBySemantic("TRANSCOLOR").AsVector().Set(TransparentColor); SpriteEffect.GetVariableBySemantic("SPRITETEXTURE").AsResource().SetResource(SpriteTexture); Context.DeviceManager.Context.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(VertexBuffer, SpriteVertexLayout.SizeInBytes, 0)); Context.DeviceManager.Context.InputAssembler.InputLayout = VertexInputLayout; Context.DeviceManager.Context.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList; Context.DeviceManager.Context.OutputMerger.BlendState = state; Context.DeviceManager.Context.Rasterizer.SetViewports(spriteViewport); renderPass.Apply(Context.DeviceManager.Context); Context.DeviceManager.Context.Draw(6, 0); Context.DeviceManager.Context.Rasterizer.SetViewports(lastViewports); Context.DeviceManager.Context.OutputMerger.BlendState = lastBlendState; }
public override void onClose() { float x = Math.Sign(vis.Sprite.Scale.X); SpriteEffect boom = new SpriteEffect(Level); boom.Effect = "bigBang"; boom.Frames = new Vector(1, 48); boom.Position = Gob.Position; boom.Speed = 1; boom.Sprite.Scale *= 1.5f; vis.close(); SpriteEffect death = new SpriteEffect(Level); death.Effect = "enemy1c"; death.Frames = new Vector(1, 27); death.Position = Gob.Position + new Vector(0, -75);; death.Speed = 13; death.StartFrame = 7; death.EndFrame = 13; death.Sprite.Scale = new Vector(x, 1) * 1.5f; }
/// <summary> /// Creates a new SpriteEffect by cloning parameter settings from an existing instance. /// </summary> protected SpriteEffect(SpriteEffect cloneSource) : base(cloneSource) { CacheEffectParameters(); }
public void Dispose() { if ( vertexBuffer != null ) { if ( --indexReference == 0 ) { vertexDeclaration.Dispose (); vertexDeclaration = null; if ( baseSpriteEffect != null ) { baseSpriteEffect.Dispose (); baseSpriteEffect = null; } } vertexBuffer.Dispose (); vertexBuffer = null; } }