Fixed going wrong way with snake movement
This commit is contained in:
		
							parent
							
								
									71dfa043a9
								
							
						
					
					
						commit
						197311831f
					
				| @ -1,7 +1,6 @@ | ||||
| // GameState.cpp
 | ||||
| #include <stdexcept> | ||||
| #include <SFML/Graphics.hpp> | ||||
| #include <tuple> | ||||
| #include "common.hpp" | ||||
| #include "playerinterface.hpp" | ||||
| #include "gamestate.hpp" | ||||
| @ -99,19 +98,16 @@ namespace snakeplusplus | ||||
|         sf::Vector2f boardDimensions = GetGameBoundaries(); | ||||
|         gameBoard.resize(boardDimensions.y, std::vector<char> (boardDimensions.x, ' ')); | ||||
|         // Snake setup
 | ||||
|         player.headLocation.x = GenerateRandomNumber(boardDimensions.x); | ||||
|         player.headLocation.y = GenerateRandomNumber(boardDimensions.y); | ||||
|         { | ||||
|             player.headLocation.x = GenerateRandomNumber(boardDimensions.x); | ||||
|             player.headLocation.y = GenerateRandomNumber(boardDimensions.y); | ||||
|             char* locationState = &gameBoard.at(player.headLocation.y).at(player.headLocation.x); | ||||
|             player.body.push(locationState); | ||||
|             *locationState = 'O'; | ||||
|         } | ||||
|         // Food setup
 | ||||
|         { | ||||
|             playerFood.GenerateNewFood(boardDimensions); | ||||
|             sf::Vector2f newLocation = playerFood.location; | ||||
|             gameBoard.at(newLocation.y).at(newLocation.x) = 'X'; | ||||
|         } | ||||
|         playerFood.GenerateNewFood(boardDimensions); | ||||
|         gameBoard.at(playerFood.location.y).at(playerFood.location.x) = 'X'; | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
| @ -119,18 +115,22 @@ namespace snakeplusplus | ||||
|     { | ||||
|         switch (GetPlayerInput()) { | ||||
|             case kUp: | ||||
|                 if (player.speed.y == 1) { break; } | ||||
|                 player.speed.x = 0; | ||||
|                 player.speed.y = -1; | ||||
|                 break; | ||||
|             case kLeft: | ||||
|                 if (player.speed.x == 1) { break; } | ||||
|                 player.speed.x = -1; | ||||
|                 player.speed.y = 0; | ||||
|                 break; | ||||
|             case kRight: | ||||
|                 if (player.speed.x == -1) { break; } | ||||
|                 player.speed.x = 1; | ||||
|                 player.speed.y = 0; | ||||
|                 break; | ||||
|             case kDown: | ||||
|                 if (player.speed.y == -1) { break; } | ||||
|                 player.speed.x = 0; | ||||
|                 player.speed.y = 1; | ||||
|                 break; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user