- User must stop when they hit a wall
When you first create games, your player will simply have an X position and a Y position. In a tile-based game, you can use this to detect the player's position in relation to the tiles and the grid on which they lie. Imagine that your player lies on a chess board, if the squares on the board are 64 pixels wide and long, then if your player was at (32,32) then he'd be considered to be in the top-left square. If he was at (500,500), he'd be in the bottom-right square.
Now, each tile in your game must be considered passable or not-passable. Grass would usually be passable, but Walls would not. This allows you to define which tiles players CAN and CANNOT walk on.
With this information together, you can work out which grid-space the player is attempting to enter and check if it is passable or not. If it is not passable, prevent the player from entering that space, but position them so they are immediately outside it.
That is the theory. Hopefully someone can provide you with useful articles to help you implement it yourself.
- Directional bullet firing
These concepts are explained quite simply here:
- Mouse input
p.s. Hopefully my explanations were easy to follow. Giving advice to others is quite a new thing for me.