• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

mistervirtue

Members
  • Content count

    60
  • Joined

  • Last visited

Community Reputation

611 Good

About mistervirtue

  • Rank
    Member

Personal Information

  • Location
    Tucson, Arizona
  1. Here is my code for the most part   --------- SpriteManager --------- public class SpriteManager : Microsoft.Xna.Framework.DrawableGameComponent { SpriteBatch spriteBatch; UserControlledSprite player; Texture2D testingRec; Texture2D projectileSprite; List<Sprite> spriteList = new List<Sprite>(); public SpriteManager(Game game) : base(game) { } protected override void LoadContent() { spriteBatch = new SpriteBatch(Game.GraphicsDevice); player = new UserControlledSprite(Game.Content.Load<Texture2D>(@"images/SmallHero"), Vector2.Zero, new Point(85, 97), 1, new Point(0, 0), new Point(1, 1), new Vector2(3, 3)); testingRec = Game.Content.Load<Texture2D>(@"images/testRec"); projectileSprite = Game.Content.Load<Texture2D>(@"images/fireblast"); base.LoadContent(); } public override void Initialize() { base.Initialize(); } public override void Update(GameTime gameTime) { player.Update(gameTime, Game.Window.ClientBounds); base.Update(gameTime); } public override void Draw(GameTime gameTime) { spriteBatch.Begin(); player.Draw(gameTime, spriteBatch); spriteBatch.Draw(testingRec,player.collisionRect ,Color.White); spriteBatch.End(); base.Draw(gameTime); } }   ----- My base Sprite Class ------- namespace ProjectGaslightKnights { abstract class Sprite { public Texture2D textureImage; protected Vector2 position; protected Point frameSize; int collisionOffset; public Point currentFrame; public Point sheetSize; int timeSinceLastFrame = 0; protected Vector2 speed; int milisecondsPerFrame; const int defaultMillisecondsPerFrame = 16; SpriteEffects myEffect; Texture2D testingRecTexture; public Sprite(Texture2D textureImage, Vector2 position, Point frameSize, int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed) : this(textureImage, position, frameSize, collisionOffset, currentFrame, sheetSize, speed, defaultMillisecondsPerFrame) { } public Sprite(Texture2D textureImage, Vector2 position, Point frameSize, int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed, int millisecondsPerFrame) { this.textureImage = textureImage; this.position = position; this.frameSize = frameSize; this.collisionOffset = collisionOffset; this.currentFrame = currentFrame; this.sheetSize = sheetSize; this.speed = speed; this.milisecondsPerFrame = milisecondsPerFrame; } public virtual void Update(GameTime gameTime, Rectangle ClientBounds) { timeSinceLastFrame += gameTime.ElapsedGameTime.Milliseconds; if (timeSinceLastFrame > milisecondsPerFrame) { 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(textureImage, position, new Rectangle(currentFrame.X * frameSize.X, currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0, Vector2.Zero, 1f, myEffect, 0); spriteBatch.Draw(testingRecTexture, collisionRect, Color.White); } 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)); } } internal void Update(GameTime gameTime) { throw new NotImplementedException(); } } } -------And my user Class ------- class UserControlledSprite : Sprite { SpriteEffects myEffect; public UserControlledSprite(Texture2D textureImage, Vector2 position, Point frameSize, int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed) : base(textureImage, position, frameSize, collisionOffset, currentFrame, sheetSize, speed) { } public UserControlledSprite(Texture2D textureImage, Vector2 position, Point frameSize, int collisionOffset, Point currentFrame, Point sheetSize, Vector2 speed, int millisecondsPerFrame) : base(textureImage, position, frameSize, collisionOffset, currentFrame, sheetSize, speed, millisecondsPerFrame) { } public override Vector2 direction { get { Vector2 inputDirection = Vector2.Zero; if (Keyboard.GetState().IsKeyDown(Keys.Left)) { inputDirection.X -= 1; } if (Keyboard.GetState().IsKeyDown(Keys.Right)) { inputDirection.X += 1; } if (Keyboard.GetState().IsKeyDown(Keys.Down)) { inputDirection.Y += 1; } if (Keyboard.GetState().IsKeyDown(Keys.Up)) { inputDirection.Y -= 1; } return inputDirection * speed; } } public override void Update(GameTime gameTime, Rectangle ClientBounds) { //Move the spite according to the direction property position += direction; //If the player is facing left, flip it horizontally if (direction.X < 0) { this.myEffect = SpriteEffects.FlipHorizontally; } //If The player is facing right, no effect if (direction.X > 0) { this.myEffect = SpriteEffects.None; } //If the player leaves bounds off the screen put it back in play if (position.X < 0) { position.X = 0; } if (position.Y < 0) { position.Y = 0; } if (position.X > ClientBounds.Width - (frameSize.X)) { position.X = ClientBounds.Width - (frameSize.X ); } if (position.Y > ClientBounds.Height - (frameSize.Y)) { position.Y = ClientBounds.Height - (frameSize.Y); } base.Update(gameTime, ClientBounds); } public override void Draw(GameTime gameTime, SpriteBatch spriteBatch) { spriteBatch.Draw(textureImage, position, new Rectangle(currentFrame.X * frameSize.X, currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y), Color.White, 0, Vector2.Zero, 1, myEffect, 0); } }   I feel like I am cheating though. This isn't a school project or anything but all my professers tell me that Programmers need to learn to solve their own problems. But I think problem solving should involve other people, see as most of us want to work with other programmers. Anyway I am trying to build it such that my UserClass will be able to fire projectiles. So i Think the way I am going to model my ProjecticleSprite with a it's own draw(), and Update() and not inherit from the base class sprite. Thanks for your help everyone.
  2. Still working on 2D platformer
  3. Hello Fellow GameDev'ers,   I am working on my personal project and I have hit a serious road block. I am trying to making the player fire projectiles, but I can't really make it work. I have searched online for tutorials, but I can't seem to find any that make use of SpriteManager like I am doing. I am trying to make it as Object-Oriented as possible but I don't really know what to do.   I currently have a base Sprite.cs, a UserControlled.cs, and now a ProjectileSprite.cs, and a game component called SpriteManager.cs. I figure should model my ProjectileSprite.cs similarly to my other sprites and then add it to the SpriteManager.cs. But I also don't know how to make it interact with the UserControlled.cs so it will shoot when you want it to.   Does GameDev.net have any resources on this kind of problem? If anyone can give me any hints/points/shoves in the right direction that would be awesome.
  4. I would suggest you just keep working on your RPG in your spare time. It should grow as your tools and skills do. The more you learn how to do the more you should add into your game.
  5. I actually just solved my own problem! I feel so good. My issue was I wasn't draw the testingRec in the SpriteManager. 
  6. The code it self runs. All of my sprites appear and do the stuff they are supposed to do, but I can't borders I want to draw over them aren't being drawn.
  7. Hello Fellow Gamedev'ers,   I need assistance drawing a border around my a texture for collision testing purposes. I have a Base Sprite class, a subclass UserSprite, and a game Component called SpriteManager. I am trying to draw a border around all of my textures so i can test collision, but I don't really know how. I have tried some stuff on my own but I can't really get anything to work.   My current plan of attack is as follows. I have the base Sprite Class get the collisionRectangle //This is under the base Sprite Class. I get the collision Rectangle here. public Rectangle collisionRect { get { return new Rectangle( (int)position.X + collisionOffset, (int)position.Y + collisionOffset, frameSize.X - (collisionOffset * 2), frameSize.Y - (collisionOffset * 2)); } }   I then have the draw method draw the sprite and the border public virtual void Draw(GameTime gameTime, SpriteBatch spriteBatch) { spriteBatch.Draw(textureImage, position, new Rectangle(currentFrame.X * frameSize.X, currentFrame.Y * frameSize.Y, frameSize.X, frameSize.Y),Color.White,0,Vector2.Zero,1f,myEffect,0); //I am trying have it draw both the sprite itself and the border around it. spriteBatch.Draw(testingRecTexture, collisionRect, Color.Green); }   and I then Load the files for sprite and the border in my spriteManager protected override void LoadContent() { spriteBatch = new SpriteBatch(Game.GraphicsDevice); player = new UserControlledSprite(Game.Content.Load<Texture2D>(@"images/Warlock"), Vector2.Zero,new Point(378,413), 10, new Point(0,0),new Point(1,1), new Vector2 (3,3)); testingRec = Game.Content.Load<Texture2D>(@"images/testRec"); base.LoadContent(); }   The code runs, but the border does not a apper. I am just trying have each texture have a green border around it. If i could get a nudge or a shove in the right direction, that would be awesome.
  8. This is a great article, I lots of great information for beginners like me. I am going to re-read it catch anything i missed
  9. I gave you one in my response above. Sorry about that dave, I am colorblind. Seeing that different shade of blue is hard for me when i am not on my home computer. My bad.
  10. Any code pointers would be nice.
  11. Hello fellow gamedev'ers,   I have question about drawing collision rectangles. For testing purposes i want to draw a thin rectangle around my sprite (like an overlay), but i am not sure how. Would i use a primative, or would i have to put a texutre around the collisionRect itself?    Any help would be appericated.
  12. Thanks! I appericate the help and explanation. You were right it was my overload that was the problem.
  13. I have a animation error.   I have a spritesheet(400*215px) and it contains two frames. One frame (198*215) with a characters eyes open and one frame with the charaters eyes closed. My problem is whenever I attempt to animate this sheet, my code makes the whole sheet appear. Could I please get some help? --------------------------------------------------------------- Global Variables Point frameSize = new Point(198, 215); // The Size of an Indivsual Frame Point currentFrame = new Point (0,0); // Start in the first in the squence Point sheetSize = new Point(2,1); // Number of Rows and Columns of the Sprite Sheet ---------------------------------------------------------------- Update() timeSinceLastFrame += gameTime.ElapsedGameTime.Milliseconds; if (timeSinceLastFrame > millisecondsPerFrame) { //Animate the Knight timeSinceLastFrame -= millisecondsPerFrame; ++currentFrame.X; if (currentFrame.X >= sheetSize.X) { currentFrame.X = 0; ++currentFrame.Y; if (currentFrame.Y >= sheetSize.Y) { currentFrame.Y = 0; } } -------------------------------------------------------- Draw() spriteBatch.Draw(texture, new Rectangle ((currentFrame.X * frameSize.X), (currentFrame.Y*frameSize.Y), frameSize.X, frameSize.Y),Color.White); ----------------------------------------------------------   I am not sure what my problem is. I think it lies in the use of the point structs because it is drawing the whole texture file. But then again it could be in the draw but it seems pretty straight forward. Could I get some help?
  14. Current Project: Platformer
  15. I am still learning, I am getting better slowly.