aboutsummaryrefslogtreecommitdiff
path: root/source/WindowsFormsApplication1/CreditScroller.cs
diff options
context:
space:
mode:
authorMichaelTheShifter <[email protected]>2016-06-24 16:44:42 -0400
committerMichaelTheShifter <[email protected]>2016-06-24 16:44:51 -0400
commitecee91bc559e1c0d716a3032e371218812df61e7 (patch)
tree49acdb538b13bc3da89185413bc4096d4e6d81f7 /source/WindowsFormsApplication1/CreditScroller.cs
parent8ea0903788b02b352cc25c9b6f46d439bdb1356a (diff)
downloadshiftos-c-_theultimatehacker-ecee91bc559e1c0d716a3032e371218812df61e7.tar.gz
shiftos-c-_theultimatehacker-ecee91bc559e1c0d716a3032e371218812df61e7.tar.bz2
shiftos-c-_theultimatehacker-ecee91bc559e1c0d716a3032e371218812df61e7.zip
Loads of changes...
Custom shifter options using Lua, and other stuff.
Diffstat (limited to 'source/WindowsFormsApplication1/CreditScroller.cs')
-rw-r--r--source/WindowsFormsApplication1/CreditScroller.cs273
1 files changed, 273 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/CreditScroller.cs b/source/WindowsFormsApplication1/CreditScroller.cs
new file mode 100644
index 0000000..ff0a206
--- /dev/null
+++ b/source/WindowsFormsApplication1/CreditScroller.cs
@@ -0,0 +1,273 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace ShiftOS
+{
+ public partial class CreditScroller : Form
+ {
+ public CreditScroller()
+ {
+ InitializeComponent();
+ }
+
+ #region pong visualizer variables
+
+
+ bool pongVisible = false;
+ Random rand = new Random();
+ int xVel = 7;
+ int yVel = 8;
+ int computerspeed = 8;
+ int level = 1;
+ int secondsleft = 60;
+ int casualposition;
+ double xveldec = 3.0;
+ double yveldec = 3.0;
+ double incrementx = 0.4;
+ double incrementy = 0.2;
+ int levelxspeed = 3;
+ int levelyspeed = 3;
+ int beatairewardtotal;
+ int beataireward = 1;
+ int[] levelrewards = new int[50];
+ int countdown = 3;
+
+ #endregion
+
+ int offset = 0;
+
+ private void tmrredraw_Tick(object sender, EventArgs e)
+ {
+ pgcontents.Visible = pongVisible;
+ lbcreditstext.Top = pnlscroll.Height - offset;
+ if(pongVisible)
+ lbcreditstext.Left = (pnlscroll.Width - lbcreditstext.Width);
+ else
+ lbcreditstext.Left = (pnlscroll.Width - lbcreditstext.Width) / 2;
+ offset += 1;
+ }
+
+ private void CreditScroller_Load(object sender, EventArgs e)
+ {
+ Audio.Play("hackerbattle_ambient");
+ tmrredraw.Interval = 50;
+ lbcreditstext.Text = Properties.Resources.Credits.Replace("#VER#", Consts.Version);
+ tmrredraw.Start();
+ newgame();
+ }
+
+ private void btnclose_Click(object sender, EventArgs e)
+ {
+ this.Close();
+ }
+
+ private void pongGameTimer_Tick(object sender, EventArgs e)
+ {
+ //Move player according to ball
+ if(ball.Left < 250 + xVel / 10 && xVel < 0)
+ {
+ if(ball.Top > paddleHuman.Top + 50)
+ {
+ paddleHuman.Top += computerspeed * 2 + ((int)yveldec / 2);
+ }
+ else if(ball.Top < paddleHuman.Top + 50)
+ {
+ paddleHuman.Top -= computerspeed * 2 + ((int)yveldec / 2);
+ }
+ }
+
+ //Set the computer player to move according to the ball's position.
+ if (ball.Location.X > 500 - xVel * 10 && xVel > 0)
+ {
+ if (ball.Location.Y > paddleComputer.Location.Y + 50)
+ {
+ paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y + computerspeed * 2 + ((int)yveldec / 2));
+ }
+ if (ball.Location.Y < paddleComputer.Location.Y + 50)
+ {
+ paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y - computerspeed * 2 + ((int)yveldec / 2));
+ }
+ casualposition = rand.Next(-150, 201);
+ }
+
+ //Set Xvel and Yvel speeds from decimal
+ if (xVel > 0)
+ xVel = (int)Math.Round(xveldec);
+ if (xVel < 0)
+ xVel = (int)-Math.Round(xveldec);
+ if (yVel > 0)
+ yVel = (int)Math.Round(yveldec);
+ if (yVel < 0)
+ yVel = (int)-Math.Round(yveldec);
+
+ // Move the game ball.
+ ball.Location = new Point(ball.Location.X + xVel, ball.Location.Y + yVel);
+
+ // Check for top wall.
+ if (ball.Location.Y < 0)
+ {
+ ball.Location = new Point(ball.Location.X, 0);
+ yVel = -yVel;
+ }
+
+ // Check for bottom wall.
+ if (ball.Location.Y > pgcontents.Height - ball.Height)
+ {
+ ball.Location = new Point(ball.Location.X, pgcontents.Height - ball.Size.Height);
+ yVel = -yVel;
+ }
+
+ // Check for player paddle.
+ if (ball.Bounds.IntersectsWith(paddleHuman.Bounds))
+ {
+ ball.Location = new Point(paddleHuman.Location.X + ball.Size.Width, ball.Location.Y);
+ //randomly increase x or y speed of ball
+ switch (rand.Next(1, 3))
+ {
+ case 1:
+ xveldec = xveldec + incrementx;
+ break;
+ case 2:
+ if (yveldec > 0)
+ yveldec = yveldec + incrementy;
+ if (yveldec < 0)
+ yveldec = yveldec - incrementy;
+ break;
+ }
+ xVel = -xVel;
+ }
+
+ // Check for computer paddle.
+ if (ball.Bounds.IntersectsWith(paddleComputer.Bounds))
+ {
+ ball.Location = new Point(paddleComputer.Location.X - paddleComputer.Size.Width + 1, ball.Location.Y);
+ xveldec = xveldec + incrementx;
+ xVel = -xVel;
+ }
+
+ // Check for left wall.
+ if (ball.Location.X < -100)
+ {
+ ball.Location = new Point(pgcontents.Size.Width / 2 + 200, pgcontents.Size.Height / 2);
+ paddleComputer.Location = new Point(paddleComputer.Location.X, ball.Location.Y);
+ paddleHuman.Location = new Point(paddleHuman.Location.X, ball.Location.Y);
+
+ if (xVel > 0)
+ xVel = -xVel;
+ pongGameTimer.Stop();
+ tmrcountdown.Start();
+ counter.Stop();
+ }
+
+ // Check for right wall.
+ if (ball.Location.X > pgcontents.Width - ball.Size.Width - paddleComputer.Width + 100)
+ {
+ ball.Location = new Point(pgcontents.Size.Width / 2 + 200, pgcontents.Size.Height / 2);
+ paddleComputer.Location = new Point(paddleComputer.Location.X, ball.Location.Y);
+ paddleHuman.Location = new Point(paddleHuman.Location.X, ball.Location.Y);
+
+ if (xVel > 0)
+ xVel = -xVel;
+ beatairewardtotal = beatairewardtotal + beataireward;
+ tmrcountdown.Start();
+ pongGameTimer.Stop();
+ counter.Stop();
+ }
+
+ //lblstats.Text = "Xspeed: " & Math.Abs(xVel) & " Yspeed: " & Math.Abs(yVel) & " Human Location: " & paddleHuman.Location.ToString & " Computer Location: " & paddleComputer.Location.ToString & Environment.NewLine & " Ball Location: " & ball.Location.ToString & " Xdec: " & xveldec & " Ydec: " & yveldec & " Xinc: " & incrementx & " Yinc: " & incrementy
+ lblstatsX.Text = "Xspeed: " + xveldec;
+ lblstatsY.Text = "Yspeed: " + yveldec;
+
+ lbllevelandtime.Text = "Level: " + level;
+
+ if (xVel > 20 || xVel < -20)
+ {
+ paddleHuman.Width = Math.Abs(xVel);
+ paddleComputer.Width = Math.Abs(xVel);
+ }
+ else
+ {
+ paddleHuman.Width = 20;
+ paddleComputer.Width = 20;
+ }
+
+ computerspeed = Math.Abs(yVel);
+
+ // pgcontents.Refresh()
+ // pgcontents.CreateGraphics.FillRectangle(Brushes.Black, ball.Location.X, ball.Location.Y, ball.Width, ball.Height)
+
+ }
+
+ private void counter_Tick(object sender, EventArgs e)
+ {
+ secondsleft = secondsleft - 1;
+ if (secondsleft == -1)
+ {
+ secondsleft = 60;
+ level = level + 1;
+
+
+ }
+
+ }
+
+ private void tmrcountdown_Tick(object sender, EventArgs e)
+ {
+ switch (countdown)
+ {
+ case 0:
+ countdown = 3;
+ lblcountdown.Hide();
+ pongGameTimer.Start();
+ counter.Start();
+ tmrcountdown.Stop();
+ break;
+ case 1:
+ lblcountdown.Text = "1";
+ countdown = countdown - 1;
+ break;
+ case 2:
+ lblcountdown.Text = "2";
+ countdown = countdown - 1;
+ break;
+ case 3:
+ lblcountdown.Text = "3";
+ countdown = countdown - 1;
+ lblcountdown.Show();
+ break;
+ }
+ }
+
+ private void newgame()
+ {
+ level = 1;
+ beataireward = 2;
+ beatairewardtotal = 0;
+ secondsleft = 60;
+ //reset stats text
+ lblstatsX.Text = "Xspeed: ";
+ lblstatsY.Text = "Yspeed: ";
+
+ levelxspeed = 3;
+ levelyspeed = 3;
+
+ incrementx = 0.4;
+ incrementy = 0.2;
+
+ xveldec = levelxspeed;
+ yveldec = levelyspeed;
+
+ tmrcountdown.Start();
+ if (xVel < 0)
+ xVel = Math.Abs(xVel);
+ lbllevelandtime.Text = "Level: " + level + " - " + secondsleft + " Seconds Left";
+ }
+ }
+}