 |
Jypeli
9
The simple game programming library
|
Siirry tämän tiedoston dokumentaatioon.
6 public partial class Game
96 fpsText = (10000000.0 / gameTime.ElapsedGameTime.Ticks).ToString(
"F2");
118 for (
int i =
Layers.FirstIndex; i <=
Layers.LastIndex; i++)
152 Matrix transform =
Matrix.CreateRotationZ( (
float)obj.AbsoluteAngle.Radians ) *
Matrix.CreateTranslation( center );
154 for (
int j = 0; j < vertexes.Length - 1; j++ )
156 double x1 = wmul * vertexes[j].
X;
157 double y1 = hmul * vertexes[j].Y;
158 double x2 = wmul * vertexes[j + 1].X;
159 double y2 = hmul * vertexes[j + 1].Y;
161 var t1 = Vector2.Transform(
new Vector2( (
float)x1, (
float)y1 ), transform );
162 var t2 = Vector2.Transform(
new Vector2( (
float)x2, (
float)y2 ), transform );
164 canvas.
DrawLine( t1.X, t1.Y, t2.X, t2.Y );
167 if ( vertexes.Length > 2 )
169 double x1 = wmul * vertexes[vertexes.Length - 1].X;
170 double y1 = hmul * vertexes[vertexes.Length - 1].Y;
171 double x2 = wmul * vertexes[0].X;
172 double y2 = hmul * vertexes[0].Y;
174 var t1 = Vector2.Transform(
new Vector2( (
float)x1, (
float)y1 ), transform );
175 var t2 = Vector2.Transform(
new Vector2( (
float)x2, (
float)y2 ), transform );
177 canvas.
DrawLine( t1.X, t1.Y, t2.X, t2.Y );
183 if ( obj.
Body ==
null || obj.
Body.Shape ==
null || obj.
Body.Shape.Cache ==
null )
186 var vertexes = obj.
Body.Shape.Cache.OutlineVertices;
187 double wmul = obj.
Body.Shape.IsUnitSize ? obj.Width : 1;
188 double hmul = obj.
Body.Shape.IsUnitSize ? obj.Height : 1;
195 for (
int j = 0; j < vertexes.Length - 1; j++ )
197 double x1 = wmul * vertexes[j].
X;
198 double y1 = hmul * vertexes[j].Y;
199 double x2 = wmul * vertexes[j + 1].X;
200 double y2 = hmul * vertexes[j + 1].Y;
202 var t1 = Vector2.Transform(
new Vector2( (
float)x1, (
float)y1 ), transform );
203 var t2 = Vector2.Transform(
new Vector2( (
float)x2, (
float)y2 ), transform );
205 canvas.
DrawLine( t1.X, t1.Y, t2.X, t2.Y );
208 if ( vertexes.Length > 2 )
210 double x1 = wmul * vertexes[vertexes.Length - 1].X;
211 double y1 = hmul * vertexes[vertexes.Length - 1].Y;
212 double x2 = wmul * vertexes[0].X;
213 double y2 = hmul * vertexes[0].Y;
215 var t1 = Vector2.Transform(
new Vector2( (
float)x1, (
float)y1 ), transform );
216 var t2 = Vector2.Transform(
new Vector2( (
float)x2, (
float)y2 ), transform );
218 canvas.
DrawLine( t1.X, t1.Y, t2.X, t2.Y );
253 for (
int i =
Layers.FirstIndex; i <=
Layers.LastIndex; i++ )
255 foreach ( var obj
in Layers[i].Objects )
257 if ( obj ==
null || obj.Shape ==
null || obj.Shape.Cache ==
null || obj.Layer ==
null )
readonly Vector[] OutlineVertices
Ulkoreunan verteksit, lueteltuna vastapäivään.
Microsoft.Xna.Framework.Matrix Matrix
static readonly Color HotPink
Pinkki.
ButtonState GetKeyState(Key k)
Palauttaa annetun näppäimen tilan (ks. ButtonState).
override Angle Angle
Olion kulma tai rintamasuunta. Nolla = osoittaa oikealle.
Label LayerDisplay
"Layers"-näyttö.
void PaintShapeOutlines(Canvas canvas, IGameObject obj)
void Begin(ref Matrix worldMatrix, Dimensional dimensionSource)
Label FPSDisplay
FPS-näyttö.
Color BrushColor
Pensselin väri.
static Layer CreateStaticLayer()
Luo staattisen kerroksen (ei liiku kameran mukana)
Yhteinen rajapinta kaikille peliolioille.
double Width
Näytön leveys x-suunnassa.
void UpdateDebugScreen(Time time)
double Top
Näytön yläreunan y-koordinaatti.
Kamera. Määrittää mikä osa pelitasosta on kerralla näkyvissä.
virtual void OnObjectAdded(IGameObject obj)
override Color Color
Ikkunan väri.
Window LayerWindow
"Layers"-ikkuna. Huom. asettaa kokonsa automaattisesti.
new double Height
Korkeus.
static readonly Color LightGreen
Vaalea vihreä.
bool DebugKeyEnabled
Debug-ruutu F12-näppäimestä päällä / pois.
abstract ShapeCache Cache
virtual void OnObjectRemoved(IGameObject obj)
double Right
Näytön oikean reunan x-koordinaatti.
static readonly Color DarkRed
Tumma punainen.
const string layerTextTitle
Kerros. Vastaa olioiden piirtämisestä.
Window FPSWindow
FPS-ikkuna.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
static ScreenView Screen
Näytön dimensiot, eli koko ja reunat.
static readonly Color Blue
Sininen.
StringBuilder layerTextBuilder
void DrawLine(Vector startPoint, Vector endPoint)
Piirtää janan.
static readonly Color Salmon
Lohenpunainen.
Color TextColor
Tekstin väri.
Vector WorldToScreen(Vector point)
Muuntaa annetun pisteen maailmankoordinaateista ruutukoordinaatteihin.
override Vector Size
Tekstikentän koko. Jos SizeMode on SizeMode.StretchText, teksti venytetään kentän koon mukaiseksi.
ButtonState
Napin (minkä tahansa) asento.
static bool IsCursorOn(ScreenView screen, MouseState state, GameObject obj)
Onko hiiren kursori annetun olion päällä.
bool DebugScreenVisible
Debug-ruutu näkyvissä / pois.
Pelialueella liikkuva olio. Käytä fysiikkapeleissä PhysicsObject-olioita.
static readonly Color White
Valkoinen.
void UpdateFps(GameTime gameTime)
Jypelin aika pitää sisällään tiedon edellisestä pelin päivityksestä, MonoGamen aika edellisestä ruudu...
virtual string Text
Teksti.
void PaintDebugScreen(Canvas canvas)
SynchronousList< Layer > Layers
Kerrokset, joilla pelioliot viihtyvät.
Layer DebugLayer
Debug-ruutukerros, joka näkyy kun painetaan F12. Voit lisätä olioita myös tälle kerrokselle.
abstract bool IsUnitSize
If true, the shape must be scaled by the size of the object that has the shape. Typically,...
double Left
Näytön vasemman reunan x-koordinaatti.
SynchronousList< IGameObject > Objects
static readonly Color LightGray
Vaalea harmaa.
void PaintPhysicsOutlines(Canvas canvas, PhysicsObject obj)