Jypeli  5
The simple game programming library
ColorTileMap.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 using System.IO;
3 using System.Collections.Generic;
4 using System.Linq;
5 
6 namespace Jypeli
7 {
13  public class ColorTileMap : AbstractTileMap<Color>
14  {
15  private double _tolerance = 30;
16 
17  protected override Color Null
18  {
19  get { return Color.Transparent; }
20  }
21 
27  public double ColorTolerance
28  {
29  get { return _tolerance; }
30  set
31  {
32  if (value < 0) throw new ArgumentException("Tolerance must not be negative.");
33  _tolerance = value;
34  }
35  }
36 
41  public ColorTileMap( Image img )
42  : base( img.GetData() )
43  {
44  }
45 
50  public ColorTileMap(string assetName)
51  : this(Game.LoadImage(assetName))
52  {
53  }
54 
59  public static ColorTileMap FromLevelAsset( string assetName )
60  {
61  return new ColorTileMap( Game.LoadImage( assetName ) );
62  }
63 
64  protected virtual bool ItemEquals( Color a, Color b )
65  {
66  return ( a.AlphaComponent == b.AlphaComponent && Color.Distance( a, b ) <= ColorTolerance );
67  }
68 
76  public void SetTileMethod(string hexCode, TileMethod method)
77  {
78  SetTileMethod(Color.FromHexCode(hexCode), method);
79  }
80 
89  public void SetTileMethod<T1>(string hexCode, TileMethod<T1> method, T1 p1)
90  {
91  SetTileMethod(Color.FromHexCode(hexCode), method, p1);
92  }
93 
103  public void SetTileMethod<T1, T2>(string hexCode, TileMethod<T1, T2> method, T1 p1, T2 p2)
104  {
105  SetTileMethod(Color.FromHexCode(hexCode), method, p1, p2);
106  }
107 
118  public void SetTileMethod<T1, T2, T3>(string hexCode, TileMethod<T1, T2, T3> method, T1 p1, T2 p2, T3 p3)
119  {
120  SetTileMethod(Color.FromHexCode(hexCode), method, p1, p2, p3);
121  }
122  }
123 }
static Image LoadImage(string name)
Lataa kuvan contentista.
Definition: Game.cs:1014
void SetTileMethod< T1, T2, T3 >(string hexCode, TileMethod< T1, T2, T3 > method, T1 p1, T2 p2, T3 p3)
Määrittää, että tietyn ruutukentän symbolin (tileSymbol) kohdalla kutsutaan aliohjelmaa f...
static ColorTileMap FromLevelAsset(string assetName)
Lukee ruutukentän Content-projektin kuvatiedostosta.
Definition: ColorTileMap.cs:59
static double Distance(Color a, Color b)
Laskee kahden värin (euklidisen) etäisyyden RGB-väriavaruudessa. Värikomponentit ovat välillä 0-255 j...
Definition: Color.cs:273
void SetTileMethod(string hexCode, TileMethod method)
Määrittää, että tietyn ruutukentän symbolin (tileSymbol) kohdalla kutsutaan aliohjelmaa f...
Definition: ColorTileMap.cs:76
static Color FromHexCode(string hexString)
Palauttaa heksakoodia vastaavan värin.
Definition: Color.cs:131
delegate void TileMethod< T1, T2, T3 >(Vector position, double width, double height, T1 p1, T2 p2, T3 p3)
void SetTileMethod< T1 >(string hexCode, TileMethod< T1 > method, T1 p1)
Määrittää, että tietyn ruutukentän symbolin (tileSymbol) kohdalla kutsutaan aliohjelmaa f...
Definition: ColorTileMap.cs:89
Kuva.
Definition: Image.cs:24
override Color Null
Definition: ColorTileMap.cs:18
Ruutukartta, jonka avulla olioita voidaan helposti asettaa tasavälein ruudukkoon. Ruutukartta koostuu...
Definition: ColorTileMap.cs:13
double ColorTolerance
Väritoleranssi. Mitä pienempi toleranssi, sitä tarkemmin eri värit erotellaan toisistaan. Nollatoleranssilla värit on annettava tarkkoina rgb-koodeina, suuremmilla toleransseilla riittää "sinne päin".
Definition: ColorTileMap.cs:28
delegate void TileMethod< T1 >(Vector position, double width, double height, T1 p1)
static readonly Color Transparent
Läpinäkyvä väri.
Definition: Color.cs:869
Peliluokka reaaliaikaisille peleille.
Definition: DebugScreen.cs:10
delegate void TileMethod(Vector position, double width, double height)
ColorTileMap(string assetName)
Luo uuden ruutukartan.
Definition: ColorTileMap.cs:50
virtual bool ItemEquals(Color a, Color b)
Definition: ColorTileMap.cs:64
delegate void TileMethod< T1, T2 >(Vector position, double width, double height, T1 p1, T2 p2)
byte AlphaComponent
Läpinäkymättömyys välillä 0-255
Definition: Color.cs:37
Väri.
Definition: Color.cs:13
ColorTileMap(Image img)
Luo uuden ruutukartan.
Definition: ColorTileMap.cs:41
void SetTileMethod< T1, T2 >(string hexCode, TileMethod< T1, T2 > method, T1 p1, T2 p2)
Määrittää, että tietyn ruutukentän symbolin (tileSymbol) kohdalla kutsutaan aliohjelmaa f...