diff --git a/SuperAwesomeMagnetGame.sln b/SuperAwesomeMagnetGame.sln
new file mode 100644
index 0000000..1ec412d
--- /dev/null
+++ b/SuperAwesomeMagnetGame.sln
@@ -0,0 +1,24 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SuperAwesomeMagnetGame", "SuperAwesomeMagnetGame\SuperAwesomeMagnetGame.csproj", "{8186CF63-C057-438A-A3E9-87DEBE241B50}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SuperAwesomeMagnetGameContent", "SuperAwesomeMagnetGame\Content\SuperAwesomeMagnetGameContent.contentproj", "{E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8186CF63-C057-438A-A3E9-87DEBE241B50}.Debug|x86.ActiveCfg = Debug|x86
+ {8186CF63-C057-438A-A3E9-87DEBE241B50}.Debug|x86.Build.0 = Debug|x86
+ {8186CF63-C057-438A-A3E9-87DEBE241B50}.Release|x86.ActiveCfg = Release|x86
+ {8186CF63-C057-438A-A3E9-87DEBE241B50}.Release|x86.Build.0 = Release|x86
+ {E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}.Debug|x86.ActiveCfg = Debug|x86
+ {E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}.Release|x86.ActiveCfg = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/SuperAwesomeMagnetGame.suo b/SuperAwesomeMagnetGame.suo
new file mode 100644
index 0000000..e67c406
Binary files /dev/null and b/SuperAwesomeMagnetGame.suo differ
diff --git a/SuperAwesomeMagnetGame/Background.cs b/SuperAwesomeMagnetGame/Background.cs
new file mode 100644
index 0000000..703cae6
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Background.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SuperAwesomeMagnetGame
+{
+ class Background : Sprite
+ {
+ public Background(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public Background(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public Vector2 Position
+ {
+ get
+ {
+ return position;
+ }
+ set
+ {
+ position = value;
+ }
+ }
+
+ public Point FrameSize
+ {
+ get
+ {
+ return frameSize;
+ }
+ }
+
+ public override Vector2 Direction
+ {
+ get
+ {
+ return speed;
+ }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ position += speed;
+ }
+
+ public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
+ {
+ spriteBatch.Draw(image, position, new Rectangle(currentFrame.X * frameSize.X,
+ currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0,
+ new Vector2(25, 25), 1f, SpriteEffects.None, 0.1f);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/BlockSprite.cs b/SuperAwesomeMagnetGame/BlockSprite.cs
new file mode 100644
index 0000000..acbdbe9
--- /dev/null
+++ b/SuperAwesomeMagnetGame/BlockSprite.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperAwesomeMagnetGame
+{
+ class BlockSprite : Sprite
+ {
+ public BlockSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public BlockSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public override Vector2 Direction
+ {
+ get { return speed; }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ position += Direction;
+
+ if (position.X < 0) speed.X = -speed.X;
+ if (position.Y < 0) speed.Y = -speed.Y;
+ if (position.X > 1024 - frameSize.X) speed.X = -speed.X;
+ if (position.Y > 768 - frameSize.Y) speed.Y = -speed.Y;
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/Content/Audio/AddBlockSound.wav b/SuperAwesomeMagnetGame/Content/Audio/AddBlockSound.wav
new file mode 100644
index 0000000..4ba1fb4
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/AddBlockSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/Background Music.mp3 b/SuperAwesomeMagnetGame/Content/Audio/Background Music.mp3
new file mode 100644
index 0000000..a65a623
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/Background Music.mp3 differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/ClearSound.wav b/SuperAwesomeMagnetGame/Content/Audio/ClearSound.wav
new file mode 100644
index 0000000..7c5f521
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/ClearSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/CrossSound.wav b/SuperAwesomeMagnetGame/Content/Audio/CrossSound.wav
new file mode 100644
index 0000000..e39f0d3
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/CrossSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/HitSound.wav b/SuperAwesomeMagnetGame/Content/Audio/HitSound.wav
new file mode 100644
index 0000000..0e5f3dc
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/HitSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/KillSound.wav b/SuperAwesomeMagnetGame/Content/Audio/KillSound.wav
new file mode 100644
index 0000000..f20fb37
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/KillSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/LifeUpSound.wav b/SuperAwesomeMagnetGame/Content/Audio/LifeUpSound.wav
new file mode 100644
index 0000000..7a3013e
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/LifeUpSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/NoBlockSound.wav b/SuperAwesomeMagnetGame/Content/Audio/NoBlockSound.wav
new file mode 100644
index 0000000..de8cad3
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/NoBlockSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/PowerupSpawn.wav b/SuperAwesomeMagnetGame/Content/Audio/PowerupSpawn.wav
new file mode 100644
index 0000000..79fe02a
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/PowerupSpawn.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/ReflectSound.wav b/SuperAwesomeMagnetGame/Content/Audio/ReflectSound.wav
new file mode 100644
index 0000000..b0ca989
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/ReflectSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/ShootSound.wav b/SuperAwesomeMagnetGame/Content/Audio/ShootSound.wav
new file mode 100644
index 0000000..5f5e79a
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/ShootSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Audio/SlowSound.wav b/SuperAwesomeMagnetGame/Content/Audio/SlowSound.wav
new file mode 100644
index 0000000..62d62be
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Audio/SlowSound.wav differ
diff --git a/SuperAwesomeMagnetGame/Content/Fonts/Arial.spritefont b/SuperAwesomeMagnetGame/Content/Fonts/Arial.spritefont
new file mode 100644
index 0000000..21e3c01
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/Fonts/Arial.spritefont
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ Kootenay
+
+
+ 14
+
+
+ 0
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+ ~
+
+
+
+
diff --git a/SuperAwesomeMagnetGame/Content/Images/AddBlockPowerup.png b/SuperAwesomeMagnetGame/Content/Images/AddBlockPowerup.png
new file mode 100644
index 0000000..d851ffc
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/AddBlockPowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/Background.png b/SuperAwesomeMagnetGame/Content/Images/Background.png
new file mode 100644
index 0000000..0ad48b3
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/Background.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/Block.png b/SuperAwesomeMagnetGame/Content/Images/Block.png
new file mode 100644
index 0000000..0135703
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/Block.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/BlueEnemy.png b/SuperAwesomeMagnetGame/Content/Images/BlueEnemy.png
new file mode 100644
index 0000000..df9022f
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/BlueEnemy.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/BlueEnemyAttack.png b/SuperAwesomeMagnetGame/Content/Images/BlueEnemyAttack.png
new file mode 100644
index 0000000..e28afd1
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/BlueEnemyAttack.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/BombPowerup.png b/SuperAwesomeMagnetGame/Content/Images/BombPowerup.png
new file mode 100644
index 0000000..0b6d18d
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/BombPowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/CreditsScreen.png b/SuperAwesomeMagnetGame/Content/Images/CreditsScreen.png
new file mode 100644
index 0000000..e6f9d26
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/CreditsScreen.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/CrossPowerup.png b/SuperAwesomeMagnetGame/Content/Images/CrossPowerup.png
new file mode 100644
index 0000000..c8285b3
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/CrossPowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/EndScreen.png b/SuperAwesomeMagnetGame/Content/Images/EndScreen.png
new file mode 100644
index 0000000..73b1924
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/EndScreen.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/LifePowerup.png b/SuperAwesomeMagnetGame/Content/Images/LifePowerup.png
new file mode 100644
index 0000000..1a4fce0
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/LifePowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/MagnaBoyHand.png b/SuperAwesomeMagnetGame/Content/Images/MagnaBoyHand.png
new file mode 100644
index 0000000..b33cff5
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/MagnaBoyHand.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/MagnaBoyWalkingSheet.bmp b/SuperAwesomeMagnetGame/Content/Images/MagnaBoyWalkingSheet.bmp
new file mode 100644
index 0000000..dd320ad
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/MagnaBoyWalkingSheet.bmp differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/NegativeMagnet.png b/SuperAwesomeMagnetGame/Content/Images/NegativeMagnet.png
new file mode 100644
index 0000000..646086e
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/NegativeMagnet.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/NoBlockPowerup.png b/SuperAwesomeMagnetGame/Content/Images/NoBlockPowerup.png
new file mode 100644
index 0000000..ceeeb57
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/NoBlockPowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/PositiveMagnet.png b/SuperAwesomeMagnetGame/Content/Images/PositiveMagnet.png
new file mode 100644
index 0000000..fa493ab
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/PositiveMagnet.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/RedEnemy.png b/SuperAwesomeMagnetGame/Content/Images/RedEnemy.png
new file mode 100644
index 0000000..2a756d2
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/RedEnemy.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/RedEnemyAttack.png b/SuperAwesomeMagnetGame/Content/Images/RedEnemyAttack.png
new file mode 100644
index 0000000..b7ffcd2
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/RedEnemyAttack.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/SlowPowerup.png b/SuperAwesomeMagnetGame/Content/Images/SlowPowerup.png
new file mode 100644
index 0000000..0e41e10
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/SlowPowerup.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/StartScreen.png b/SuperAwesomeMagnetGame/Content/Images/StartScreen.png
new file mode 100644
index 0000000..acb4137
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/StartScreen.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/WinScreen.png b/SuperAwesomeMagnetGame/Content/Images/WinScreen.png
new file mode 100644
index 0000000..2fb2f5b
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/WinScreen.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/red-square-16x16.png b/SuperAwesomeMagnetGame/Content/Images/red-square-16x16.png
new file mode 100644
index 0000000..0f0a55d
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/red-square-16x16.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/tutorialscreen.png b/SuperAwesomeMagnetGame/Content/Images/tutorialscreen.png
new file mode 100644
index 0000000..b7b94ec
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/tutorialscreen.png differ
diff --git a/SuperAwesomeMagnetGame/Content/Images/white-square-16x16.png b/SuperAwesomeMagnetGame/Content/Images/white-square-16x16.png
new file mode 100644
index 0000000..9a274a6
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/Images/white-square-16x16.png differ
diff --git a/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj b/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj
new file mode 100644
index 0000000..70513e9
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj
@@ -0,0 +1,341 @@
+
+
+
+ {E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}
+ {96E2B04D-8817-42c6-938A-82C39BA4D311};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Debug
+ x86
+ Library
+ Properties
+ v4.0
+ v4.0
+ x86
+ bin\$(Platform)\$(Configuration)
+ Content
+ publish\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 0
+ 1.0.0.%2a
+ false
+ false
+ true
+
+
+ Windows
+ AllRules.ruleset
+
+
+ Windows
+ AllRules.ruleset
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+ MagnaBoyWalkingSheet
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ white-square-16x16
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ red-square-16x16
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ MagnaBoyHand
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ NegativeMagnet
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ PositiveMagnet
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ Background
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ Arial
+ FontDescriptionImporter
+ FontDescriptionProcessor
+
+
+
+
+ RedEnemy
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ BlueEnemy
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ BlueEnemyAttack
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ RedEnemyAttack
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ HitSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ KillSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ ShootSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ Block
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ EndScreen
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ ReflectSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ StartScreen
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ LifePowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ WinScreen
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ Background Music
+ Mp3Importer
+ SongProcessor
+
+
+
+
+ tutorialscreen
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ BombPowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ ClearSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ SlowPowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ CrossPowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ CrossSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ PowerupSpawn
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ NoBlockPowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ NoBlockSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ LifeUpSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ SlowSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ CreditsScreen
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ AddBlockPowerup
+ TextureImporter
+ TextureProcessor
+
+
+
+
+ AddBlockSound
+ WavImporter
+ SoundEffectProcessor
+
+
+
+
+ False
+ Microsoft .NET Framework 4 %28x86 and x64%29
+ true
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ false
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj.user b/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj.user
new file mode 100644
index 0000000..e98b7a3
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/SuperAwesomeMagnetGameContent.contentproj.user
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+ en-US
+ false
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/Content/obj/x86/Debug/Content.contentproj.FileListAbsolute.txt b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/Content.contentproj.FileListAbsolute.txt
new file mode 100644
index 0000000..bef99b0
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/Content.contentproj.FileListAbsolute.txt
@@ -0,0 +1 @@
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\Content\obj\x86\Debug\ResolveAssemblyReference.cache
diff --git a/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ContentPipeline.xml b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ContentPipeline.xml
new file mode 100644
index 0000000..a8e5484
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ContentPipeline.xml
@@ -0,0 +1,371 @@
+
+
+
+ -
+
+ Images\MagnaBoyWalkingSheet
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\white-square-16x16
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\red-square-16x16
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\MagnaBoyHand
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\NegativeMagnet
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\PositiveMagnet
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\Background
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\RedEnemy
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\BlueEnemy
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\BlueEnemyAttack
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\RedEnemyAttack
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\Block
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\EndScreen
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\StartScreen
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\LifePowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\WinScreen
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\tutorialscreen
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\BombPowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\SlowPowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\CrossPowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\NoBlockPowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\CreditsScreen
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Images\AddBlockPowerup
+ TextureImporter
+ TextureProcessor
+ None
+
+
+
+ -
+
+ Fonts\Arial
+ FontDescriptionImporter
+ FontDescriptionProcessor
+ None
+
+
+
+ -
+
+ Audio\HitSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\KillSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\ShootSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\ReflectSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\ClearSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\CrossSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\PowerupSpawn
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\NoBlockSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\LifeUpSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\SlowSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\AddBlockSound
+ WavImporter
+ SoundEffectProcessor
+ None
+
+
+
+ -
+
+ Audio\Background Music
+ Mp3Importer
+ SongProcessor
+ None
+
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\Background Music.wma
+
+
+ true
+
+ Windows
+ HiDef
+ Debug
+ false
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\Content\
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\Content\obj\x86\Debug\
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\
+
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.XImporter.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.VideoImporters.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.FBXImporter.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.EffectImporter.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Content.Pipeline.AudioImporters.dll
+ 2010-08-23T12:41:18-07:00
+
+
+ C:\Windows\Microsoft.Net\assembly\GAC_32\Microsoft.Xna.Framework.Content.Pipeline\v4.0_4.0.0.0__842cf8be1de50553\Microsoft.Xna.Framework.Content.Pipeline.dll
+ 2012-07-12T22:43:31.951177-07:00
+
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/Content/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..ad5a6d2
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ResolveAssemblyReference.cache b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ResolveAssemblyReference.cache
new file mode 100644
index 0000000..b76b340
Binary files /dev/null and b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/ResolveAssemblyReference.cache differ
diff --git a/SuperAwesomeMagnetGame/Content/obj/x86/Debug/SuperAwesomeMagnetGameContent.contentproj.FileListAbsolute.txt b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/SuperAwesomeMagnetGameContent.contentproj.FileListAbsolute.txt
new file mode 100644
index 0000000..976de9b
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Content/obj/x86/Debug/SuperAwesomeMagnetGameContent.contentproj.FileListAbsolute.txt
@@ -0,0 +1 @@
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\Content\obj\x86\Debug\ResolveAssemblyReference.cache
diff --git a/SuperAwesomeMagnetGame/EnemySprite.cs b/SuperAwesomeMagnetGame/EnemySprite.cs
new file mode 100644
index 0000000..2cf39be
--- /dev/null
+++ b/SuperAwesomeMagnetGame/EnemySprite.cs
@@ -0,0 +1,73 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperAwesomeMagnetGame
+{
+ class EnemySprite : Sprite
+ {
+ public EnemySprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public EnemySprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public EnemySprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, float scale)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, scale) { }
+
+ public EnemySprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, Charge charge)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, charge) { }
+
+ public Charge Polarity
+ {
+ get { return charge; }
+ }
+
+ public int PointValue
+ {
+ get { return pointValue; }
+ }
+
+ public Vector2 Position
+ {
+ get { return position; }
+ set { position = value; }
+ }
+
+ public Vector2 Speed
+ {
+ get { return speed; }
+ set { speed = value; }
+ }
+
+ public override Vector2 Direction
+ {
+ get { return speed; }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ position += Direction;
+
+ if (position.X < 0) speed.X = -speed.X;
+ if (position.Y < 0) speed.Y = -speed.Y;
+ if (position.X > 1024 - frameSize.X) speed.X = -speed.X;
+ if (position.Y > 768 - frameSize.Y) speed.Y = -speed.Y;
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/Game.ico b/SuperAwesomeMagnetGame/Game.ico
new file mode 100644
index 0000000..8cff41e
Binary files /dev/null and b/SuperAwesomeMagnetGame/Game.ico differ
diff --git a/SuperAwesomeMagnetGame/Game1.cs b/SuperAwesomeMagnetGame/Game1.cs
new file mode 100644
index 0000000..3492d3f
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Game1.cs
@@ -0,0 +1,247 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Audio;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.GamerServices;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Microsoft.Xna.Framework.Media;
+using Microsoft.Xna.Framework.Net;
+using Microsoft.Xna.Framework.Storage;
+
+namespace SuperAwesomeMagnetGame
+{
+ ///
+ /// This is the main type for your game
+ ///
+ public class Game1 : Microsoft.Xna.Framework.Game
+ {
+ GraphicsDeviceManager graphics;
+ SpriteBatch spriteBatch;
+ SpriteManager spriteManager;
+ bool tButtonPressed = false;
+ bool cButtonPressed = false;
+ public enum GameState { StartGame, Tutorial, Credits, InGame, EndGame, WinGame };
+ GameState currentGameState = GameState.StartGame;
+ public SpriteManager.EndState status;
+ Background endBack;
+ Background startBack;
+ Background tutorialBack;
+ Background winBack;
+ Background creditsBack;
+ SpriteFont endStats;
+ Song backgroundMusic;
+
+ public Game1()
+ {
+ graphics = new GraphicsDeviceManager(this);
+ Content.RootDirectory = "Content";
+ }
+
+ ///
+ /// Allows the game to perform any initialization it needs to before starting to run.
+ /// This is where it can query for any required services and load any non-graphic
+ /// related content. Calling base.Initialize will enumerate through any components
+ /// and initialize them as well.
+ ///
+ protected override void Initialize()
+ {
+ graphics.PreferredBackBufferWidth = 1024;
+ graphics.PreferredBackBufferHeight = 768;
+ graphics.ApplyChanges();
+
+ spriteManager = new SpriteManager(this);
+ Components.Add(spriteManager);
+ spriteManager.Enabled = false;
+ spriteManager.Visible = false;
+
+ base.Initialize();
+ }
+
+ ///
+ /// LoadContent will be called once per game and is the place to load
+ /// all of your content.
+ ///
+ protected override void LoadContent()
+ {
+ // Create a new SpriteBatch, which can be used to draw textures.
+ spriteBatch = new SpriteBatch(GraphicsDevice);
+
+ endBack = new Background(Content.Load(@"Images/EndScreen"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), Vector2.Zero, 0);
+ startBack = new Background(Content.Load(@"Images/StartScreen"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), Vector2.Zero, 0);
+ tutorialBack = new Background(Content.Load(@"Images/tutorialscreen"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), Vector2.Zero, 0);
+ winBack = new Background(Content.Load(@"Images/WinScreen"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), Vector2.Zero, 0);
+ creditsBack = new Background(Content.Load(@"Images/CreditsScreen"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), Vector2.Zero, 0);
+
+ backgroundMusic = Content.Load(@"Audio/Background Music");
+ MediaPlayer.Play(backgroundMusic);
+ MediaPlayer.IsRepeating = true;
+
+ endStats = Content.Load(@"fonts/arial");
+ }
+
+ ///
+ /// UnloadContent will be called once per game and is the place to unload
+ /// all content.
+ ///
+ protected override void UnloadContent()
+ {
+ // TODO: Unload any non ContentManager content here
+ }
+
+ ///
+ /// Allows the game to run logic such as updating the world,
+ /// checking for collisions, gathering input, and playing audio.
+ ///
+ /// Provides a snapshot of timing values.
+ protected override void Update(GameTime gameTime)
+ {
+ // Allows the game to exit
+ if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
+ this.Exit();
+ if (Keyboard.GetState().IsKeyDown(Keys.Escape)) this.Exit();
+
+ switch (currentGameState)
+ {
+ case GameState.StartGame:
+ startBack.Update(gameTime, Window.ClientBounds);
+ if (Keyboard.GetState().IsKeyDown(Keys.N))
+ {
+ currentGameState = GameState.InGame;
+ spriteManager.Enabled = true;
+ spriteManager.Visible = true;
+ }
+ if (Keyboard.GetState().IsKeyDown(Keys.T)) tButtonPressed = true;
+ if (Keyboard.GetState().IsKeyUp(Keys.T) && tButtonPressed)
+ {
+ tButtonPressed = false;
+ currentGameState = GameState.Tutorial;
+ }
+ if (Keyboard.GetState().IsKeyDown(Keys.C)) cButtonPressed = true;
+ if (Keyboard.GetState().IsKeyUp(Keys.C) && cButtonPressed)
+ {
+ cButtonPressed = false;
+ currentGameState = GameState.Credits;
+ }
+ if (Keyboard.GetState().IsKeyDown(Keys.Escape)) this.Exit();
+ break;
+ case GameState.Tutorial:
+ tutorialBack.Update(gameTime, Window.ClientBounds);
+ if (Keyboard.GetState().GetPressedKeys().Length > 0) tButtonPressed = true;
+ if (Keyboard.GetState().GetPressedKeys().Length == 0 && tButtonPressed)
+ {
+ tButtonPressed = false;
+ currentGameState = GameState.StartGame;
+ }
+ break;
+ case GameState.Credits:
+ creditsBack.Update(gameTime, Window.ClientBounds);
+ if (Keyboard.GetState().GetPressedKeys().Length > 0) cButtonPressed = true;
+ if (Keyboard.GetState().GetPressedKeys().Length == 0 && cButtonPressed)
+ {
+ cButtonPressed = false;
+ currentGameState = GameState.StartGame;
+ }
+ break;
+ case GameState.InGame:
+ if (spriteManager.currentNumberOfLives == 0)
+ {
+ currentGameState = GameState.EndGame;
+ spriteManager.Enabled = false;
+ spriteManager.Visible = false;
+ }
+ if (spriteManager.currentLevel == 11)
+ {
+ currentGameState = GameState.WinGame;
+ spriteManager.Enabled = false;
+ spriteManager.Visible = false;
+ }
+ break;
+ case GameState.EndGame:
+ endBack.Update(gameTime, Window.ClientBounds);
+ if (Keyboard.GetState().IsKeyDown(Keys.M)) tButtonPressed = true;
+ if (Keyboard.GetState().IsKeyUp(Keys.M) && tButtonPressed)
+ {
+ tButtonPressed = false;
+ currentGameState = GameState.StartGame;
+ spriteManager.currentNumberOfLives = 3;
+ spriteManager.currentLevel = 1;
+ spriteManager.restart = true;
+ }
+ break;
+ case GameState.WinGame:
+ winBack.Update(gameTime, Window.ClientBounds);
+ if (Keyboard.GetState().IsKeyDown(Keys.M)) tButtonPressed = true;
+ if (Keyboard.GetState().IsKeyUp(Keys.M) && tButtonPressed)
+ {
+ tButtonPressed = false;
+ currentGameState = GameState.StartGame;
+ spriteManager.currentNumberOfLives = 3;
+ spriteManager.currentLevel = 1;
+ spriteManager.restart = true;
+ }
+ break;
+ }
+ base.Update(gameTime);
+ }
+
+ protected override void Draw(GameTime gameTime)
+ {
+ switch (currentGameState)
+ {
+ case GameState.StartGame:
+ GraphicsDevice.Clear(Color.White);
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+ startBack.Draw(gameTime, spriteBatch);
+ spriteBatch.End();
+ break;
+ case GameState.Tutorial:
+ GraphicsDevice.Clear(Color.White);
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+ tutorialBack.Draw(gameTime, spriteBatch);
+ spriteBatch.End();
+ break;
+ case GameState.Credits:
+ GraphicsDevice.Clear(Color.White);
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+ creditsBack.Draw(gameTime, spriteBatch);
+ spriteBatch.End();
+ break;
+ case GameState.InGame:
+ GraphicsDevice.Clear(Color.CornflowerBlue);
+ break;
+ case GameState.EndGame:
+ GraphicsDevice.Clear(Color.White);
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+ endBack.Draw(gameTime, spriteBatch);
+ spriteBatch.DrawString(endStats,
+ "You DIED with a score of " + spriteManager.currentScore + " at level " + spriteManager.currentLevel,
+ new Vector2(345, 450), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+ spriteBatch.DrawString(endStats,
+ "Press M to access the menu or ESC to quit",
+ new Vector2(330, 485), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+ spriteBatch.End();
+ break;
+ case GameState.WinGame:
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+ winBack.Draw(gameTime, spriteBatch);
+ spriteBatch.DrawString(endStats,
+ "You managed to beat the game with a score of " + spriteManager.currentScore + " !",
+ new Vector2(285, 450), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+ spriteBatch.DrawString(endStats,
+ "Press M to access the menu or ESC to quit",
+ new Vector2(330, 485), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+ spriteBatch.End();
+ break;
+ }
+ base.Draw(gameTime);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/GameThumbnail.png b/SuperAwesomeMagnetGame/GameThumbnail.png
new file mode 100644
index 0000000..462311a
Binary files /dev/null and b/SuperAwesomeMagnetGame/GameThumbnail.png differ
diff --git a/SuperAwesomeMagnetGame/Magnet.cs b/SuperAwesomeMagnetGame/Magnet.cs
new file mode 100644
index 0000000..4f7bc42
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Magnet.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SuperAwesomeMagnetGame
+{
+ class Magnet : Sprite
+ {
+ Vector2 origin = new Vector2(20, 20);
+
+ public Magnet(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public Magnet(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public Magnet(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, Charge charge)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, charge) { }
+
+ public Charge Polarity
+ {
+ get { return charge; }
+ }
+
+ public Vector2 Position
+ {
+ get { return position; }
+ }
+
+ public Vector2 Speed
+ {
+ get { return speed; }
+ set { speed = value; }
+ }
+
+ public override Vector2 Direction
+ {
+ get
+ {
+ KeyboardState MagnetInput = Keyboard.GetState();
+ if (MagnetInput.IsKeyDown(Keys.W)) speed.Y--;
+ if (MagnetInput.IsKeyDown(Keys.S)) speed.Y++;
+ return speed;
+ }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ position += Direction;
+
+ base.Update(gameTime, clientBounds);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/PlayerLeftHandSprite.cs b/SuperAwesomeMagnetGame/PlayerLeftHandSprite.cs
new file mode 100644
index 0000000..a95aecb
--- /dev/null
+++ b/SuperAwesomeMagnetGame/PlayerLeftHandSprite.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SuperAwesomeMagnetGame
+{
+ class PlayerLeftHandSprite : PlayerSprite
+ {
+ Vector2 boundsOffset = new Vector2(120, 55);
+
+ public SpriteEffects HandFlip { get; set; }
+
+ public PlayerLeftHandSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public PlayerLeftHandSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ //public Vector2 Position
+ //{
+ // get { return position; }
+ // set { position = value; }
+ //}
+
+ public override Vector2 Direction
+ {
+ get
+ {
+ Vector2 inputDirection = Vector2.Zero;
+ KeyboardState HandInput = Keyboard.GetState();
+ if (HandInput.IsKeyDown(Keys.Left))
+ {
+ inputDirection.X -= 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Right))
+ {
+ inputDirection.X += 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Up))
+ {
+ inputDirection.Y -= 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Down))
+ {
+ inputDirection.Y += 1;
+ }
+
+ GamePadState padState = GamePad.GetState(PlayerIndex.One);
+ if (padState.ThumbSticks.Left.X != 0) inputDirection.X += padState.ThumbSticks.Left.X;
+ if (padState.ThumbSticks.Left.Y != 0) inputDirection.Y += padState.ThumbSticks.Left.Y;
+
+ return inputDirection * speed;
+ }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ KeyboardState HandStates = Keyboard.GetState();
+
+ position += Direction;
+
+ if (position.X < -30) position.X = -30;
+ if (position.Y < boundsOffset.Y) position.Y = boundsOffset.Y;
+ if (position.X > 874) position.X = 874;
+ if (position.Y > 768 - frameSize.Y) position.Y = 768 - frameSize.Y;
+ }
+
+ public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
+ {
+ spriteBatch.Draw(image, position, new Rectangle(currentFrame.X * frameSize.X,
+ currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0,
+ new Vector2(25, 25), 1f, HandFlip, 1f);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/PlayerRightHandSprite.cs b/SuperAwesomeMagnetGame/PlayerRightHandSprite.cs
new file mode 100644
index 0000000..dc227f5
--- /dev/null
+++ b/SuperAwesomeMagnetGame/PlayerRightHandSprite.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SuperAwesomeMagnetGame
+{
+ class PlayerRightHandSprite : PlayerSprite
+ {
+ Vector2 boundsOffset = new Vector2(120, 55);
+ float rotationAngle = 0.0f;
+
+ public SpriteEffects HandFlip { get; set; }
+
+ public PlayerRightHandSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public PlayerRightHandSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ //public Vector2 Position
+ //{
+ // get { return position; }
+ // set { position = value; }
+ //}
+
+ public override Vector2 Direction
+ {
+ get
+ {
+ Vector2 inputDirection = Vector2.Zero;
+ KeyboardState HandInput = Keyboard.GetState();
+ if (HandInput.IsKeyDown(Keys.Left))
+ {
+ inputDirection.X -= 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Right))
+ {
+ inputDirection.X += 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Up))
+ {
+ inputDirection.Y -= 1;
+ }
+ if (HandInput.IsKeyDown(Keys.Down))
+ {
+ inputDirection.Y += 1;
+ }
+
+ GamePadState padState = GamePad.GetState(PlayerIndex.One);
+ if (padState.ThumbSticks.Left.X != 0) inputDirection.X += padState.ThumbSticks.Left.X;
+ if (padState.ThumbSticks.Left.Y != 0) inputDirection.Y += padState.ThumbSticks.Left.Y;
+
+ return inputDirection * speed;
+ }
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ KeyboardState HandStates = Keyboard.GetState();
+
+ Position += Direction;
+
+ if (position.X < 150) position.X = 150;
+ if (position.Y < boundsOffset.Y) position.Y = boundsOffset.Y;
+ if (position.X > 1054) position.X = 1054;
+ if (position.Y > 768 - frameSize.Y) position.Y = 768 - frameSize.Y;
+ }
+
+ public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
+ {
+ spriteBatch.Draw(image, position, new Rectangle(currentFrame.X * frameSize.X,
+ currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, rotationAngle,
+ new Vector2(25, 25), 1f, HandFlip, 1f);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/PlayerSprite.cs b/SuperAwesomeMagnetGame/PlayerSprite.cs
new file mode 100644
index 0000000..5fd0712
--- /dev/null
+++ b/SuperAwesomeMagnetGame/PlayerSprite.cs
@@ -0,0 +1,187 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+
+namespace SuperAwesomeMagnetGame
+{
+ class PlayerSprite : Sprite
+ {
+ Point Facing = new Point();
+ int chargeChange;
+ bool isFacingRight = true, isMoving = false;
+ bool directionChangeIndex = true;
+ bool chargeChangeIndex = false;
+ bool isPositive = false;
+ bool charge_button_pressed = false;
+
+ public PlayerSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public PlayerSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public bool Shoot { get; set; }
+
+ public bool Release { get; set; }
+
+ public bool IsPositive
+ {
+ get { return isPositive; }
+ set { isPositive = value; }
+ }
+
+ public bool IsFacingRight
+ {
+ get { return isFacingRight; }
+ set { isFacingRight = value; }
+ }
+
+ public Vector2 Position
+ {
+ get { return position; }
+ set { position = value; }
+ }
+
+ public Vector2 Speed
+ {
+ get { return speed; }
+ set { speed = value; }
+ }
+
+ public override Vector2 Direction
+ {
+ get
+ {
+ Vector2 inputDirection = Vector2.Zero;
+ KeyboardState States = Keyboard.GetState();
+ if (States.IsKeyDown(Keys.Left))
+ {
+ inputDirection.X -= 1;
+ isMoving = true;
+ IsFacingRight = false;
+ }
+ if (States.IsKeyDown(Keys.Right))
+ {
+ inputDirection.X += 1;
+ isMoving = true;
+ IsFacingRight = true;
+ }
+ if (States.IsKeyDown(Keys.Up))
+ {
+ inputDirection.Y -= 1;
+ isMoving = true;
+ }
+ if (States.IsKeyDown(Keys.Down))
+ {
+ inputDirection.Y += 1;
+ isMoving = true;
+ }
+
+ GamePadState padState = GamePad.GetState(PlayerIndex.One);
+ if (padState.ThumbSticks.Left.X != 0) inputDirection.X += padState.ThumbSticks.Left.X;
+ if (padState.ThumbSticks.Left.Y != 0) inputDirection.Y += padState.ThumbSticks.Left.Y;
+
+ return inputDirection * speed;
+ }
+ }
+
+ public Point UpdateFacing()
+ {
+ if (IsFacingRight)
+ {
+ Facing.X = 0 + chargeChange;
+ Facing.Y = 2 + chargeChange;
+ }
+ if (!IsFacingRight)
+ {
+ Facing.X = 2 + chargeChange;
+ Facing.Y = 4 + chargeChange;
+ }
+ return Facing;
+ }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ KeyboardState States = Keyboard.GetState();
+
+ if (States.IsKeyDown(Keys.Space)) Shoot = true;
+ if (States.IsKeyUp(Keys.Space) && Shoot) Release = true;
+
+ if (States.IsKeyDown(Keys.LeftShift) || States.IsKeyDown(Keys.RightShift)) charge_button_pressed = true;
+ if ((States.IsKeyUp(Keys.LeftShift) && States.IsKeyUp(Keys.RightShift)) && charge_button_pressed)
+ {
+ charge_button_pressed = false;
+ if (IsPositive)
+ {
+ IsPositive = false;
+ chargeChange = 0;
+ }
+ else if (!IsPositive)
+ {
+ IsPositive = true;
+ chargeChange = 4;
+ }
+ }
+
+ position += Direction;
+ UpdateFacing();
+
+ if ((directionChangeIndex && !IsFacingRight) || (!directionChangeIndex && IsFacingRight))
+ {
+ directionChangeIndex = IsFacingRight;
+ currentFrame.X = 0;
+ currentFrame.Y = Facing.X;
+ }
+
+ if ((chargeChangeIndex && !IsPositive) || (!chargeChangeIndex && IsPositive))
+ {
+ chargeChangeIndex = IsPositive;
+ currentFrame.X = 0;
+ currentFrame.Y = Facing.X;
+ }
+
+ if (position.X < 0) position.X = 0;
+ if (position.Y < 0) position.Y = 0;
+ if (position.X > 1024 - frameSize.X) position.X = 1024 - frameSize.X;
+ if (position.Y > 768 - frameSize.Y) position.Y = 768 - frameSize.Y;
+
+ if (isMoving)
+ {
+ isMoving = false;
+ ++timeSinceLastFrame;
+ if (timeSinceLastFrame == 2)
+ {
+ timeSinceLastFrame = 0;
+
+ ++currentFrame.X;
+ if (currentFrame.X >= sheetSize.X)
+ {
+ currentFrame.X = 0;
+ ++currentFrame.Y;
+ if (currentFrame.Y >= Facing.Y)
+ currentFrame.Y = Facing.X;
+ }
+ }
+ }
+ }
+
+ public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)
+ {
+ spriteBatch.Draw(image, position, new Rectangle(currentFrame.X * frameSize.X,
+ currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0f,
+ Vector2.Zero, 1f, SpriteEffects.None, 0);
+
+ base.Draw(gameTime, spriteBatch);
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/PowerupSprite.cs b/SuperAwesomeMagnetGame/PowerupSprite.cs
new file mode 100644
index 0000000..fae21ea
--- /dev/null
+++ b/SuperAwesomeMagnetGame/PowerupSprite.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperAwesomeMagnetGame
+{
+ class PowerupSprite : Sprite
+ {
+ public PowerupSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue) { }
+
+ public PowerupSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, int millisecondsPerFrame)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, millisecondsPerFrame) { }
+
+ public PowerupSprite(Texture2D image, Vector2 position,
+ Point frameSize, int collisionOffset, Point currentFrame,
+ Point sheetSize, Vector2 speed, int pointValue, PowerType powerType, int countdown)
+ : base(image, position, frameSize, collisionOffset, currentFrame, sheetSize,
+ speed, pointValue, powerType, countdown) { }
+
+ public int Countdown
+ {
+ get { return countdown; }
+ set { countdown = value; }
+ }
+
+ public Sprite.PowerType Type { get { return powerType; } }
+
+ public override Vector2 Direction { get { return speed; } }
+
+ public override void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ position += Direction;
+
+ if (position.X < 0) speed.X = -speed.X;
+ if (position.Y < 0) speed.Y = -speed.Y;
+ if (position.X > 1024 - frameSize.X) speed.X = -speed.X;
+ if (position.Y > 768 - frameSize.Y) speed.Y = -speed.Y;
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/Program.cs b/SuperAwesomeMagnetGame/Program.cs
new file mode 100644
index 0000000..bcf7950
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Program.cs
@@ -0,0 +1,19 @@
+using System;
+
+namespace SuperAwesomeMagnetGame
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ static void Main(string[] args)
+ {
+ using (Game1 game = new Game1())
+ {
+ game.Run();
+ }
+ }
+ }
+}
+
diff --git a/SuperAwesomeMagnetGame/Properties/AssemblyInfo.cs b/SuperAwesomeMagnetGame/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..9f0ed54
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SuperAwesomeMagnetGame")]
+[assembly: AssemblyProduct("SuperAwesomeMagnetGame")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("")]
+
+[assembly: AssemblyCopyright("Copyright © 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("94bee012-5879-49b2-893b-3ef024f2f5e1")]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
diff --git a/SuperAwesomeMagnetGame/Sprite.cs b/SuperAwesomeMagnetGame/Sprite.cs
new file mode 100644
index 0000000..3128202
--- /dev/null
+++ b/SuperAwesomeMagnetGame/Sprite.cs
@@ -0,0 +1,102 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperAwesomeMagnetGame
+{
+ abstract class Sprite
+ {
+ const int defaultMillisecondsPerFrame = 16;
+ public enum Charge { positive, negative, neutral };
+ public enum PowerType { life, bomb, slow, cross, noblock, addblock };
+
+ protected Texture2D image;
+ protected Vector2 position;
+ protected Vector2 speed;
+ protected Point sheetSize;
+ protected Point frameSize;
+ protected Point currentFrame;
+ protected int timeSinceLastFrame = 0;
+ protected int millisecondsPerFrame;
+ protected int pointValue;
+ protected int countdown;
+ protected PowerType powerType;
+ protected float scale = 1;
+ protected Charge charge;
+ int collisionOffset;
+
+ public Sprite(Texture2D image, Vector2 position, Point frameSize,
+ int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed, int pointValue)
+ : this(image, position, frameSize, collisionOffset,
+ currentFrame, sheetSize, speed, pointValue, defaultMillisecondsPerFrame) { }
+
+ public Sprite(Texture2D image, Vector2 position, Point frameSize,
+ int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed,
+ int pointValue, int millisecondsPerFrame)
+ {
+ this.image = image;
+ this.position = position;
+ this.frameSize = frameSize;
+ this.collisionOffset = collisionOffset;
+ this.currentFrame = currentFrame;
+ this.sheetSize = sheetSize;
+ this.speed = speed;
+ this.pointValue = pointValue;
+ this.millisecondsPerFrame = millisecondsPerFrame;
+ }
+
+ public Sprite(Texture2D image, Vector2 position, Point frameSize, int collisionOffset,
+ Point currentFrame, Point sheetSize, Vector2 speed, int pointValue, float scale)
+ : this(image, position, frameSize, collisionOffset, currentFrame, sheetSize, speed,
+ pointValue, defaultMillisecondsPerFrame) { this.scale = scale; }
+
+ public Sprite(Texture2D image, Vector2 position, Point frameSize, int collisionOffset,
+ Point currentFrame, Point sheetSize, Vector2 speed, int pointValue, Charge charge)
+ : this(image, position, frameSize, collisionOffset, currentFrame, sheetSize, speed,
+ pointValue, defaultMillisecondsPerFrame) { this.charge = charge; }
+
+ public Sprite(Texture2D image, Vector2 position, Point frameSize, int collisionOffset,
+ Point currentFrame, Point sheetSize, Vector2 speed, int pointValue, PowerType powerType, int countdown)
+ : this(image, position, frameSize, collisionOffset, currentFrame, sheetSize, speed,
+ pointValue, defaultMillisecondsPerFrame) { this.powerType = powerType; this.countdown = countdown; }
+
+ public virtual void Update(GameTime gameTime, Rectangle clientBounds)
+ {
+ timeSinceLastFrame += gameTime.ElapsedGameTime.Milliseconds;
+ if (timeSinceLastFrame > millisecondsPerFrame)
+ {
+ timeSinceLastFrame = 0;
+ ++currentFrame.X;
+ if (currentFrame.X >= sheetSize.X)
+ {
+ currentFrame.X = 0;
+ ++currentFrame.Y;
+ if (currentFrame.Y >= sheetSize.Y)
+ currentFrame.Y = 0;
+ }
+ }
+ }
+
+ public virtual void Draw(GameTime gameTime, SpriteBatch spriteBatch)
+ {
+ spriteBatch.Draw(image, position, new Rectangle(currentFrame.X * frameSize.X,
+ currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0,
+ Vector2.Zero, scale, SpriteEffects.None, 1f);
+ }
+
+ public abstract Vector2 Direction { get; }
+
+ public Rectangle CollisionRect
+ {
+ get
+ {
+ return new Rectangle((int)position.X + collisionOffset,
+ (int)position.Y + collisionOffset, frameSize.X - (collisionOffset * 2),
+ frameSize.Y - (collisionOffset * 2));
+ }
+ }
+ }
+}
diff --git a/SuperAwesomeMagnetGame/SpriteManager.cs b/SuperAwesomeMagnetGame/SpriteManager.cs
new file mode 100644
index 0000000..36dbcac
--- /dev/null
+++ b/SuperAwesomeMagnetGame/SpriteManager.cs
@@ -0,0 +1,604 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Audio;
+using Microsoft.Xna.Framework.Content;
+using Microsoft.Xna.Framework.GamerServices;
+using Microsoft.Xna.Framework.Graphics;
+using Microsoft.Xna.Framework.Input;
+using Microsoft.Xna.Framework.Media;
+using Microsoft.Xna.Framework.Net;
+using Microsoft.Xna.Framework.Storage;
+
+
+namespace SuperAwesomeMagnetGame
+{
+ public class SpriteManager : Microsoft.Xna.Framework.DrawableGameComponent
+ {
+ public SpriteManager(Game game)
+ : base(game)
+ {
+ // TODO: Construct any child components here
+ }
+
+ SpriteBatch spriteBatch;
+ PlayerSprite player;
+ PlayerRightHandSprite playerRightHand;
+ PlayerLeftHandSprite playerLeftHand;
+ Background back1;
+ Background back2;
+ Background back3;
+ List spriteList = new List();
+ List livesList = new List();
+ List magnetList = new List();
+ List backgroundList = new List();
+ List blockList = new List();
+ List powerupList = new List();
+ SpriteFont score;
+ SpriteFont level;
+ Random random = new Random();
+ SoundEffect Hit;
+ SoundEffectInstance HitInstance;
+ SoundEffect Kill;
+ SoundEffectInstance KillInstance;
+ SoundEffect Shoot;
+ SoundEffectInstance ShootInstance;
+ SoundEffect Reflect;
+ SoundEffectInstance ReflectInstance;
+ SoundEffect Clear;
+ SoundEffectInstance ClearInstance;
+ SoundEffect Cross;
+ SoundEffectInstance CrossInstance;
+ SoundEffect PowerupSpawn;
+ SoundEffectInstance PowerupSpawnInstance;
+ SoundEffect NoBlock;
+ SoundEffectInstance NoBlockSoundInstance;
+ SoundEffect LifeUp;
+ SoundEffectInstance LifeUpInstance;
+ SoundEffect SlowDown;
+ SoundEffectInstance SlowDownInstance;
+ SoundEffect AddBlock;
+ SoundEffectInstance AddBlockInstance;
+
+ public int currentNumberOfLives = 3;
+ public int currentScore;
+ public int currentLevel = 1;
+ public int elapsedTime = 0;
+ public int occurTime = 240;
+ public bool isEffected = false;
+ public bool restart;
+ public bool[] shortcut = new bool[10];
+ public enum EndState { win, lose };
+
+ public void AddScore(int score)
+ {
+ currentScore += score;
+ }
+
+ public override void Initialize()
+ {
+ // TODO: Add your initialization code here
+
+ base.Initialize();
+ }
+
+ protected override void LoadContent()
+ {
+ spriteBatch = new SpriteBatch(Game.GraphicsDevice);
+
+ player = new PlayerSprite(Game.Content.Load(@"Images/MagnaBoyWalkingSheet"),
+ new Vector2((Game.Window.ClientBounds.Width / 2) - 60,(Game.Window.ClientBounds.Height / 2) - 52),
+ new Point(120, 105), 10, new Point(0, 0), new Point(8, 2), new Vector2(10, 10), 0);
+
+ playerRightHand = new PlayerRightHandSprite(Game.Content.Load(@"Images/MagnaBoyHand"),
+ (player.Position + new Vector2(150, 50)), new Point(50, 50), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(10, 10), 0);
+
+ playerLeftHand = new PlayerLeftHandSprite(Game.Content.Load(@"Images/MagnaBoyHand"),
+ (player.Position + new Vector2(-30, 50)), new Point(50, 50), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(10, 10), 0);
+
+ back1 = new Background(Game.Content.Load(@"Images/Background"), new Vector2(25, 25),
+ new Point(1024, 768), 0, new Point(0, 0), new Point(1, 1), new Vector2(-5, 0), 0);
+
+ back2 = new Background(Game.Content.Load(@"Images/Background"),
+ new Vector2(back1.Position.X + back1.FrameSize.X, 25), new Point(1024, 768), 0,
+ new Point(0, 0), new Point(1, 1), new Vector2(-5, 0), 0);
+
+ back3 = new Background(Game.Content.Load(@"Images/Background"),
+ new Vector2(back2.Position.X + back2.FrameSize.X, 25), new Point(1024, 768), 0,
+ new Point(0, 0), new Point(1, 1), new Vector2(-5, 0), 0);
+
+ score = Game.Content.Load(@"fonts/arial");
+ level = Game.Content.Load(@"fonts/arial");
+
+ for (int i = 0; i < currentNumberOfLives; i++)
+ {
+ int space = 10 + i * 40;
+ livesList.Add(new EnemySprite(Game.Content.Load(@"Images/MagnaBoyWalkingSheet"),
+ new Vector2(space, 35), new Point(120, 105), 10, new Point(0, 0), new Point(1, 1),
+ Vector2.Zero, 0, .25f));
+ }
+
+ backgroundList.Add(back1);
+ backgroundList.Add(back2);
+ backgroundList.Add(back3);
+
+ Hit = Game.Content.Load(@"Audio/HitSound");
+ Shoot = Game.Content.Load(@"Audio/ShootSound");
+ Kill = Game.Content.Load(@"Audio/KillSound");
+ Reflect = Game.Content.Load(@"Audio/ReflectSound");
+ Clear = Game.Content.Load(@"Audio/ClearSound");
+ Cross = Game.Content.Load(@"Audio/CrossSound");
+ PowerupSpawn = Game.Content.Load(@"Audio/PowerupSpawn");
+ NoBlock = Game.Content.Load(@"Audio/NoBlockSound");
+ LifeUp = Game.Content.Load(@"Audio/LifeUpSound");
+ SlowDown = Game.Content.Load(@"Audio/SlowSound");
+ AddBlock = Game.Content.Load(@"Audio/AddBlockSound");
+
+ base.LoadContent();
+ }
+
+ public override void Update(GameTime gameTime)
+ {
+ if (restart)
+ {
+ restart = false;
+ spriteList.Clear();
+ magnetList.Clear();
+ blockList.Clear();
+ powerupList.Clear();
+ player.Position = new Vector2((Game.Window.ClientBounds.Width / 2) - 60, (Game.Window.ClientBounds.Height / 2) - 52);
+ playerRightHand.Position = (player.Position + new Vector2(150, 50));
+ playerLeftHand.Position = (player.Position + new Vector2(-30, 50));
+ elapsedTime = 0;
+ }
+
+ player.Update(gameTime, Game.Window.ClientBounds);
+ playerRightHand.Update(gameTime, Game.Window.ClientBounds);
+ playerLeftHand.Update(gameTime, Game.Window.ClientBounds);
+
+ KeyboardState powerupStates = Keyboard.GetState();
+
+ if (powerupStates.IsKeyDown(Keys.D1)) shortcut[0] = true;
+ if (powerupStates.IsKeyDown(Keys.D2)) shortcut[1] = true;
+ if (powerupStates.IsKeyDown(Keys.D3)) shortcut[2] = true;
+ if (powerupStates.IsKeyDown(Keys.D4)) shortcut[3] = true;
+ if (powerupStates.IsKeyDown(Keys.D5)) shortcut[4] = true;
+ if (powerupStates.IsKeyDown(Keys.D6)) shortcut[5] = true;
+ if (powerupStates.IsKeyDown(Keys.D7)) shortcut[6] = true;
+ if (powerupStates.IsKeyDown(Keys.D8)) shortcut[7] = true;
+ if (powerupStates.IsKeyDown(Keys.D9)) shortcut[8] = true;
+ if (powerupStates.IsKeyDown(Keys.D0)) shortcut[9] = true;
+ if (powerupStates.IsKeyUp(Keys.D1) && shortcut[0] == true)
+ {
+ shortcut[0] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/LifePowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5,random.Next(11) - 5), 0, Sprite.PowerType.life, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D2) && shortcut[1] == true)
+ {
+ shortcut[1] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/BombPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.bomb, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D3) && shortcut[2] == true)
+ {
+ shortcut[2] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/SlowPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.slow, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D4) && shortcut[3] == true)
+ {
+ shortcut[3] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/CrossPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.cross, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D5) && shortcut[4] == true)
+ {
+ shortcut[4] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/NoBlockPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.noblock, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D6) && shortcut[5] == true)
+ {
+ shortcut[5] = false;
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/AddBlockPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.addblock, 360));
+ }
+ if (powerupStates.IsKeyUp(Keys.D7) && shortcut[6] == true)
+ {
+ shortcut[6] = false;
+ currentLevel++;
+ }
+ if (powerupStates.IsKeyUp(Keys.D8) && shortcut[7] == true && currentLevel > 1)
+ {
+ shortcut[7] = false;
+ currentLevel--;
+ }
+ if (powerupStates.IsKeyUp(Keys.D9) && shortcut[8] == true)
+ {
+ shortcut[8] = false;
+ spriteList.Add(new EnemySprite(Game.Content.Load(@"Images/BlueEnemy"),
+ new Vector2(1024-50, random.Next(718)), new Point(50, 50), 5,
+ new Point(0, 0), new Point(1, 1), new Vector2(-(random.Next(5) + 1), random.Next(5) + 1),
+ 100, Sprite.Charge.positive));
+ }
+ if (powerupStates.IsKeyUp(Keys.D0) && shortcut[9] == true)
+ {
+ shortcut[9] = false;
+ spriteList.Add(new EnemySprite(Game.Content.Load(@"Images/RedEnemy"),
+ new Vector2(1024-50, random.Next(718)), new Point(50, 50), 5,
+ new Point(0, 0), new Point(1, 1), new Vector2(-(random.Next(5) + 1), (random.Next(13) - 6)),
+ 100, Sprite.Charge.negative));
+ }
+
+ foreach (Sprite s in spriteList) s.Update(gameTime, Game.Window.ClientBounds);
+ foreach (Background b in backgroundList) b.Update(gameTime, Game.Window.ClientBounds);
+ foreach (Magnet m in magnetList) m.Update(gameTime, Game.Window.ClientBounds);
+ foreach (EnemySprite l in livesList) l.Update(gameTime, Game.Window.ClientBounds);
+ foreach (BlockSprite bs in blockList) bs.Update(gameTime, Game.Window.ClientBounds);
+ foreach (PowerupSprite p in powerupList) p.Update(gameTime, Game.Window.ClientBounds);
+
+ if (player.Release)
+ {
+ player.Release = false;
+ player.Shoot = false;
+ if (!player.IsPositive)
+ {
+ if (player.IsFacingRight)
+ magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ playerRightHand.Position + new Vector2(0, -25), new Point(40, 40), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(20, 0), 0, Sprite.Charge.negative));
+ else
+ magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ playerLeftHand.Position + new Vector2(-50, -25), new Point(40, 40), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(-20, 0), 0, Sprite.Charge.negative));
+ }
+ else if (player.IsPositive)
+ {
+ if (player.IsFacingRight)
+ magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ playerRightHand.Position + new Vector2(0, -25), new Point(40, 40), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(20, 0), 0, Sprite.Charge.positive));
+ else
+ magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ playerLeftHand.Position + new Vector2(-50, -25), new Point(40, 40), 0, new Point(0, 0),
+ new Point(1, 1), new Vector2(-20, 0), 0, Sprite.Charge.positive));
+ }
+ ShootInstance = Shoot.CreateInstance();
+ ShootInstance.Play();
+ }
+
+ if (!player.IsFacingRight) playerLeftHand.HandFlip = SpriteEffects.FlipHorizontally;
+ if (back1.Position.X < -back1.FrameSize.X) back1.Position = new Vector2(back3.Position.X + back3.FrameSize.X, 25);
+ if (back2.Position.X < -back2.FrameSize.X) back2.Position = new Vector2(back1.Position.X + back1.FrameSize.X, 25);
+ if (back3.Position.X < -back3.FrameSize.X) back3.Position = new Vector2(back2.Position.X + back2.FrameSize.X, 25);
+
+ elapsedTime++;
+ if (elapsedTime == 3600)
+ {
+ elapsedTime = 0;
+ currentLevel++;
+ blockList.Add(new BlockSprite(Game.Content.Load(@"Images/Block"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1), new Vector2(random.Next(5) - 2, random.Next(5) - 2), 0));
+ }
+ if (elapsedTime % ((currentLevel + 1) * 60) == 0)
+ {
+ for (int i = 0; i < currentLevel; i++)
+ {
+ int index = random.Next(2) + 1;
+ int side = random.Next(2) + 1;
+ if (side == 1) side = 0; else side = Game.Window.ClientBounds.Width - 50;
+ if (index == 1) spriteList.Add(new EnemySprite(Game.Content.Load(@"Images/BlueEnemy"),
+ new Vector2(side, random.Next(718)), new Point(50, 50), 5,
+ new Point(0, 0), new Point(1, 1), new Vector2(-(random.Next(5) + 1), random.Next(5) + 1),
+ 100, Sprite.Charge.positive));
+ else spriteList.Add(new EnemySprite(Game.Content.Load(@"Images/RedEnemy"),
+ new Vector2(side, random.Next(718)), new Point(50, 50), 5,
+ new Point(0, 0), new Point(1, 1), new Vector2(-(random.Next(5) + 1), (random.Next(13) - 6)),
+ 100, Sprite.Charge.negative));
+ }
+ }
+ if (elapsedTime % 600 == 0)
+ {
+ int releaseChoice = random.Next(2);
+ if (releaseChoice == 0)
+ {
+ int releaseType = random.Next(6);
+ if (releaseType == 0)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/LifePowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5,random.Next(11) - 5), 0, Sprite.PowerType.life, 360));
+ }
+ else if (releaseType == 1)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/BombPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.bomb, 360));
+ }
+ else if (releaseType == 2)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/SlowPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.slow, 360));
+ }
+ else if (releaseType == 3)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/CrossPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.cross, 360));
+ }
+ else if (releaseType == 4)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/NoBlockPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.noblock, 360));
+ }
+ else if (releaseType == 5)
+ {
+ powerupList.Add(new PowerupSprite(Game.Content.Load(@"Images/AddBlockPowerup"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(random.Next(11) - 5, random.Next(11) - 5), 0, Sprite.PowerType.addblock, 360));
+ }
+ PowerupSpawnInstance = PowerupSpawn.CreateInstance();
+ PowerupSpawnInstance.Play();
+ }
+ }
+
+ for (int i = 0; i < blockList.Count; i++)
+ {
+ if (blockList[i].CollisionRect.Intersects(player.CollisionRect))
+ {
+ player.Position -= new Vector2(player.Speed.X, player.Speed.Y);
+ playerRightHand.Position -= new Vector2(playerRightHand.Speed.X, playerRightHand.Speed.Y);
+ playerLeftHand.Position -= new Vector2(playerLeftHand.Speed.X, playerLeftHand.Speed.Y);
+ }
+ for (int n = 0; n < spriteList.Count; n++)
+ {
+ if (blockList[i].CollisionRect.Intersects(spriteList[n].CollisionRect))
+ {
+ spriteList[n].Speed = new Vector2(-spriteList[n].Speed.X, -spriteList[n].Speed.Y);
+ }
+ }
+ }
+
+ for (int i = 0; i < powerupList.Count; i++)
+ {
+ if (powerupList[i].CollisionRect.Intersects(player.CollisionRect))
+ {
+ if (powerupList[i].Type == Sprite.PowerType.life)
+ {
+ LifeUpInstance = LifeUp.CreateInstance();
+ LifeUpInstance.Play();
+ currentNumberOfLives++;
+ livesList.Add(new EnemySprite(Game.Content.Load(@"Images/MagnaBoyWalkingSheet"),
+ new Vector2(10 + (currentNumberOfLives - 1) * 40, 35), new Point(120, 105), 10,
+ new Point(0, 0), new Point(1, 1), Vector2.Zero, 0, .25f));
+ }
+ else if (powerupList[i].Type == Sprite.PowerType.bomb)
+ {
+ ClearInstance = Clear.CreateInstance();
+ ClearInstance.Play();
+ for (int n = 0; n < spriteList.Count; n++) currentScore += 100;
+ spriteList.Clear();
+ }
+ else if (powerupList[i].Type == Sprite.PowerType.slow)
+ {
+ SlowDownInstance = SlowDown.CreateInstance();
+ SlowDownInstance.Play();
+ isEffected = true;
+ player.Speed -= new Vector2(7, 7);
+ playerRightHand.Speed -= new Vector2(7, 7);
+ playerLeftHand.Speed -= new Vector2(7, 7);
+ }
+ else if (powerupList[i].Type == Sprite.PowerType.cross)
+ {
+ CrossInstance = Cross.CreateInstance();
+ CrossInstance.Play();
+ int choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position, new Point(40, 40), 0, new Point(0, 0), new Point(1, 1), new Vector2(-20, -20),
+ 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position, new Point(40, 40), 0, new Point(0, 0), new Point(1, 1), new Vector2(-20, -20),
+ 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(60, 0), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(0, -20), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(60, 0), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(0, -20), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(120, 0), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, -20), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(120, 0), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, -20), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(120, 53), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, 0), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(120, 53), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, 0), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(120, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, 20), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(120, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(20, 20), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(60, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(0, 20), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(60, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(0, 20), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(0, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(-20, 20), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(0, 105), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(-20, 20), 0, Sprite.Charge.positive));
+ choice = random.Next(2);
+ if (choice == 1) magnetList.Add(new Magnet(Game.Content.Load(@"Images/NegativeMagnet"),
+ player.Position + new Vector2(0, 53), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(-20, 0), 0, Sprite.Charge.negative));
+ else magnetList.Add(new Magnet(Game.Content.Load(@"Images/PositiveMagnet"),
+ player.Position + new Vector2(0, 53), new Point(40, 40), 0, new Point(0, 0), new Point(1, 1),
+ new Vector2(-20, 0), 0, Sprite.Charge.positive));
+ }
+ else if (powerupList[i].Type == Sprite.PowerType.noblock)
+ {
+ NoBlockSoundInstance = NoBlock.CreateInstance();
+ NoBlockSoundInstance.Play();
+ if (blockList.Count != 0)blockList.RemoveAt(0);
+ }
+ else if (powerupList[i].Type == Sprite.PowerType.addblock)
+ {
+ AddBlockInstance = AddBlock.CreateInstance();
+ AddBlockInstance.Play();
+ blockList.Add(new BlockSprite(Game.Content.Load(@"Images/Block"),
+ new Vector2(random.Next(Game.Window.ClientBounds.Width - 50), random.Next(Game.Window.ClientBounds.Height - 50)),
+ new Point(50, 50), 0, new Point(0, 0), new Point(1, 1), new Vector2(random.Next(5) - 2, random.Next(5) - 2), 0));
+ }
+ powerupList.Remove(powerupList[i]);
+ i--;
+ }
+ }
+
+ for (int i = 0; i < spriteList.Count; i++)
+ {
+ if (spriteList[i].CollisionRect.Intersects(player.CollisionRect))
+ {
+ currentNumberOfLives--;
+ HitInstance = Hit.CreateInstance();
+ HitInstance.Play();
+ spriteList.Remove(spriteList[i]);
+ livesList.RemoveAt(livesList.Count - 1);
+ }
+ }
+
+ for (int i = 0; i < spriteList.Count; ++i)
+ {
+ for (int n = 0; n < magnetList.Count; ++n)
+ {
+ if (i >= 0 && spriteList.Count > 0 && spriteList[i].CollisionRect.Intersects(magnetList[n].CollisionRect))
+ {
+ if (spriteList[i].Polarity != magnetList[n].Polarity)
+ {
+ AddScore(spriteList[i].PointValue);
+ KillInstance = Kill.CreateInstance();
+ KillInstance.Play();
+ spriteList.Remove(spriteList[i]);
+ magnetList.Remove(magnetList[n]);
+ n--;
+ i--;
+ }
+ else
+ {
+ ReflectInstance = Reflect.CreateInstance();
+ ReflectInstance.Play();
+ magnetList[n].Speed = new Vector2(-magnetList[n].Speed.X, -magnetList[n].Speed.Y);
+ }
+ }
+ }
+ }
+
+ for (int i = 0; i < magnetList.Count; i++)
+ {
+ if (magnetList[i].Position.X > Game.Window.ClientBounds.Width ||
+ magnetList[i].Position.X < 0 ||
+ magnetList[i].Position.Y > Game.Window.ClientBounds.Height ||
+ magnetList[i].Position.Y < 0) magnetList.Remove(magnetList[i]);
+ }
+
+ if (isEffected)
+ {
+ occurTime--;
+ if (occurTime == 0)
+ {
+ occurTime = 240;
+ player.Speed += new Vector2(7, 7);
+ playerRightHand.Speed += new Vector2(7, 7);
+ playerLeftHand.Speed += new Vector2(7, 7);
+ isEffected = false;
+ }
+ }
+
+ for (int i = 0; i < powerupList.Count; i++)
+ {
+ powerupList[i].Countdown--;
+ if (powerupList[i].Countdown == 0)
+ {
+ powerupList.Remove(powerupList[i]);
+ i--;
+ }
+ }
+
+ livesList.Clear();
+ for (int i = 0; i < currentNumberOfLives; i++)
+ {
+ int space = 10 + i * 40;
+ livesList.Add(new EnemySprite(Game.Content.Load(@"Images/MagnaBoyWalkingSheet"),
+ new Vector2(space, 35), new Point(120, 105), 10, new Point(0, 0), new Point(1, 1),
+ Vector2.Zero, 0, .25f));
+ }
+
+ base.Update(gameTime);
+ }
+
+ public override void Draw(GameTime gameTime)
+ {
+ spriteBatch.Begin(SpriteSortMode.FrontToBack, BlendState.AlphaBlend);
+
+ player.Draw(gameTime, spriteBatch);
+ if (player.IsFacingRight) playerRightHand.Draw(gameTime, spriteBatch);
+ else playerLeftHand.Draw(gameTime, spriteBatch);
+
+ for (int i = 0; i < spriteList.Count; i++) spriteList[i].Draw(gameTime, spriteBatch);
+ foreach (Background b in backgroundList) b.Draw(gameTime, spriteBatch);
+ foreach (Magnet m in magnetList) m.Draw(gameTime, spriteBatch);
+ foreach (BlockSprite bs in blockList) bs.Draw(gameTime, spriteBatch);
+ foreach (PowerupSprite p in powerupList) p.Draw(gameTime, spriteBatch);
+
+ spriteBatch.DrawString(score, "Score : " + currentScore,
+ new Vector2(10, 10), Color.White, 0, Vector2.Zero,
+ 1, SpriteEffects.None, 1);
+
+ spriteBatch.DrawString(level, "Level : " + currentLevel,
+ new Vector2(Game.Window.ClientBounds.Width - 90, 10),
+ Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 1);
+
+ foreach (EnemySprite l in livesList) l.Draw(gameTime, spriteBatch);
+
+ spriteBatch.End();
+ }
+ }
+}
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj
new file mode 100644
index 0000000..bddd309
--- /dev/null
+++ b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj
@@ -0,0 +1,210 @@
+
+
+
+ {8186CF63-C057-438A-A3E9-87DEBE241B50}
+ {6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Debug
+ x86
+ WinExe
+ Properties
+ SuperAwesomeMagnetGame
+ SuperAwesomeMagnetGame
+ v4.0
+ v4.0
+ Windows
+ f16088bf-40fd-4002-b26b-41d3608e8f30
+ Game.ico
+ GameThumbnail.png
+ false
+ 9CBD3AB8120203E1099C97973CDC8EB7DF854FCF
+ SuperAwesomeMagnetGame_TemporaryKey.pfx
+ true
+ true
+
+
+
+
+ 4.0
+
+
+ Game
+ HiDef
+ Client
+ C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\
+ true
+ Disk
+ false
+ Foreground
+ 7
+ Days
+ false
+ false
+ true
+ 12
+ 1.0.0.%2a
+ false
+ true
+ true
+
+
+ true
+ full
+ false
+ bin\x86\Debug
+ DEBUG;TRACE;WINDOWS
+ prompt
+ 4
+ true
+ false
+ x86
+ false
+ AllRules.ruleset
+
+
+ pdbonly
+ true
+ bin\x86\Release
+ TRACE;WINDOWS
+ prompt
+ 4
+ true
+ false
+ x86
+ True
+ AllRules.ruleset
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ e4ec5b34-cc40-4d86-9976-1beb6112d6f7
+ False
+
+
+
+
+ False
+ .NET Framework 3.5 SP1 Client Profile
+ false
+
+
+ False
+ .NET Framework 2.0 %28x86%29
+ false
+
+
+ False
+ .NET Framework 3.0 %28x86%29
+ false
+
+
+ False
+ .NET Framework 3.5
+ false
+
+
+ False
+ .NET Framework 3.5 SP1
+ true
+
+
+ False
+ Windows Installer 3.1
+ true
+
+
+ False
+ Microsoft XNA Framework Redistributable 3.0
+ true
+
+
+ False
+ Microsoft XNA Framework Redistributable 4.0
+ true
+
+
+
+
+
+
+
+ {E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}
+ SuperAwesomeMagnetGameContent %28Content%29
+ Content
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.Debug.cachefile b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.Debug.cachefile
new file mode 100644
index 0000000..8cbc111
--- /dev/null
+++ b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.Debug.cachefile
@@ -0,0 +1,37 @@
+Content\Images\MagnaBoyWalkingSheet.xnb
+Content\Images\white-square-16x16.xnb
+Content\Images\red-square-16x16.xnb
+Content\Images\MagnaBoyHand.xnb
+Content\Images\NegativeMagnet.xnb
+Content\Images\PositiveMagnet.xnb
+Content\Images\Background.xnb
+Content\Images\RedEnemy.xnb
+Content\Images\BlueEnemy.xnb
+Content\Images\BlueEnemyAttack.xnb
+Content\Images\RedEnemyAttack.xnb
+Content\Images\Block.xnb
+Content\Images\EndScreen.xnb
+Content\Images\StartScreen.xnb
+Content\Images\LifePowerup.xnb
+Content\Images\WinScreen.xnb
+Content\Images\tutorialscreen.xnb
+Content\Images\BombPowerup.xnb
+Content\Images\SlowPowerup.xnb
+Content\Images\CrossPowerup.xnb
+Content\Images\NoBlockPowerup.xnb
+Content\Images\CreditsScreen.xnb
+Content\Images\AddBlockPowerup.xnb
+Content\Fonts\Arial.xnb
+Content\Audio\HitSound.xnb
+Content\Audio\KillSound.xnb
+Content\Audio\ShootSound.xnb
+Content\Audio\ReflectSound.xnb
+Content\Audio\ClearSound.xnb
+Content\Audio\CrossSound.xnb
+Content\Audio\PowerupSpawn.xnb
+Content\Audio\NoBlockSound.xnb
+Content\Audio\LifeUpSound.xnb
+Content\Audio\SlowSound.xnb
+Content\Audio\AddBlockSound.xnb
+Content\Audio\Background Music.xnb
+Content\Audio\Background Music.wma
diff --git a/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.user b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.user
new file mode 100644
index 0000000..3dce8ef
--- /dev/null
+++ b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame.csproj.user
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ en-US
+ false
+ false
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame_TemporaryKey.pfx b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame_TemporaryKey.pfx
new file mode 100644
index 0000000..47556fd
Binary files /dev/null and b/SuperAwesomeMagnetGame/SuperAwesomeMagnetGame_TemporaryKey.pfx differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/AddBlockSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/AddBlockSound.xnb
new file mode 100644
index 0000000..24922fc
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/AddBlockSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.wma b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.wma
new file mode 100644
index 0000000..c8ab46e
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.wma differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.xnb
new file mode 100644
index 0000000..11f1b8c
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/Background Music.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ClearSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ClearSound.xnb
new file mode 100644
index 0000000..de4d457
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ClearSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/CrossSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/CrossSound.xnb
new file mode 100644
index 0000000..670c04d
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/CrossSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/HitSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/HitSound.xnb
new file mode 100644
index 0000000..675ca4b
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/HitSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/KillSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/KillSound.xnb
new file mode 100644
index 0000000..d99c879
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/KillSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/LifeUpSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/LifeUpSound.xnb
new file mode 100644
index 0000000..361f089
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/LifeUpSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/NoBlockSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/NoBlockSound.xnb
new file mode 100644
index 0000000..323ada4
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/NoBlockSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/PowerupSpawn.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/PowerupSpawn.xnb
new file mode 100644
index 0000000..56ee40e
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/PowerupSpawn.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ReflectSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ReflectSound.xnb
new file mode 100644
index 0000000..87cda68
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ReflectSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ShootSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ShootSound.xnb
new file mode 100644
index 0000000..17bc4e8
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/ShootSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/SlowSound.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/SlowSound.xnb
new file mode 100644
index 0000000..483492e
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Audio/SlowSound.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Fonts/Arial.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Fonts/Arial.xnb
new file mode 100644
index 0000000..64502a8
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Fonts/Arial.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/AddBlockPowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/AddBlockPowerup.xnb
new file mode 100644
index 0000000..727e7cf
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/AddBlockPowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Background.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Background.xnb
new file mode 100644
index 0000000..ee7dfe6
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Background.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Block.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Block.xnb
new file mode 100644
index 0000000..7f2458b
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/Block.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemy.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemy.xnb
new file mode 100644
index 0000000..3a26b01
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemy.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemyAttack.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemyAttack.xnb
new file mode 100644
index 0000000..eee8090
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BlueEnemyAttack.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BombPowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BombPowerup.xnb
new file mode 100644
index 0000000..ccdc725
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/BombPowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CreditsScreen.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CreditsScreen.xnb
new file mode 100644
index 0000000..81e5191
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CreditsScreen.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CrossPowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CrossPowerup.xnb
new file mode 100644
index 0000000..7cedc21
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/CrossPowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/EndScreen.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/EndScreen.xnb
new file mode 100644
index 0000000..617d27c
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/EndScreen.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/LifePowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/LifePowerup.xnb
new file mode 100644
index 0000000..1ffd0c0
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/LifePowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyHand.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyHand.xnb
new file mode 100644
index 0000000..ea2c637
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyHand.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyWalkingSheet.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyWalkingSheet.xnb
new file mode 100644
index 0000000..de3a77e
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/MagnaBoyWalkingSheet.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NegativeMagnet.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NegativeMagnet.xnb
new file mode 100644
index 0000000..c547325
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NegativeMagnet.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NoBlockPowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NoBlockPowerup.xnb
new file mode 100644
index 0000000..94cb5c1
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/NoBlockPowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/PositiveMagnet.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/PositiveMagnet.xnb
new file mode 100644
index 0000000..406e616
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/PositiveMagnet.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemy.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemy.xnb
new file mode 100644
index 0000000..5fced65
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemy.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemyAttack.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemyAttack.xnb
new file mode 100644
index 0000000..04755c6
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/RedEnemyAttack.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/SlowPowerup.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/SlowPowerup.xnb
new file mode 100644
index 0000000..dcc797c
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/SlowPowerup.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/StartScreen.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/StartScreen.xnb
new file mode 100644
index 0000000..04a8236
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/StartScreen.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/WinScreen.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/WinScreen.xnb
new file mode 100644
index 0000000..297bdac
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/WinScreen.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/red-square-16x16.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/red-square-16x16.xnb
new file mode 100644
index 0000000..52ce879
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/red-square-16x16.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/tutorialscreen.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/tutorialscreen.xnb
new file mode 100644
index 0000000..5160fd1
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/tutorialscreen.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/white-square-16x16.xnb b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/white-square-16x16.xnb
new file mode 100644
index 0000000..30b40d5
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/Content/Images/white-square-16x16.xnb differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.application b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.application
new file mode 100644
index 0000000..3fceb95
--- /dev/null
+++ b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.application
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wt3yEpGAQHwC8cFypyeZ0dXgwa4=
+
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe
new file mode 100644
index 0000000..f775874
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe differ
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe.manifest b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe.manifest
new file mode 100644
index 0000000..e16a29c
--- /dev/null
+++ b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.exe.manifest
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WTODfgPqJ94PuKM2T0YcboGOqY4=
+
+
+
+
+
+
+
+
+
+ hO3KsbMMn2Sm+93pOrv/5ZOeGD4=
+
+
+
+
+
+
+
+
+ lgv7l8pcV9OeW+Eno/b58r6a7Is=
+
+
+
+
+
+
+
+
+ uOxG7HRft7GDzYQqdi+kdaFhZWE=
+
+
+
+
+
+
+
+
+ YdSE6Lk2C9/mMeLKgGePglWq++k=
+
+
+
+
+
+
+
+
+ j7LVKHZ3XmkQQu09+oB0chU+3EA=
+
+
+
+
+
+
+
+
+ bZjGSEUtHl4LmnkTtayYGbXZmwM=
+
+
+
+
+
+
+
+
+ fThm3t6eDA7ViWNLIyHf1DsiOR0=
+
+
+
+
+
+
+
+
+ 5OOVHTKaIYveD/xWCaI1sni2VPU=
+
+
+
+
+
+
+
+
+ XSTuVym625u2esPIRMU1sbeSycw=
+
+
+
+
+
+
+
+
+ EH/px1RecemsuVB/IkDu/ueIA04=
+
+
+
+
+
+
+
+
+ GkISaIalDduDjPMgjTxQHpZ0nL8=
+
+
+
+
+
+
+
+
+ tXQtHZoApRzxxMwmhgmVjKZYGok=
+
+
+
+
+
+
+
+
+ ajyvCfjdBVUCpexN6dHnLNdB5TU=
+
+
+
+
+
+
+
+
+ BCfyKUd2eM7ILcgBFsKoPWXIV58=
+
+
+
+
+
+
+
+
+ owUH4WKgSAhglZgyN3DcpvcT4iI=
+
+
+
+
+
+
+
+
+ dvH27o398lcWhHlEsx/PpAaCC1M=
+
+
+
+
+
+
+
+
+ CXO6f2OaZnCnEgpy3rNeWRPXSac=
+
+
+
+
+
+
+
+
+ tWk5fvVy+AcmZy2ZKLPeo60tE7Q=
+
+
+
+
+
+
+
+
+ MmKf53EW0haU4svr70KrtjxG3Kg=
+
+
+
+
+
+
+
+
+ 8+9w7ioFXJl4MyapvoKUsOFtrGw=
+
+
+
+
+
+
+
+
+ xoxHnLlJ5bP98Qb4sa4dVEYi/pA=
+
+
+
+
+
+
+
+
+ MybbL2seoXPwWLyudxVBNuK1Yic=
+
+
+
+
+
+
+
+
+ 7xX7M1xp8QCmMwXo8dR4trFl0bk=
+
+
+
+
+
+
+
+
+ Agev3Hnmv2lrW1H0kBcD0mIRp74=
+
+
+
+
+
+
+
+
+ AzKQMADKuZtFLJkT5q3gQql9yrI=
+
+
+
+
+
+
+
+
+ c4409AQDMPz5A3XbR49FNtr79HE=
+
+
+
+
+
+
+
+
+ WsyiYj+MGIWTR669p+4scR+qm/o=
+
+
+
+
+
+
+
+
+ vJpekAATY1cezWYtF95RInVqLb4=
+
+
+
+
+
+
+
+
+ 3fI/QFgCrNbbC21B4kur+KI51RY=
+
+
+
+
+
+
+
+
+ D117D/K8oYxD/x1+CNfsIphF1WM=
+
+
+
+
+
+
+
+
+ j0koKoBpaNPX398F42PB1mgWPZc=
+
+
+
+
+
+
+
+
+ cT9arnx0bobq5cvxVL+RrmjZLE8=
+
+
+
+
+
+
+
+
+ kc0YrVQm774RTC4qJEQAz54ipiQ=
+
+
+
+
+
+
+
+
+ flG5li90f32s7fdE2wsWR0ZFp/E=
+
+
+
+
+
+
+
+
+ fyDPaDfdUvyRGr4ADgTC/xUEwUM=
+
+
+
+
+
+
+
+
+ d7TFvgq9AdhcPv45XLWKSQ88y0A=
+
+
+
+
+
+
+
+
+ uqZTWzuY/GgyilusS5sEuF2CaXU=
+
+
+
+
+
+
+
+
+ /y21PfwGnUAkwpPwwaFuIIyWENo=
+
+
+
+
+
+
+
+
+ diNvdcDpDtGEMuMQIHpkKK3qVHc=
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.pdb b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.pdb
new file mode 100644
index 0000000..cd946db
Binary files /dev/null and b/SuperAwesomeMagnetGame/bin/x86/Debug/SuperAwesomeMagnetGame.pdb differ
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SuperAwesomeMagnetGame/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..eac26a8
Binary files /dev/null and b/SuperAwesomeMagnetGame/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/Microsoft.Xna.Framework.RuntimeProfile.txt b/SuperAwesomeMagnetGame/obj/x86/Debug/Microsoft.Xna.Framework.RuntimeProfile.txt
new file mode 100644
index 0000000..afd7815
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/Microsoft.Xna.Framework.RuntimeProfile.txt
@@ -0,0 +1 @@
+Windows.v4.0.HiDef
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/ResolveAssemblyReference.cache b/SuperAwesomeMagnetGame/obj/x86/Debug/ResolveAssemblyReference.cache
new file mode 100644
index 0000000..6b7f838
Binary files /dev/null and b/SuperAwesomeMagnetGame/obj/x86/Debug/ResolveAssemblyReference.cache differ
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.application b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.application
new file mode 100644
index 0000000..3fceb95
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.application
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wt3yEpGAQHwC8cFypyeZ0dXgwa4=
+
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.csproj.FileListAbsolute.txt b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..46d5c00
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.csproj.FileListAbsolute.txt
@@ -0,0 +1,94 @@
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.exe
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.pdb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\ResolveAssemblyReference.cache
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\Microsoft.Xna.Framework.RuntimeProfile.txt
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.exe
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.pdb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\MagnaBoyWalkingSheet.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\white-square-16x16.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\red-square-16x16.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\MagnaBoyHand.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\NegativeMagnet.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\PositiveMagnet.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.exe.manifest
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.application
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.exe.manifest
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.application
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\Background.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BlueEnemy.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\RedEnemy.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Fonts\Arial.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BlueEnemyAttack.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\RedEnemyAttack.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\HitSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\KillSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ShootSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\Block.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\EndScreen.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\StartScreen.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ReflectSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\tutorialscreen.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\LifePowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\WinScreen.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\Background Music.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\Background Music.wma
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BombPowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ClearSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\SlowPowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\CrossPowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\CrossSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\PowerupSpawn.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\NoBlockPowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\NoBlockSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\LifeUpSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\SlowSound.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\CreditsScreen.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\AddBlockPowerup.xnb
+C:\Users\Andy\Documents\Visual Studio 2008\Projects\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\AddBlockSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\ResolveAssemblyReference.cache
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\Microsoft.Xna.Framework.RuntimeProfile.txt
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.exe
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\MagnaBoyWalkingSheet.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\white-square-16x16.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\red-square-16x16.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\MagnaBoyHand.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\NegativeMagnet.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\PositiveMagnet.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\Background.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\RedEnemy.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BlueEnemy.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BlueEnemyAttack.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\RedEnemyAttack.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\Block.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\EndScreen.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\StartScreen.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\LifePowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\WinScreen.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\tutorialscreen.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\BombPowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\SlowPowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\CrossPowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\NoBlockPowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\CreditsScreen.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Images\AddBlockPowerup.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Fonts\Arial.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\HitSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\KillSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ShootSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ReflectSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\ClearSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\CrossSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\PowerupSpawn.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\NoBlockSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\LifeUpSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\SlowSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\AddBlockSound.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\Background Music.xnb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\Content\Audio\Background Music.wma
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.exe.manifest
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.application
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.exe
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\bin\x86\Debug\SuperAwesomeMagnetGame.pdb
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.exe.manifest
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.application
+C:\Users\Andy\Desktop\SuperAwesomeMagnetGame\SuperAwesomeMagnetGame\obj\x86\Debug\SuperAwesomeMagnetGame.pdb
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe
new file mode 100644
index 0000000..f775874
Binary files /dev/null and b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe differ
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe.manifest b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe.manifest
new file mode 100644
index 0000000..e16a29c
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.exe.manifest
@@ -0,0 +1,458 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WTODfgPqJ94PuKM2T0YcboGOqY4=
+
+
+
+
+
+
+
+
+
+ hO3KsbMMn2Sm+93pOrv/5ZOeGD4=
+
+
+
+
+
+
+
+
+ lgv7l8pcV9OeW+Eno/b58r6a7Is=
+
+
+
+
+
+
+
+
+ uOxG7HRft7GDzYQqdi+kdaFhZWE=
+
+
+
+
+
+
+
+
+ YdSE6Lk2C9/mMeLKgGePglWq++k=
+
+
+
+
+
+
+
+
+ j7LVKHZ3XmkQQu09+oB0chU+3EA=
+
+
+
+
+
+
+
+
+ bZjGSEUtHl4LmnkTtayYGbXZmwM=
+
+
+
+
+
+
+
+
+ fThm3t6eDA7ViWNLIyHf1DsiOR0=
+
+
+
+
+
+
+
+
+ 5OOVHTKaIYveD/xWCaI1sni2VPU=
+
+
+
+
+
+
+
+
+ XSTuVym625u2esPIRMU1sbeSycw=
+
+
+
+
+
+
+
+
+ EH/px1RecemsuVB/IkDu/ueIA04=
+
+
+
+
+
+
+
+
+ GkISaIalDduDjPMgjTxQHpZ0nL8=
+
+
+
+
+
+
+
+
+ tXQtHZoApRzxxMwmhgmVjKZYGok=
+
+
+
+
+
+
+
+
+ ajyvCfjdBVUCpexN6dHnLNdB5TU=
+
+
+
+
+
+
+
+
+ BCfyKUd2eM7ILcgBFsKoPWXIV58=
+
+
+
+
+
+
+
+
+ owUH4WKgSAhglZgyN3DcpvcT4iI=
+
+
+
+
+
+
+
+
+ dvH27o398lcWhHlEsx/PpAaCC1M=
+
+
+
+
+
+
+
+
+ CXO6f2OaZnCnEgpy3rNeWRPXSac=
+
+
+
+
+
+
+
+
+ tWk5fvVy+AcmZy2ZKLPeo60tE7Q=
+
+
+
+
+
+
+
+
+ MmKf53EW0haU4svr70KrtjxG3Kg=
+
+
+
+
+
+
+
+
+ 8+9w7ioFXJl4MyapvoKUsOFtrGw=
+
+
+
+
+
+
+
+
+ xoxHnLlJ5bP98Qb4sa4dVEYi/pA=
+
+
+
+
+
+
+
+
+ MybbL2seoXPwWLyudxVBNuK1Yic=
+
+
+
+
+
+
+
+
+ 7xX7M1xp8QCmMwXo8dR4trFl0bk=
+
+
+
+
+
+
+
+
+ Agev3Hnmv2lrW1H0kBcD0mIRp74=
+
+
+
+
+
+
+
+
+ AzKQMADKuZtFLJkT5q3gQql9yrI=
+
+
+
+
+
+
+
+
+ c4409AQDMPz5A3XbR49FNtr79HE=
+
+
+
+
+
+
+
+
+ WsyiYj+MGIWTR669p+4scR+qm/o=
+
+
+
+
+
+
+
+
+ vJpekAATY1cezWYtF95RInVqLb4=
+
+
+
+
+
+
+
+
+ 3fI/QFgCrNbbC21B4kur+KI51RY=
+
+
+
+
+
+
+
+
+ D117D/K8oYxD/x1+CNfsIphF1WM=
+
+
+
+
+
+
+
+
+ j0koKoBpaNPX398F42PB1mgWPZc=
+
+
+
+
+
+
+
+
+ cT9arnx0bobq5cvxVL+RrmjZLE8=
+
+
+
+
+
+
+
+
+ kc0YrVQm774RTC4qJEQAz54ipiQ=
+
+
+
+
+
+
+
+
+ flG5li90f32s7fdE2wsWR0ZFp/E=
+
+
+
+
+
+
+
+
+ fyDPaDfdUvyRGr4ADgTC/xUEwUM=
+
+
+
+
+
+
+
+
+ d7TFvgq9AdhcPv45XLWKSQ88y0A=
+
+
+
+
+
+
+
+
+ uqZTWzuY/GgyilusS5sEuF2CaXU=
+
+
+
+
+
+
+
+
+ /y21PfwGnUAkwpPwwaFuIIyWENo=
+
+
+
+
+
+
+
+
+ diNvdcDpDtGEMuMQIHpkKK3qVHc=
+
+
+
\ No newline at end of file
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.pdb b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.pdb
new file mode 100644
index 0000000..cd946db
Binary files /dev/null and b/SuperAwesomeMagnetGame/obj/x86/Debug/SuperAwesomeMagnetGame.pdb differ
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-e4ec5b34-cc40-4d86-9976-1beb6112d6f7-targetpath.txt b/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-e4ec5b34-cc40-4d86-9976-1beb6112d6f7-targetpath.txt
new file mode 100644
index 0000000..8cbc111
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-e4ec5b34-cc40-4d86-9976-1beb6112d6f7-targetpath.txt
@@ -0,0 +1,37 @@
+Content\Images\MagnaBoyWalkingSheet.xnb
+Content\Images\white-square-16x16.xnb
+Content\Images\red-square-16x16.xnb
+Content\Images\MagnaBoyHand.xnb
+Content\Images\NegativeMagnet.xnb
+Content\Images\PositiveMagnet.xnb
+Content\Images\Background.xnb
+Content\Images\RedEnemy.xnb
+Content\Images\BlueEnemy.xnb
+Content\Images\BlueEnemyAttack.xnb
+Content\Images\RedEnemyAttack.xnb
+Content\Images\Block.xnb
+Content\Images\EndScreen.xnb
+Content\Images\StartScreen.xnb
+Content\Images\LifePowerup.xnb
+Content\Images\WinScreen.xnb
+Content\Images\tutorialscreen.xnb
+Content\Images\BombPowerup.xnb
+Content\Images\SlowPowerup.xnb
+Content\Images\CrossPowerup.xnb
+Content\Images\NoBlockPowerup.xnb
+Content\Images\CreditsScreen.xnb
+Content\Images\AddBlockPowerup.xnb
+Content\Fonts\Arial.xnb
+Content\Audio\HitSound.xnb
+Content\Audio\KillSound.xnb
+Content\Audio\ShootSound.xnb
+Content\Audio\ReflectSound.xnb
+Content\Audio\ClearSound.xnb
+Content\Audio\CrossSound.xnb
+Content\Audio\PowerupSpawn.xnb
+Content\Audio\NoBlockSound.xnb
+Content\Audio\LifeUpSound.xnb
+Content\Audio\SlowSound.xnb
+Content\Audio\AddBlockSound.xnb
+Content\Audio\Background Music.xnb
+Content\Audio\Background Music.wma
diff --git a/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-{E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}-targetpath.txt b/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-{E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}-targetpath.txt
new file mode 100644
index 0000000..8cbc111
--- /dev/null
+++ b/SuperAwesomeMagnetGame/obj/x86/Debug/cachefile-{E4EC5B34-CC40-4D86-9976-1BEB6112D6F7}-targetpath.txt
@@ -0,0 +1,37 @@
+Content\Images\MagnaBoyWalkingSheet.xnb
+Content\Images\white-square-16x16.xnb
+Content\Images\red-square-16x16.xnb
+Content\Images\MagnaBoyHand.xnb
+Content\Images\NegativeMagnet.xnb
+Content\Images\PositiveMagnet.xnb
+Content\Images\Background.xnb
+Content\Images\RedEnemy.xnb
+Content\Images\BlueEnemy.xnb
+Content\Images\BlueEnemyAttack.xnb
+Content\Images\RedEnemyAttack.xnb
+Content\Images\Block.xnb
+Content\Images\EndScreen.xnb
+Content\Images\StartScreen.xnb
+Content\Images\LifePowerup.xnb
+Content\Images\WinScreen.xnb
+Content\Images\tutorialscreen.xnb
+Content\Images\BombPowerup.xnb
+Content\Images\SlowPowerup.xnb
+Content\Images\CrossPowerup.xnb
+Content\Images\NoBlockPowerup.xnb
+Content\Images\CreditsScreen.xnb
+Content\Images\AddBlockPowerup.xnb
+Content\Fonts\Arial.xnb
+Content\Audio\HitSound.xnb
+Content\Audio\KillSound.xnb
+Content\Audio\ShootSound.xnb
+Content\Audio\ReflectSound.xnb
+Content\Audio\ClearSound.xnb
+Content\Audio\CrossSound.xnb
+Content\Audio\PowerupSpawn.xnb
+Content\Audio\NoBlockSound.xnb
+Content\Audio\LifeUpSound.xnb
+Content\Audio\SlowSound.xnb
+Content\Audio\AddBlockSound.xnb
+Content\Audio\Background Music.xnb
+Content\Audio\Background Music.wma