source: 2017/27/PyryS/Pong/Pong/Pong/Pong.cs @ 8819

Revision 8819, 4.0 KB checked in by npo17_32, 2 years ago (diff)

Started Pong Game

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pong : PhysicsGame
10{
11    PhysicsObject Ball;
12    PhysicsObject LPaddle;
13    PhysicsObject RPaddle;
14    Vector SpeedUp = new Vector(0, 400);
15    Vector SpeedDown = new Vector(0, -400);
16    public override void Begin()
17    {
18
19        // Call object/level creation function
20        Createlevel();
21
22        // Call starting function
23        StartGame();
24
25        // Call control function
26        SetControls();
27
28        // Call score function
29        AddScore();
30
31    }
32    //Function for creating level and ball
33    void Createlevel()
34    {
35        // Define PhysicsObject Ball properties
36        Ball = new PhysicsObject(40, 40);
37        Ball.Color = Color.LimeGreen;
38        Ball.Shape = Shape.Circle;
39        Ball.Restitution = 1.0;
40     
41        // Set Ball in the center of the view
42        Ball.X = 0.0;
43        Ball.Y = 0.0;
44
45        // Add Ball to game view
46        Add(Ball);
47
48        // Create level borders
49        Level.CreateBorders(1.0, true);
50
51        // Set Background color to black
52        Level.Background.Color = Color.Black;
53
54        // Zoom camera to just show the level
55        Camera.ZoomToLevel();
56
57        // Create paddles
58        RPaddle = CreatePaddles(Level.Right - 20.0, 0.0);
59        LPaddle = CreatePaddles(Level.Left + 20.0, 0.0);
60    }
61    // Function for starting game
62    void StartGame()
63    {
64        // Define initial movement vector
65        Vector Initial = new Vector(350.0, 0.0);
66
67        // Hit Ball to motion
68        Ball.Hit(Initial);
69    }
70    // Function for paddle creation
71    PhysicsObject CreatePaddles(double x, double y)
72    {
73        // Create left Paddle
74        PhysicsObject Paddle = PhysicsObject.CreateStaticObject(15.0, 100.0);
75
76        // Define left paddle properties
77        Paddle.Shape = Shape.Rectangle;
78        Paddle.Color = Color.LimeGreen;
79        Paddle.X = x;
80        Paddle.Y = y;
81        Paddle.Restitution = 1.0;
82        Add(Paddle);
83        return Paddle;
84    }
85    // Function for setting controls
86    void SetControls()
87    {
88        // Define exit key
89        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Quit Game");
90
91        // Define left paddle up key
92        Keyboard.Listen(Key.W, ButtonState.Pressed, PaddleMotion, "P1: Paddle Up", LPaddle, SpeedUp);
93        Keyboard.Listen(Key.W, ButtonState.Released, PaddleMotion, null, LPaddle, Vector.Zero);
94
95
96        // Define left paddle down key
97        Keyboard.Listen(Key.S, ButtonState.Pressed, PaddleMotion, "P1: Paddle Down", LPaddle, SpeedDown);
98        Keyboard.Listen(Key.S, ButtonState.Released, PaddleMotion, null, LPaddle, Vector.Zero);
99     
100        // Define right paddle up key
101        Keyboard.Listen(Key.I, ButtonState.Pressed, PaddleMotion, "P2: Paddle Up", RPaddle, SpeedUp);
102        Keyboard.Listen(Key.I, ButtonState.Released, PaddleMotion, null, RPaddle, Vector.Zero);
103
104
105        // Define right paddle down key
106        Keyboard.Listen(Key.K, ButtonState.Pressed, PaddleMotion, "P2: Paddle Down", RPaddle, SpeedDown);
107        Keyboard.Listen(Key.K, ButtonState.Released, PaddleMotion, null, RPaddle, Vector.Zero);
108    }
109    // Paddle Movement Functions
110    void PaddleMotion(PhysicsObject Paddle, Vector Speed) 
111    {
112        // Prevent paddle from exiting level
113        if ((Speed.Y > 0) && Paddle.Top > Level.Top)
114        {
115            Paddle.Velocity = Vector.Zero;
116            return;
117        }
118        if ((Speed.Y > 0) && Paddle.Bottom > Level.Bottom)
119        {
120            Paddle.Velocity = Vector.Zero;
121            return;
122        }
123        Paddle.Velocity = Speed;
124    }
125    // Function for score counters
126    IntMeter AddScore()
127    {
128        // Define score counter
129        IntMeter Counter = new IntMeter(0);
130        Counter.MaxValue = 15;
131        return Counter;
132    }
133}
Note: See TracBrowser for help on using the repository browser.