-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
107 lines (78 loc) · 3.11 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using Raylib_cs;
namespace Game;
class Program
{
public static void Main()
{
Raylib.InitWindow(Globals.ScreenWidth, Globals.ScreenHieght, "PingPong Game - Ibrahim Aboelsoud");
Raylib.SetTargetFPS(60);
while (!Raylib.WindowShouldClose())
{
UpdateDrawScreen();
}
Raylib.CloseWindow();
}
static void UpdateDrawScreen()
{
UpdateScreen();
DrawScreen();
}
static void UpdateScreen()
{
Globals.BallPosition.X += Globals.BallXSpeed;
Globals.BallPosition.Y += Globals.BallYSpeed;
// Walls
if (Globals.BallPosition.X + Globals.BallRadius >= Globals.ScreenWidth || Globals.BallPosition.X - Globals.BallRadius <= 0)
{
Globals.BallXSpeed *= -1;
}
// Goals
if (Globals.BallPosition.Y + Globals.BallRadius >= Globals.ScreenHieght)
{
Globals.TopCounter++;
Globals.BallPosition = new(Globals.BottomBar.X, (Globals.ScreenHieght - Globals.RectangleHieght - 12));
Globals.BallYSpeed *= -1;
}
if (Globals.BallPosition.Y - Globals.BallRadius <= 0)
{
Globals.BottomCounter++;
Globals.BallPosition = new(Globals.TopBar.X + Globals.RectangleWidth / 2, Globals.RectangleHieght + 12);
Globals.BallYSpeed *= -1;
}
// Poince of ball
if (Raylib.CheckCollisionCircleRec(Globals.BallPosition, Globals.BallRadius, Globals.TopBar) || Raylib.CheckCollisionCircleRec(Globals.BallPosition, Globals.BallRadius, Globals.BottomBar))
{
Globals.BallYSpeed *= -1;
}
// Bars Movement
//TopBar Movement
if (Raylib.IsKeyDown(KeyboardKey.KEY_A) && (Globals.TopBar.X > 0))
{
Globals.TopBar.X -= 10;
}
if (Raylib.IsKeyDown(KeyboardKey.KEY_D) && (Globals.TopBar.X < (Globals.ScreenWidth - Globals.RectangleWidth)))
{
Globals.TopBar.X += 10;
}
//BottomBar Movement
if (Raylib.IsKeyDown(KeyboardKey.KEY_LEFT) && (Globals.BottomBar.X > 0))
{
Globals.BottomBar.X -= 10;
}
if (Raylib.IsKeyDown(KeyboardKey.KEY_RIGHT) && (Globals.BottomBar.X < (Globals.ScreenWidth - Globals.RectangleWidth)))
{
Globals.BottomBar.X += 10;
}
}
static void DrawScreen()
{
Raylib.BeginDrawing();
Raylib.ClearBackground(Color.BLACK);
Raylib.DrawRectanglePro(Globals.TopBar, Globals.origin, 0, Color.WHITE);
Raylib.DrawRectanglePro(Globals.BottomBar, Globals.origin, 0, Color.WHITE);
Raylib.DrawCircleV(Globals.BallPosition, Globals.BallRadius, Color.BLUE);
Raylib.DrawText(Globals.BottomCounter.ToString(), Globals.ScreenWidth - 100, Globals.ScreenHieght / 2 + 50, 100, Color.WHITE);
Raylib.DrawText(Globals.TopCounter.ToString(), Globals.ScreenWidth - 100, Globals.ScreenHieght / 2 - 50, 100, Color.WHITE);
Raylib.EndDrawing();
}
}