2using Microsoft.Xna.Framework;
6 public partial class Game
144 fpsText = (10000000.0 / gameTime.ElapsedGameTime.Ticks).ToString(
"F2");
182 for (
int i =
Layers.FirstIndex; i <=
Layers.LastIndex; i++)
222 for (
int j = 0; j < vertexes.Length - 1; j++)
224 double x1 = wmul * vertexes[j].X;
225 double y1 = hmul * vertexes[j].Y;
226 double x2 = wmul * vertexes[j + 1].X;
227 double y2 = hmul * vertexes[j + 1].Y;
229 var t1 =
Vector2.Transform(
new Vector2((
float)x1, (
float)y1), transform);
230 var t2 =
Vector2.Transform(
new Vector2((
float)x2, (
float)y2), transform);
232 canvas.
DrawLine(t1.X, t1.Y, t2.X, t2.Y);
235 if (vertexes.Length > 2)
237 double x1 = wmul * vertexes[vertexes.Length - 1].X;
238 double y1 = hmul * vertexes[vertexes.Length - 1].Y;
239 double x2 = wmul * vertexes[0].X;
240 double y2 = hmul * vertexes[0].Y;
242 var t1 =
Vector2.Transform(
new Vector2((
float)x1, (
float)y1), transform);
243 var t2 =
Vector2.Transform(
new Vector2((
float)x2, (
float)y2), transform);
245 canvas.
DrawLine(t1.X, t1.Y, t2.X, t2.Y);
251 double x2 = obj.
Width / 2;
254 var t1 =
Vector2.Transform(
new Vector2((
float)x1, (
float)y1), transform);
255 var t2 =
Vector2.Transform(
new Vector2((
float)x2, (
float)y2), transform);
257 canvas.
DrawLine(t1.X, t1.Y, t2.X, t2.Y);
263 if (obj.
Body ==
null || obj.
Body.Shape ==
null || obj.
Body.Shape.Cache ==
null)
266 var vertices = obj.
Body.Vertices;
278 foreach (var vertexes
in vertices)
280 for (
int j = 0; j < vertexes.Count - 1; j++)
282 double x1 = wmul * vertexes[j].X;
283 double y1 = hmul * vertexes[j].Y;
284 double x2 = wmul * vertexes[j + 1].X;
285 double y2 = hmul * vertexes[j + 1].Y;
287 var t1 =
Vector2.Transform(
new Vector2((
float)x1, (
float)y1), transform);
288 var t2 =
Vector2.Transform(
new Vector2((
float)x2, (
float)y2), transform);
290 canvas.DrawLine(t1.X, t1.Y, t2.X, t2.Y);
293 if (vertexes.Count > 2)
295 double x1 = wmul * vertexes[vertexes.Count - 1].X;
296 double y1 = hmul * vertexes[vertexes.Count - 1].Y;
297 double x2 = wmul * vertexes[0].X;
298 double y2 = hmul * vertexes[0].Y;
300 var t1 =
Vector2.Transform(
new Vector2((
float)x1, (
float)y1), transform);
301 var t2 =
Vector2.Transform(
new Vector2((
float)x2, (
float)y2), transform);
303 canvas.DrawLine(t1.X, t1.Y, t2.X, t2.Y);
310 for (
int i =
Layers.FirstIndex; i <=
Layers.LastIndex; i++)
312 foreach (var obj
in Layers[i].Objects)
314 if (obj ==
null || obj.Shape ==
null || obj.Shape.Cache ==
null || obj.Layer ==
null || obj is
Widget)
328 foreach (var o
in ps.Objects)
System.Numerics.Vector2 Vector2
System.Drawing.Color Color
Kamera. Määrittää mikä osa pelitasosta on kerralla näkyvissä.
Vector Position
Kameran sijainti.
double ZoomFactor
Kameran zoomauskerroin. Oletuksena 1.0. Mitä suurempi zoomauskerroin, sitä lähempänä kamera on (esim ...
void End()
Lopettaa piirtämisen. Sinun ei tarvitse kutsua tätä.
void Begin(ref Matrix worldMatrix, Dimensional dimensionSource)
Aloittaa canvaksen piirtämisen. Sinun ei tarvitse kutsua tätä.
void DrawLine(Vector startPoint, Vector endPoint)
Piirtää janan.
Color BrushColor
Pensselin väri.
Layer DebugLayer
Debug-ruutukerros, joka näkyy kun painetaan F12. Voit lisätä olioita myös tälle kerrokselle.
Label FPSDisplay
FPS-näyttö.
virtual void OnObjectAdded(IGameObject obj)
Kun olio lisätään kerrokselle
bool DebugKeyEnabled
Debug-ruutu F12-näppäimestä päällä / pois.
bool DebugScreenVisible
Debug-ruutu näkyvissä / pois.
void PaintPhysicsOutlines(Canvas canvas, PhysicsObject obj, Color color)
void UpdateDebugScreen(Time time)
Window FPSWindow
FPS-ikkuna.
virtual void OnObjectRemoved(IGameObject obj)
Kun olio poistetaan kerrokselta
Camera Camera
Kamera, joka näyttää ruudulla näkyvän osan kentästä. Kameraa voidaan siirtää, zoomata tai asettaa seu...
StringBuilder layerTextBuilder
void PaintDebugScreen(Canvas canvas)
Label LayerDisplay
"Layers"-näyttö.
const string layerTextTitle
SynchronousList< Layer > Layers
Kerrokset, joilla pelioliot viihtyvät.
static Game Instance
Käynnissä olevan pelin pääolio.
Window LayerWindow
"Layers"-ikkuna. Huom. asettaa kokonsa automaattisesti.
static ScreenView Screen
Näytön dimensiot, eli koko ja reunat.
void PaintShapeOutlines(Canvas canvas, IGameObject obj, Color color)
void UpdateFps(GameTime gameTime)
Jypelin aika pitää sisällään tiedon edellisestä pelin päivityksestä, MonoGamen aika edellisestä ruudu...
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
override Vector?? Position
override Vector Size
Olion koko pelimaailmassa. Kertoo olion äärirajat, ei muotoa.
void Add(IGameObject childObject)
Lisää annetun peliolion tämän olion lapseksi. Lapsiolio liikkuu tämän olion mukana.
virtual Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
double Top
Olion yläreunan y-koordinaatti.
double Left
Olion vasemman reunan x-koordinaatti.
double Right
Olion oikean reunan x-koordinaatti.
ButtonState GetKeyState(Key k)
Palauttaa annetun näppäimen tilan (ks. ButtonState).
override Vector Size
Tekstikentän koko. Jos SizeMode on SizeMode.StretchText, teksti venytetään kentän koon mukaiseksi.
virtual string Text
Teksti.
Color TextColor
Tekstin väri.
Kerros. Vastaa olioiden piirtämisestä.
void Update(Time time)
Ajaa päivityksen kerroksen olioille ja efekteille
static Layer CreateStaticLayer()
Luo staattisen kerroksen (ei liiku kameran mukana)
SynchronousList< IGameObject > Objects
Kerroksen oliot
static bool IsCursorOn(ScreenView screen, MouseState state, GameObject obj)
Onko hiiren kursori annetun olion päällä.
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
IPhysicsBody Body
Fysiikkamoottorin käsittelemä fysiikkakappale.
override Vector?? Position
Rakenne, joka pitää fysiikkaoliot kiinteän matkan päässä toisistaan.
double Top
Näytön yläreunan y-koordinaatti.
double Left
Näytön vasemman reunan x-koordinaatti.
double Right
Näytön oikean reunan x-koordinaatti.
readonly Vector[] OutlineVertices
Ulkoreunan verteksit, lueteltuna vastapäivään.
static readonly Ellipse Circle
Ympyrä tai ellipsi.
abstract bool IsUnitSize
If true, the shape must be scaled by the size of the object that has the shape. Typically,...
abstract ShapeCache Cache
Muodon verteksit sisällään pitävä olio.
override Color Color
Ikkunan väri.
new double Height
Korkeus.
Yhteinen rajapinta kaikille peliolioille.
new Vector Position
Paikka.
ButtonState
Napin (minkä tahansa) asento.
Key
Näppäimistön näppäin.
Microsoft.Xna.Framework.Matrix Matrix
double Radians
Palauttaa tai asettaa kulman radiaaneina.
static readonly Color Blue
Sininen.
static readonly Color White
Valkoinen.
static readonly Color DarkRed
Tumma punainen.
static readonly Color LightGray
Vaalea harmaa.
static readonly Color Salmon
Lohenpunainen.
static readonly Color HotPink
Pinkki.
static readonly Color LightGreen
Vaalea vihreä.
static readonly Color Gray
Harmaa.
Debug-näkymän (F12) piirtoasetuksia
static bool DrawOutlines
Piirretäänkö objektien ääriviivoja
static bool DrawPhysicsOutlines
Piirretäänkö fysiikkamuotojen verteksien ääriviivat. Toimii ainoastaan Farseer-moottorilla.
static bool DrawCircleRotation
Piirretäänkö ympyrän keskikohdasta viiva sen oikeaan reunaan.
static Color PhysicsObjectHoverColor
Millä värillä PhysicsObjectien ääriviivat piirretään kun hiiri on niiden päällä
static Color GameObjectColor
Millä värillä GameObjectien ääriviivat piirretään
static Color GameObjectHoverColor
Millä värillä GameObjectien ääriviivat piirretään kun hiiri on niiden päällä
static Color PhysicsObjectVertexColor
Millä värillä PhysicsObjectien fysiikkamuotojen verteksien ääriviivat piirretään
static Color PhysicsObjectColor
Millä värillä PhysicsObjectien ääriviivat piirretään
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
double Y
Vektorin Y-komponentti
double X
Vektorin X-komponentti.