Jypeli 10
The simple game programming library
Borders.cs
Siirry tämän tiedoston dokumentaatioon.
1using System;
2
3namespace Jypeli
4{
5 public partial class Level
6 {
7 private Surface CreateBorder( Direction direction, double restitution, bool isVisible, Image borderImage, Color borderColor )
8 {
9 Surface s = Surface.Create( this, direction );
10 s.Restitution = restitution;
11 s.IsVisible = isVisible;
12 s.Image = borderImage;
13 s.Color = borderColor;
14 game.Add( s );
15 return s;
16 }
17
18 private Surface CreateBorder( Direction direction, double min, double max, int points, double restitution, bool isVisible, Image borderImage, Color borderColor )
19 {
20 Surface s = Surface.Create( this, direction, min, max, points );
21 s.Restitution = restitution;
22 s.IsVisible = isVisible;
23 s.Image = borderImage;
24 s.Color = borderColor;
25 game.Add( s );
26 return s;
27 }
28
33 {
34 return CreateBorders( 1, true );
35 }
36
41 public Surfaces CreateBorders( bool isVisible )
42 {
43 return CreateBorders( 1, isVisible );
44 }
45
51 public Surfaces CreateBorders( double restitution, bool isVisible )
52 {
53 return CreateBorders( restitution, isVisible, Color.Gray );
54 }
55
62 public Surfaces CreateBorders( double restitution, bool isVisible, Color borderColor )
63 {
64 Surfaces borders = new Surfaces();
65 borders.l = CreateBorder( Direction.Left, restitution, isVisible, null, borderColor );
66 borders.r = CreateBorder( Direction.Right, restitution, isVisible, null, borderColor );
67 borders.t = CreateBorder( Direction.Up, restitution, isVisible, null, borderColor );
68 borders.b = CreateBorder( Direction.Down, restitution, isVisible, null, borderColor );
69 return borders;
70 }
71
78 public Surfaces CreateBorders( double restitution, bool isVisible, Image borderImage )
79 {
80 Surfaces borders = new Surfaces();
81 borders.l = CreateBorder( Direction.Left, restitution, isVisible, borderImage, Color.Gray );
82 borders.r = CreateBorder( Direction.Right, restitution, isVisible, borderImage, Color.Gray );
83 borders.t = CreateBorder( Direction.Up, restitution, isVisible, borderImage, Color.Gray );
84 borders.b = CreateBorder( Direction.Down, restitution, isVisible, borderImage, Color.Gray );
85 return borders;
86 }
87
92 {
93 return CreateHorizontalBorders( 1, true );
94 }
95
100 public Surfaces CreateHorizontalBorders( bool isVisible )
101 {
102 return CreateHorizontalBorders( 1, isVisible );
103 }
104
110 public Surfaces CreateHorizontalBorders( double restitution, bool isVisible )
111 {
112 return CreateHorizontalBorders( restitution, isVisible, Color.Gray );
113 }
114
121 public Surfaces CreateHorizontalBorders( double restitution, bool isVisible, Color borderColor )
122 {
123 Surfaces borders = new Surfaces();
124 borders.l = CreateBorder( Direction.Left, restitution, isVisible, null, borderColor );
125 borders.r = CreateBorder( Direction.Right, restitution, isVisible, null, borderColor );
126 return borders;
127 }
128
135 public Surfaces CreateVerticalBorders( double restitution, bool isVisible, Color borderColor )
136 {
137 Surfaces borders = new Surfaces();
138 borders.t = CreateBorder( Direction.Up, restitution, isVisible, null, borderColor );
139 borders.b = CreateBorder( Direction.Down, restitution, isVisible, null, borderColor );
140 return borders;
141 }
142
149 public Surfaces CreateHorizontalBorders( double restitution, bool isVisible, Image borderImage )
150 {
151 Surfaces borders = new Surfaces();
152 borders.l = CreateBorder( Direction.Left, restitution, isVisible, borderImage, Color.Gray );
153 borders.r = CreateBorder( Direction.Right, restitution, isVisible, borderImage, Color.Gray );
154 return borders;
155 }
156
161 {
162 return CreateVerticalBorders( 1, true );
163 }
164
169 public Surfaces CreateVerticalBorders( bool isVisible )
170 {
171 return CreateVerticalBorders( 1, isVisible );
172 }
173
179 public Surfaces CreateVerticalBorders( double restitution, bool isVisible )
180 {
181 return CreateVerticalBorders( restitution, isVisible, Color.Gray );
182 }
183
190 public Surfaces CreateVerticalBorders( double restitution, bool isVisible, Image borderImage )
191 {
192 Surfaces borders = new Surfaces();
193 borders.t = CreateBorder( Direction.Up, restitution, isVisible, borderImage, Color.Gray );
194 borders.b = CreateBorder( Direction.Down, restitution, isVisible, borderImage, Color.Gray );
195 return borders;
196 }
197
206 public Surfaces CreateBorders( double min, double max, int points, double restitution, Color borderColor )
207 {
208 Surfaces s = new Surfaces();
209 s.l = CreateBorder( Direction.Left, min, max, points, restitution, true, null, borderColor );
210 s.r = CreateBorder( Direction.Right, min, max, points, restitution, true, null, borderColor );
211 s.t = CreateBorder( Direction.Up, min, max, points, restitution, true, null, borderColor );
212 s.b = CreateBorder( Direction.Down, min, max, points, restitution, true, null, borderColor );
213 return s;
214 }
215
224 public Surfaces CreateBorders( double min, double max, int points, double restitution, Image borderImage )
225 {
226 Surfaces s = new Surfaces();
227 s.l = CreateBorder( Direction.Left, min, max, points, restitution, true, borderImage, Color.Gray );
228 s.r = CreateBorder( Direction.Right, min, max, points, restitution, true, borderImage, Color.Gray );
229 s.t = CreateBorder( Direction.Up, min, max, points, restitution, true, borderImage, Color.Gray );
230 s.b = CreateBorder( Direction.Down, min, max, points, restitution, true, borderImage, Color.Gray );
231 return s;
232 }
233
241 public Surfaces CreateBorders( double min, double max, int points, double restitution )
242 {
243 return CreateBorders( min, max, points, restitution, Color.Gray );
244 }
245
252 public Surfaces CreateBorders( double min, double max, int points )
253 {
254 return CreateBorders( min, max, points, 1, Color.Gray );
255 }
256
264 public Surfaces CreateHorizontalBorders( double min, double max, int points, double restitution )
265 {
266 return CreateHorizontalBorders( min, max, points, restitution, Color.Gray );
267 }
268
277 public Surfaces CreateHorizontalBorders( double min, double max, int points, double restitution, Image borderImage )
278 {
279 Surfaces s = new Surfaces();
280 s.l = CreateBorder( Direction.Left, min, max, points, restitution, true, borderImage, Color.Gray );
281 s.r = CreateBorder( Direction.Right, min, max, points, restitution, true, borderImage, Color.Gray );
282 return s;
283 }
284
293 public Surfaces CreateHorizontalBorders( double min, double max, int points, double restitution, Color borderColor )
294 {
295 Surfaces s = new Surfaces();
296 s.l = CreateBorder( Direction.Left, min, max, points, restitution, true, null, borderColor );
297 s.r = CreateBorder( Direction.Right, min, max, points, restitution, true, null, borderColor );
298 return s;
299 }
300
307 public Surfaces CreateHorizontalBorders( double min, double max, int points )
308 {
309 return CreateHorizontalBorders( min, max, points, 1 );
310 }
311
319 public Surfaces CreateVerticalBorders( double min, double max, int points, double restitution )
320 {
321 return CreateVerticalBorders( min, max, points, restitution, Color.Gray );
322 }
323
332 public Surfaces CreateVerticalBorders( double min, double max, int points, double restitution, Image borderImage )
333 {
334 Surfaces s = new Surfaces();
335 s.t = CreateBorder( Direction.Up, min, max, points, restitution, true, borderImage, Color.Gray );
336 s.b = CreateBorder( Direction.Down, min, max, points, restitution, true, borderImage, Color.Gray );
337 return s;
338 }
339
348 public Surfaces CreateVerticalBorders( double min, double max, int points, double restitution, Color borderColor )
349 {
350 Surfaces s = new Surfaces();
351 s.t = CreateBorder( Direction.Up, min, max, points, restitution, true, null, borderColor );
352 s.b = CreateBorder( Direction.Down, min, max, points, restitution, true, null, borderColor );
353 return s;
354 }
355
362 public Surfaces CreateVerticalBorders( double min, double max, int points )
363 {
364 return CreateVerticalBorders( min, max, points, 1 );
365 }
366
367 private PhysicsObject CreateBorder( double width, double height )
368 {
370 b.Color = Color.Gray;
371 //b.Body.CollisionIgnorer = ignorerForBorders;
372 game.Add( b );
373 return b;
374 }
375
382 public PhysicsObject CreateLeftBorder( double restitution, bool isVisible )
383 {
384 double thickness = this.GetBorderThickness();
385 PhysicsObject b = CreateBorder( thickness, this.Height );
386 b.Position = new Vector( Left - ( thickness / 2 ), Center.Y );
387 b.Restitution = restitution;
388 b.IsVisible = isVisible;
389 return b;
390 }
391
398 public PhysicsObject CreateRightBorder( double restitution, bool isVisible )
399 {
400 double thickness = this.GetBorderThickness();
401 PhysicsObject b = CreateBorder( thickness, this.Height );
402 b.Position = new Vector( Right + ( thickness / 2 ), Center.Y );
403 b.Restitution = restitution;
404 b.IsVisible = isVisible;
405 return b;
406 }
407
414 public PhysicsObject CreateTopBorder( double restitution, bool isVisible )
415 {
416 double thickness = this.GetBorderThickness();
417 PhysicsObject b = CreateBorder( this.Width + ( 2 * thickness ), thickness );
418 b.Angle = Angle.FromRadians( Math.PI );
419 b.Position = new Vector( Center.X, Top + ( thickness / 2 ) );
420 b.Restitution = restitution;
421 b.IsVisible = isVisible;
422 return b;
423 }
424
431 public PhysicsObject CreateBottomBorder( double restitution, bool isVisible )
432 {
433 double thickness = GetBorderThickness();
434 PhysicsObject b = CreateBorder( Width + ( 2 * thickness ), thickness );
435 b.Angle = Angle.Zero;
436 b.Position = new Vector( Center.X, Bottom - ( thickness / 2 ) );
437 b.Restitution = restitution;
438 b.IsVisible = isVisible;
439 return b;
440 }
441
447 {
448 return CreateLeftBorder( 1, true );
449 }
450
456 {
457 return CreateRightBorder( 1, true );
458 }
459
465 {
466 return CreateTopBorder( 1, true );
467 }
468
474 {
475 return CreateBottomBorder( 1, true );
476 }
477
490 public PhysicsObject CreateGround( double[] heights, double scale )
491 {
492 return CreateGround( heights, scale, null );
493 }
494
506 public PhysicsObject CreateGround( double[] heights, double scale, Image image )
507 {
508 var ground = new Surface( this.Width, heights, scale );
509 ground.Position = new Vector( Center.X, Bottom - ( heights.Max() / 2 ) );
510 ground.Image = image;
511 game.Add( ground );
512 return ground;
513 }
514
515 internal double GetBorderThickness()
516 {
517 return this.Width / 10;
518 }
519 }
520}
void Add(Light light)
Lisää valon peliin. Nykyisellään valoja voi olla ainoastaan yksi kappale. Toistaiseksi ei tuettu Wind...
Definition: Effects.cs:27
bool IsVisible
Piirretäänkö oliota ruudulle.
Definition: Appearance.cs:43
virtual Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
Definition: Appearance.cs:65
Image Image
Olion kuva. Voi olla null, jolloin piirretään vain väri.
Kuva.
Definition: Image.cs:30
Pelikenttä, johon voi lisätä olioita. Kentällä voi myös olla reunat ja taustaväri tai taustakuva.
Definition: Borders.cs:6
Surfaces CreateBorders(double min, double max, int points, double restitution, Color borderColor)
Lisää kaikille kentän sivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:206
PhysicsObject CreateRightBorder()
Lisää kenttään oikean reunan.
Definition: Borders.cs:455
Surfaces CreateVerticalBorders(bool isVisible)
Lisää kaikille kentän pystysivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:169
Surfaces CreateVerticalBorders(double min, double max, int points)
Lisää kentän vaakasivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:362
Surfaces CreateHorizontalBorders(bool isVisible)
Lisää kaikille kentän vaakasivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:100
Surfaces CreateHorizontalBorders(double min, double max, int points, double restitution)
Lisää kentän vaakasivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:264
PhysicsObject CreateRightBorder(double restitution, bool isVisible)
Lisää kenttään oikean reunan.
Definition: Borders.cs:398
Surfaces CreateHorizontalBorders(double restitution, bool isVisible)
Lisää kaikille kentän vaakasivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:110
Surfaces CreateVerticalBorders(double restitution, bool isVisible, Color borderColor)
Lisää kentän pystysivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:135
PhysicsObject CreateBottomBorder(double restitution, bool isVisible)
Lisää kenttään alareunan.
Definition: Borders.cs:431
PhysicsObject CreateGround(double[] heights, double scale, Image image)
Helppo tapa lisätä kenttään epätasainen maasto. Maasto kuvataan luettelemalla Y-koordinaatteja vasemm...
Definition: Borders.cs:506
PhysicsObject CreateTopBorder()
Lisää kenttään yläreunan.
Definition: Borders.cs:464
Game game
Definition: Level.cs:78
Surfaces CreateBorders(double min, double max, int points)
Lisää kaikille kentän sivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:252
Surfaces CreateVerticalBorders(double min, double max, int points, double restitution, Image borderImage)
Lisää kentän pystysivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:332
Surfaces CreateHorizontalBorders(double restitution, bool isVisible, Image borderImage)
Lisää kentän vaakasivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:149
double Top
Kentän yläreunan y-koordinaatti.
Definition: Level.cs:152
Surfaces CreateBorders(double restitution, bool isVisible)
Lisää kaikille kentän sivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:51
Surface CreateBorder(Direction direction, double min, double max, int points, double restitution, bool isVisible, Image borderImage, Color borderColor)
Definition: Borders.cs:18
PhysicsObject CreateLeftBorder(double restitution, bool isVisible)
Lisää kenttään vasemman reunan.
Definition: Borders.cs:382
Surfaces CreateBorders()
Lisää kaikille kentän sivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:32
double Left
Kentän vasemman reunan x-koordinaatti.
Definition: Level.cs:136
Surfaces CreateVerticalBorders()
Lisää kaikille kentän pystysivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:160
Surfaces CreateVerticalBorders(double min, double max, int points, double restitution)
Lisää kentän pystysivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:319
Surfaces CreateHorizontalBorders(double min, double max, int points, double restitution, Image borderImage)
Lisää kentän vaakasivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:277
Surfaces CreateBorders(double restitution, bool isVisible, Color borderColor)
Lisää kaikille kentän sivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:62
double Right
Kentän oikean reunan x-koordinaatti.
Definition: Level.cs:144
Surfaces CreateVerticalBorders(double restitution, bool isVisible, Image borderImage)
Lisää kentän pystysivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:190
PhysicsObject CreateLeftBorder()
Lisää kenttään vasemman reunan.
Definition: Borders.cs:446
Surfaces CreateHorizontalBorders(double restitution, bool isVisible, Color borderColor)
Lisää kentän vaakasivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:121
PhysicsObject CreateBottomBorder()
Lisää kenttään alareunan.
Definition: Borders.cs:473
Surfaces CreateHorizontalBorders(double min, double max, int points, double restitution, Color borderColor)
Lisää kentän vaakasivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:293
double Width
Kentän leveys.
Definition: Level.cs:109
double Bottom
Kentän alareunan y-koordinaatti.
Definition: Level.cs:160
Surfaces CreateBorders(double min, double max, int points, double restitution)
Lisää kaikille kentän sivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:241
PhysicsObject CreateBorder(double width, double height)
Definition: Borders.cs:367
Surfaces CreateBorders(double restitution, bool isVisible, Image borderImage)
Lisää kaikille kentän sivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:78
Surfaces CreateBorders(bool isVisible)
Lisää kaikille kentän sivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:41
PhysicsObject CreateGround(double[] heights, double scale)
Helppo tapa lisätä kenttään epätasainen maasto. Maasto kuvataan luettelemalla Y-koordinaatteja vasemm...
Definition: Borders.cs:490
Surfaces CreateHorizontalBorders(double min, double max, int points)
Lisää kentän vaakasivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:307
Surfaces CreateVerticalBorders(double restitution, bool isVisible)
Lisää kaikille kentän pystysivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:179
readonly Vector Center
Kentän keskipiste.
Definition: Level.cs:89
Surfaces CreateBorders(double min, double max, int points, double restitution, Image borderImage)
Lisää kaikille kentän sivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:224
double Height
Kentän korkeus.
Definition: Level.cs:118
Surfaces CreateHorizontalBorders()
Lisää kaikille kentän vaakasivuille reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:91
double GetBorderThickness()
Definition: Borders.cs:515
PhysicsObject CreateTopBorder(double restitution, bool isVisible)
Lisää kenttään yläreunan.
Definition: Borders.cs:414
Surface CreateBorder(Direction direction, double restitution, bool isVisible, Image borderImage, Color borderColor)
Definition: Borders.cs:7
Surfaces CreateVerticalBorders(double min, double max, int points, double restitution, Color borderColor)
Lisää kentän pystysivuille epätasaiset reunat, joihin oliot voivat törmätä.
Definition: Borders.cs:348
Kappale joka noudattaa fysiikan lakeja, johon voi törmätä. Vaatii että käytössä on fysiikkapeli.
Definition: Collisions.cs:7
static PhysicsObject CreateStaticObject(double width, double height, Shape shape)
Alustaa fysiikkaolion käyttöön ja tekee siitä staattisen (liikkumattoman).
override Angle?? Angle
Definition: Dimensions.cs:55
override Vector?? Position
Definition: Dimensions.cs:30
double Restitution
Kimmoisuuskerroin (0 = ei kimmoisa, 1 = täysin kimmoisa, yli 1 = saa energiaa tyhjästä)
Definition: Collisions.cs:62
Tasainen tai epätasainen pinta.
Definition: Surface.cs:9
static Surface Create(Level level, Direction direction)
Luo kentälle tasaisen reunan. Ei lisää reunaa automaattisesti kenttään.
Definition: Surface.cs:190
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
Definition: Angle.cs:40
static readonly Angle Zero
Nollakulma.
Definition: Angle.cs:44
static Angle FromRadians(double radian)
Luo kulman annettujen radiaanien mukaan.
Definition: Angle.cs:315
Väri.
Definition: Color.cs:13
static readonly Color Gray
Harmaa.
Definition: Color.cs:696
Perussuunta tasossa.
Definition: Direction.cs:47
static Direction Up
Suunta ylös.
Definition: Direction.cs:56
static Direction Right
Suunta oikealle.
Definition: Direction.cs:71
static Direction Down
Suunta alas.
Definition: Direction.cs:61
static Direction Left
Suunta vasemmalle.
Definition: Direction.cs:66
Kentän reunat.
Definition: Surfaces.cs:11
Surface r
Definition: Surfaces.cs:12
Surface l
Definition: Surfaces.cs:12
Surface b
Definition: Surfaces.cs:12
Surface t
Definition: Surfaces.cs:12
2D-vektori.
Definition: Vector.cs:67
double Y
Vektorin Y-komponentti
Definition: Vector.cs:339
double X
Vektorin X-komponentti.
Definition: Vector.cs:334