diff options
Diffstat (limited to 'ShiftOS.Main')
| -rw-r--r-- | ShiftOS.Main/Apps/Breakout.Designer.cs (renamed from ShiftOS.Main/Apps/Pong.Designer.cs) | 49 | ||||
| -rw-r--r-- | ShiftOS.Main/Apps/Breakout.cs | 112 | ||||
| -rw-r--r-- | ShiftOS.Main/Apps/Breakout.resx (renamed from ShiftOS.Main/Apps/Pong.resx) | 0 | ||||
| -rw-r--r-- | ShiftOS.Main/Apps/Pong.cs | 83 | ||||
| -rw-r--r-- | ShiftOS.Main/Desktop.Designer.cs | 16 | ||||
| -rw-r--r-- | ShiftOS.Main/Desktop.cs | 4 | ||||
| -rw-r--r-- | ShiftOS.Main/ShiftOS.Main.csproj | 10 |
7 files changed, 144 insertions, 130 deletions
diff --git a/ShiftOS.Main/Apps/Pong.Designer.cs b/ShiftOS.Main/Apps/Breakout.Designer.cs index 4b9bd01..d36d691 100644 --- a/ShiftOS.Main/Apps/Pong.Designer.cs +++ b/ShiftOS.Main/Apps/Breakout.Designer.cs @@ -1,6 +1,6 @@ namespace ShiftOS.Main.Apps { - partial class Pong + partial class Breakout { /// <summary> /// Required designer variable. @@ -29,37 +29,17 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - this.playerPaddle = new System.Windows.Forms.PictureBox(); - this.cpuPaddle = new System.Windows.Forms.PictureBox(); this.ball = new System.Windows.Forms.PictureBox(); this.gameTimer = new System.Windows.Forms.Timer(this.components); - ((System.ComponentModel.ISupportInitialize)(this.playerPaddle)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cpuPaddle)).BeginInit(); + this.playerPaddle = new System.Windows.Forms.PictureBox(); ((System.ComponentModel.ISupportInitialize)(this.ball)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.playerPaddle)).BeginInit(); this.SuspendLayout(); // - // playerPaddle - // - this.playerPaddle.BackColor = System.Drawing.Color.White; - this.playerPaddle.Location = new System.Drawing.Point(27, 153); - this.playerPaddle.Name = "playerPaddle"; - this.playerPaddle.Size = new System.Drawing.Size(22, 103); - this.playerPaddle.TabIndex = 0; - this.playerPaddle.TabStop = false; - // - // cpuPaddle - // - this.cpuPaddle.BackColor = System.Drawing.Color.White; - this.cpuPaddle.Location = new System.Drawing.Point(751, 153); - this.cpuPaddle.Name = "cpuPaddle"; - this.cpuPaddle.Size = new System.Drawing.Size(22, 103); - this.cpuPaddle.TabIndex = 1; - this.cpuPaddle.TabStop = false; - // // ball // this.ball.BackColor = System.Drawing.Color.White; - this.ball.Location = new System.Drawing.Point(390, 201); + this.ball.Location = new System.Drawing.Point(393, 229); this.ball.Name = "ball"; this.ball.Size = new System.Drawing.Size(18, 18); this.ball.TabIndex = 2; @@ -70,31 +50,36 @@ this.gameTimer.Interval = 20; this.gameTimer.Tick += new System.EventHandler(this.gameTimer_Tick); // + // playerPaddle + // + this.playerPaddle.BackColor = System.Drawing.Color.White; + this.playerPaddle.Location = new System.Drawing.Point(337, 421); + this.playerPaddle.Name = "playerPaddle"; + this.playerPaddle.Size = new System.Drawing.Size(142, 15); + this.playerPaddle.TabIndex = 3; + this.playerPaddle.TabStop = false; + // // Pong // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.Color.Black; - this.Controls.Add(this.ball); - this.Controls.Add(this.cpuPaddle); this.Controls.Add(this.playerPaddle); + this.Controls.Add(this.ball); this.ForeColor = System.Drawing.Color.White; this.Name = "Pong"; - this.Size = new System.Drawing.Size(801, 470); + this.Size = new System.Drawing.Size(664, 470); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Pong_KeyDown); this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Pong_KeyUp); - ((System.ComponentModel.ISupportInitialize)(this.playerPaddle)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cpuPaddle)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.ball)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.playerPaddle)).EndInit(); this.ResumeLayout(false); } #endregion - - private System.Windows.Forms.PictureBox playerPaddle; - private System.Windows.Forms.PictureBox cpuPaddle; private System.Windows.Forms.PictureBox ball; private System.Windows.Forms.Timer gameTimer; + private System.Windows.Forms.PictureBox playerPaddle; } } diff --git a/ShiftOS.Main/Apps/Breakout.cs b/ShiftOS.Main/Apps/Breakout.cs new file mode 100644 index 0000000..db10962 --- /dev/null +++ b/ShiftOS.Main/Apps/Breakout.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using ShiftOS.Engine.WindowManager; + +namespace ShiftOS.Main.Apps +{ + public partial class Breakout : UserControl + { + bool goLeft = false; + bool goRight = false; + int speed = 5; + float ballX = 5; + float ballY = 5; + int rows = 5; + int col = 8; + public PictureBox[,] blocks; + public Breakout() + { + InitializeComponent(); + DrawBlocks(); + gameTimer.Start(); + ResetToRest(); + } + void ResetToRest() + { + ball.Location = new Point((int)Math.Round(this.Width / 2d, 0), (int)Math.Round(this.Height / 2d, 0)); + playerPaddle.Location = new Point((int)Math.Round(ClientSize.Width / 2d, 0), playerPaddle.Location.Y); + } + + private void Pong_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.A && playerPaddle.Left > 0) goLeft = true; + if (e.KeyCode == Keys.D && playerPaddle.Left + playerPaddle.Width < this.Width) goRight = true; + } + + private void Pong_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.A) goLeft = false; + if (e.KeyCode == Keys.D) goRight = false; + } + + private void gameTimer_Tick(object sender, EventArgs e) + { + ball.Top += (int)ballY; + ball.Left += (int)ballX; + + if (ball.Bottom > ClientSize.Height || ball.Top < 0) ballY = -ballY; + if (ball.Right > ClientSize.Width || ball.Left < 0) ballX = -ballX; + if (ball.Bounds.IntersectsWith(playerPaddle.Bounds)) ballY = -ballY; + if (goRight) playerPaddle.Left += 8; + if (goLeft) playerPaddle.Left -= 8; + if (playerPaddle.Left < 1) goLeft = false; + if (playerPaddle.Left + playerPaddle.Width > this.Width) goRight = false; + + for (int j = 0; j < rows; j++) + { + for (int i = 0; i < col; i++) + { + if (ball.Bounds.IntersectsWith(blocks[j,i].Bounds) && blocks[j,i].Visible) + { + ballY = -ballY; + blocks[j,i].Visible = false; + } + } + } + if (ball.Top + ball.Height > ClientSize.Height) + { + gameTimer.Stop(); + var infoBox = ShiftWM.StartInfoboxSession("Breakout - You Lose! ", "It appears that you have lost the game, meaning\nall codepoints won were lost. Would you\nlike to try again?", InfoboxTemplate.ButtonType.YesNo); + ShiftWM.StartInfoboxSession(null, infoBox.isOK.ToString(), InfoboxTemplate.ButtonType.Ok); + if (infoBox.isOK) + { + DrawBlocks(); + ResetToRest(); + gameTimer.Start(); + } + } + } + private void DrawBlocks() + { + int h = 20; + int w = 75; + blocks = new PictureBox[rows, col]; + for (int j = 0; j < rows; j++) + { + for (int i = 0; i < col; i++) + { + blocks[j, i] = new PictureBox(); + blocks[j, i].Height = h; + blocks[j, i].Width = w; + blocks[j, i].Top = h * j; + blocks[j, i].Left = w * i; + blocks[j, i].Paint += (o, a) => + { + Rectangle rect = new Rectangle(blocks[j,i].Location.X, blocks[j,i].Location.Y, blocks[j,i].ClientSize.Width, blocks[j,i].ClientSize.Height); + + rect.Inflate(1,1); // border thickness + ControlPaint.DrawBorder(a.Graphics, rect, Color.Black, ButtonBorderStyle.Solid); + }; + this.Controls.Add(blocks[j, i]); + } + } + } + } +} diff --git a/ShiftOS.Main/Apps/Pong.resx b/ShiftOS.Main/Apps/Breakout.resx index a0e8b0d..a0e8b0d 100644 --- a/ShiftOS.Main/Apps/Pong.resx +++ b/ShiftOS.Main/Apps/Breakout.resx diff --git a/ShiftOS.Main/Apps/Pong.cs b/ShiftOS.Main/Apps/Pong.cs deleted file mode 100644 index cde3c31..0000000 --- a/ShiftOS.Main/Apps/Pong.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ShiftOS.Main.Apps -{ - public partial class Pong : UserControl - { - bool goUp = false; - bool goDown = false; - int speed = 5; - float ballX = 5; - float ballY = 5; - public Pong() - { - InitializeComponent(); - gameTimer.Start(); - ResetToRest(); - } - void ResetToRest() - { - ball.Location = new Point((int)Math.Round(this.Width / 2d, 0), (int)Math.Round(this.Height / 2d, 0)); - playerPaddle.Location = new Point(playerPaddle.Location.X, (int)Math.Round(this.Height / 2d, 0)); - cpuPaddle.Location = new Point(cpuPaddle.Location.X, (int)Math.Round(this.Height / 2d, 0)); - } - - private void Pong_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.W) goUp = true; - if (e.KeyCode == Keys.S) goDown = true; - } - - private void Pong_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.W) goUp = false; - if (e.KeyCode == Keys.S) goDown = false; - } - - private void gameTimer_Tick(object sender, EventArgs e) - { - ball.Top -= (int)ballY; - ball.Left -= (int)ballX; - - - - //CPU - if (ballX < 0) - { - if (ball.Top < cpuPaddle.Top + 51) - { - cpuPaddle.Top -= 5; - } - if(ball.Top > cpuPaddle.Top + 51) - { - cpuPaddle.Top += 5; - } - } - - if (ball.Left < 0) - { - ResetToRest(); - ballX = -ballX; - } - if (ball.Left + ball.Width > this.Width) - { - ResetToRest(); - ballX = -ballX; - } - if (ball.Top < 0 || ball.Top + ball.Height > this.Height) ballY = -ballY; - if (ball.Bounds.IntersectsWith(playerPaddle.Bounds) || ball.Bounds.IntersectsWith(cpuPaddle.Bounds)) ballX = -ballX; - - if (goUp && playerPaddle.Top > 0) playerPaddle.Top -= 8; - if (goDown && playerPaddle.Top < this.Height) playerPaddle.Top += 8; - - } - } -} diff --git a/ShiftOS.Main/Desktop.Designer.cs b/ShiftOS.Main/Desktop.Designer.cs index e82c63e..1ac47b4 100644 --- a/ShiftOS.Main/Desktop.Designer.cs +++ b/ShiftOS.Main/Desktop.Designer.cs @@ -35,7 +35,7 @@ this.terminalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.fileSkimmerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.textPadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pongToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.breakOutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.shifterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); @@ -62,7 +62,7 @@ this.terminalToolStripMenuItem, this.fileSkimmerToolStripMenuItem, this.textPadToolStripMenuItem, - this.pongToolStripMenuItem, + this.breakOutToolStripMenuItem, this.shifterToolStripMenuItem}); this.applicationsToolStripMenuItem.Font = new System.Drawing.Font("Courier New", 9F); this.applicationsToolStripMenuItem.ForeColor = System.Drawing.Color.White; @@ -91,12 +91,12 @@ this.textPadToolStripMenuItem.Text = "TextPad"; this.textPadToolStripMenuItem.Click += new System.EventHandler(this.textPadToolStripMenuItem_Click); // - // pongToolStripMenuItem + // breakOutToolStripMenuItem // - this.pongToolStripMenuItem.Name = "pongToolStripMenuItem"; - this.pongToolStripMenuItem.Size = new System.Drawing.Size(180, 22); - this.pongToolStripMenuItem.Text = "Pong"; - this.pongToolStripMenuItem.Click += new System.EventHandler(this.pongToolStripMenuItem_Click); + this.breakOutToolStripMenuItem.Name = "breakOutToolStripMenuItem"; + this.breakOutToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.breakOutToolStripMenuItem.Text = "Breakout"; + this.breakOutToolStripMenuItem.Click += new System.EventHandler(this.breakOutToolStripMenuItem_Click); // // shifterToolStripMenuItem // @@ -132,7 +132,7 @@ private System.Windows.Forms.ToolStripMenuItem terminalToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem fileSkimmerToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem textPadToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pongToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem breakOutToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem shifterToolStripMenuItem; } }
\ No newline at end of file diff --git a/ShiftOS.Main/Desktop.cs b/ShiftOS.Main/Desktop.cs index 41e0873..fae9d8d 100644 --- a/ShiftOS.Main/Desktop.cs +++ b/ShiftOS.Main/Desktop.cs @@ -42,9 +42,9 @@ namespace ShiftOS.Main ShiftWM.Init(new Apps.TextPad(), "TextPad", Properties.Resources.iconTextPad); } - private void pongToolStripMenuItem_Click(object sender, EventArgs e) + private void breakOutToolStripMenuItem_Click(object sender, EventArgs e) { - ShiftWM.Init(new Apps.Pong(), "Pong", null); + ShiftWM.Init(new Apps.Breakout(), "Breakout", null); } } diff --git a/ShiftOS.Main/ShiftOS.Main.csproj b/ShiftOS.Main/ShiftOS.Main.csproj index 2bfc058..dca8f8f 100644 --- a/ShiftOS.Main/ShiftOS.Main.csproj +++ b/ShiftOS.Main/ShiftOS.Main.csproj @@ -52,11 +52,11 @@ </Reference> </ItemGroup> <ItemGroup> - <Compile Include="Apps\Pong.cs"> + <Compile Include="Apps\Breakout.cs"> <SubType>UserControl</SubType> </Compile> - <Compile Include="Apps\Pong.Designer.cs"> - <DependentUpon>Pong.cs</DependentUpon> + <Compile Include="Apps\Breakout.Designer.cs"> + <DependentUpon>Breakout.cs</DependentUpon> </Compile> <Compile Include="Desktop.cs"> <SubType>Form</SubType> @@ -107,8 +107,8 @@ <Compile Include="Terminal\Commands\upgrade.cs" /> <Compile Include="Terminal\TerminalBackend.cs" /> <Compile Include="Terminal\TerminalCommand.cs" /> - <EmbeddedResource Include="Apps\Pong.resx"> - <DependentUpon>Pong.cs</DependentUpon> + <EmbeddedResource Include="Apps\Breakout.resx"> + <DependentUpon>Breakout.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="Desktop.resx"> <DependentUpon>Desktop.cs</DependentUpon> |
