Jypeli  5
The simple game programming library
View.cs
Siirry tämän tiedoston dokumentaatioon.
1 #region MIT License
2 /*
3  * Copyright (c) 2009 University of Jyväskylä, Department of Mathematical
4  * Information Technology.
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 #endregion
25 
26 /*
27  * Authors: Tero Jäntti, Tomi Karppinen, Janne Nikkanen.
28  */
29 
30 using Microsoft.Xna.Framework;
31 using Microsoft.Xna.Framework.Graphics;
32 using AdvanceMath;
33 
34 namespace Jypeli
35 {
41  public class ScreenView : Dimensional
42  {
43  internal Viewport viewPort;
44 
49  public ScreenView( Viewport viewPort )
50  {
51  this.viewPort = viewPort;
52  }
53 
57  public Vector Center
58  {
59  get { return Vector.Zero; }
60  }
61 
65  public double Width
66  {
67  get { return viewPort.Width; }
68  }
69 
73  public double Height
74  {
75  get { return viewPort.Height; }
76  }
77 
81  public Vector Size
82  {
83  get { return new Vector( viewPort.Width, viewPort.Height ); }
84  }
85 
89  public double Left
90  {
91  get { return -Width / 2; }
92  }
93 
97  public double Right
98  {
99  get { return Width / 2; }
100  }
101 
105  public double Top
106  {
107  get { return Height / 2; }
108  }
109 
113  public double Bottom
114  {
115  get { return -Height / 2; }
116  }
117 
121  public double WidthSafe
122  {
123  get { return viewPort.TitleSafeArea.Width; }
124  }
125 
129  public double HeightSafe
130  {
131  get { return viewPort.TitleSafeArea.Height; }
132  }
133 
137  public double LeftSafe
138  {
139  get { return -viewPort.TitleSafeArea.Width / 2; }
140  }
141 
145  public double RightSafe
146  {
147  get { return viewPort.TitleSafeArea.Width / 2; }
148  }
149 
153  public double TopSafe
154  {
155  get { return viewPort.TitleSafeArea.Height / 2; }
156  }
157 
161  public double BottomSafe
162  {
163  get { return -viewPort.TitleSafeArea.Height / 2; }
164  }
165 
166  internal Vector FromXnaScreenCoordinates(Vector2 position)
167  {
168  double x = position.X - (viewPort.Width / 2);
169  double y = -position.Y + (viewPort.Height / 2);
170  return new Vector(x, y);
171  }
172  }
173 
178  {
182  Center,
183 
187  Left,
188 
192  Right
193  }
194 
198  public enum VerticalAlignment
199  {
203  Center,
204 
208  Top,
209 
213  Bottom
214  }
215 }
216 
HorizontalAlignment
Asemointi vaakasuunnassa.
Definition: View.cs:177
double WidthSafe
Näytön "turvallinen" ts. laiteriippumaton leveys x-suunnassa.
Definition: View.cs:122
double TopSafe
Näytön yläreunan "turvallinen" ts. laiteriippumaton y-koordinaatti.
Definition: View.cs:154
Sisältää näytön leveyden ja korkeuden sekä reunojen koordinaatit. Y-koordinaatti kasvaa ylöspäin...
Definition: View.cs:41
double LeftSafe
Näytön vasemman reunan "turvallinen" ts. laiteriippumaton x-koordinaatti.
Definition: View.cs:138
ScreenView(Viewport viewPort)
Alustaa uuden näyttönäkymän.
Definition: View.cs:49
double BottomSafe
Näytön alareunan "turvallinen" ts. laiteriippumaton y-koordinaatti.
Definition: View.cs:162
double RightSafe
Näytön oikean reunan "turvallinen" ts. laiteriippumaton x-koordinaatti.
Definition: View.cs:146
static readonly Vector Zero
Nollavektori.
Definition: Vector.cs:61
double Left
Näytön vasemman reunan x-koordinaatti.
Definition: View.cs:90
double Height
Näytön korkeus y-suunnassa.
Definition: View.cs:74
Vector Center
Näytön keskipiste.
Definition: View.cs:58
double X
Definition: Vector.cs:274
double Top
Näytön yläreunan y-koordinaatti.
Definition: View.cs:106
Vector Size
Näytön koko vektorina.
Definition: View.cs:82
VerticalAlignment
Asemointi pystysuunnassa.
Definition: View.cs:198
double Right
Näytön oikean reunan x-koordinaatti.
Definition: View.cs:98
2D-vektori.
Definition: Vector.cs:56
double HeightSafe
Näytön "turvallinen" ts. laiteriippumaton korkeus y-suunnassa.
Definition: View.cs:130
double Width
Näytön leveys x-suunnassa.
Definition: View.cs:66
double Bottom
Näytön alareunan y-koordinaatti.
Definition: View.cs:114
Olio jolla on reunat.
Definition: Dimensional.cs:11