Jump to content
  • Advertisement

spitzervx

Member
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

122 Neutral

About spitzervx

  • Rank
    Newbie
  1. it works! thanks everybody
  2. I have a vector that I want to pass as a parameter to a function. But when I try to compile this: void increaseVector( vector<cTest>& vec ) { //code to increase vector } the compiler gives these errors: error C2061: syntax error : identifier 'vector' warning C4018: '<' : signed/unsigned mismatch Isn't that the right syntax for passing a vector of cTest objects as a reference? If I can declare a vector like that, why can't I use it like a type when indicating the type of the function parameter? Note: I have include #include <vector> at the top. Thanks in advance
  3. Hi, I'm just wondering if there was a way to create a vector which when you use the push_back() method, automatically creates a new instance of that class type? In the following piece of code, I got a vector to store some class objects but the problem is I had to manually create those objects first, then insert them. I want it so when vContainer expands, it automatically creates a new object of that class. Is that possible? //create container objects first cContainer Container1(1); cContainer Container2(2); //create a vector to hold the containers vector<cContainer> vContainers; //put the containers into the vector vContainers.push_back(Container1); vContainers.push_back(Container2); //access the objects inside the vector cout << vContainers.begin()->GetItem() << endl; cout << vContainers.end()->GetItem() <<endl;
  4. spitzervx

    Untitled

    thanks, i didn't realize i was using the wrong directory
  5. spitzervx

    Untitled

    Hi, I'm was just creating a simple game but I keep getting this compiler error: c:\documents and settings\administrator\desktop\sdl introduction\main.cpp(16) : fatal error C1083: Cannot open include file: 'cSnake.h': No such file or directory the thing is, I have a #include "cSnake.h" line in my main.cpp I have added cSnake.h to the VC8 Solution explorer, the project folder and the debug folder yet I still receive this message. I have another header file (define.h) but there's no problem with that one. What am I doing wrong with cSnake.h? Main.cpp ////////////////////////////////////////////////////////////////////////////////// // Project: SDL Introduction Tutorial // File: Main.cpp ////////////////////////////////////////////////////////////////////////////////// // These three lines link in the required SDL components for our project. // // Alternatively, we could have linked them in our project settings. // #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDLmain.lib") #pragma comment(lib, "SDL_TTF.lib") #include <stack> // We'll use the STL stack to store our function pointers #include "SDL.h" // Main SDL header #include "SDL_TTF.h" // True Type Font header #include "Defines.h" // Our defines header #include "cSnake.h" using namespace std; // The STL stack can't take a function pointer as a type // // so we encapsulate a function pointer within a struct. // struct StateStruct { void (*StatePointer)(); }; // Global data // stack<StateStruct> g_StateStack; // Our state stack SDL_Surface* g_Bitmap = NULL; // Our background image SDL_Surface* g_Window = NULL; // Our backbuffer SDL_Event g_Event; // An SDL event structure for input int g_Timer; // Our timer is just an integer cSnake* g_Snake = NULL; // Our Snake // Functions to handle the three states of the game // void Menu(); void Game(); void Exit(); // Helper functions for the main game state functions // void DrawBackground(); void ClearScreen(); void DisplayText(string text, int x, int y, int size, int fR, int fG, int fB, int bR, int bG, int bB); void HandleMenuInput(); void HandleGameInput(); void HandleExitInput(); // Init and Shutdown functions // void Init(); void Shutdown(); int main(int argc, char **argv) { Init(); // Our game loop is just a while loop that breaks when our state stack is empty. // while (!g_StateStack.empty()) { g_StateStack.top().StatePointer(); } Shutdown(); return 0; } // This function initializes our game. // void Init() { // Initiliaze SDL video and our timer. // SDL_Init( SDL_INIT_VIDEO | SDL_INIT_TIMER); // Setup our window's dimensions, bits-per-pixel (0 tells SDL to choose for us), // // and video format (SDL_ANYFORMAT leaves the decision to SDL). This function // // returns a pointer to our window (back-buffer) which we assign to g_Window. // g_Window = SDL_SetVideoMode(WINDOW_WIDTH, WINDOW_HEIGHT, 0, SDL_ANYFORMAT); // Set the title of our window. // SDL_WM_SetCaption(WINDOW_CAPTION, 0); // Get the number of ticks since SDL was initialized. // g_Timer = SDL_GetTicks(); // Fill our bitmap structure with information. // g_Bitmap = SDL_LoadBMP("data/sprites.bmp"); // Initialize snake and set it to its proper location. // g_Snake = new cSnake(SNAKE_START_X, SNAKE_START_Y, g_Bitmap); // We start by adding a pointer to our exit state, this way // // it will be the last thing the player sees of the game. // StateStruct state; state.StatePointer = Exit; g_StateStack.push(state); // Then we add a pointer to our menu state, this will // // be the first thing the player sees of our game. // state.StatePointer = Menu; g_StateStack.push(state); // Initialize the true type font library. // TTF_Init(); } // This function shuts down our game. // void Shutdown() { // Shutdown the true type font library. // TTF_Quit(); // Free our surfaces. // SDL_FreeSurface(g_Bitmap); SDL_FreeSurface(g_Window); // Tell SDL to shutdown and free any resources it was using. // SDL_Quit(); } // This function handles the game's main menu. From here // // the player can select to enter the game, or quit. // void Menu() { // Here we compare the difference between the current time and the last time we // // handled a frame. If FRAME_RATE amount of time has, it's time for a new frame. // if ( (SDL_GetTicks() - g_Timer) >= FRAME_RATE ) { HandleMenuInput(); // Make sure nothing from the last frame is still drawn. // ClearScreen(); DisplayText("Start (G)ame", 350, 250, 12, 255, 255, 255, 0, 0, 0); DisplayText("(Q)uit Game", 350, 270, 12, 255, 255, 255, 0, 0, 0); // Tell SDL to display our backbuffer. The four 0's will make // // SDL display the whole screen. // SDL_UpdateRect(g_Window, 0, 0, 0, 0); // We've processed a frame so we now need to record the time at which we did it. // // This way we can compare this time the next time our function gets called and // // see if enough time has passed between iterations. // g_Timer = SDL_GetTicks(); } } // This function handles the main game. We'll control the // // drawing of the game as well as any necessary game logic. // void Game() { // Here we compare the difference between the current time and the last time we // // handled a frame. If FRAME_RATE amount of time has, it's time for a new frame. // if ( (SDL_GetTicks() - g_Timer) >= FRAME_RATE ) { HandleGameInput(); // Make sure nothing from the last frame is still drawn. // ClearScreen(); // Draw the background of our little 'game'. // DrawBackground(); // Tell SDL to display our backbuffer. The four 0's will make // // SDL display the whole screen. // SDL_UpdateRect(g_Window, 0, 0, 0, 0); // We've processed a frame so we now need to record the time at which we did it. // // This way we can compare this time the next time our function gets called and // // see if enough time has passed between iterations. // g_Timer = SDL_GetTicks(); } } // This function handles the game's exit screen. It will display // // a message asking if the player really wants to quit. // void Exit() { // Here we compare the difference between the current time and the last time we // // handled a frame. If FRAME_RATE amount of time has, it's time for a new frame. // if ( (SDL_GetTicks() - g_Timer) >= FRAME_RATE ) { HandleExitInput(); // Make sure nothing from the last frame is still drawn. // ClearScreen(); DisplayText("Quit Game (Y or N)?", 350, 250, 12, 255, 255, 255, 0, 0, 0); // Tell SDL to display our backbuffer. The four 0's will make // // SDL display the whole screen. // SDL_UpdateRect(g_Window, 0, 0, 0, 0); // We've processed a frame so we now need to record the time at which we did it. // // This way we can compare this time the next time our function gets called and // // see if enough time has passed between iterations. // g_Timer = SDL_GetTicks(); } } // This function draws the background // void DrawBackground() { // These structures tell SDL_BlitSurface() the location of what // // we want to blit and the destination we want it blitted to. // // Presently, we blit the entire surface to the entire screen. // SDL_Rect source = { 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT }; SDL_Rect destination = { 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT }; // This just 'block-image transfers' our bitmap to our window. // SDL_BlitSurface(g_Bitmap, &source, g_Window, &destination); } // This function simply clears the back buffer to black. // void ClearScreen() { // This function just fills a surface with a given color. The // // first 0 tells SDL to fill the whole surface. The second 0 // // is for black. // SDL_FillRect(g_Window, 0, 0); } // This function displays text to the screen. It takes the text // // to be displayed, the location to display it, the size of the // // text, and the color of the text and background. // void DisplayText(string text, int x, int y, int size, int fR, int fG, int fB, int bR, int bG, int bB) { // Open our font and set its size to the given parameter. // TTF_Font* font = TTF_OpenFont("arial.ttf", size); SDL_Color foreground = { fR, fG, fB}; // Text color. // SDL_Color background = { bR, bG, bB }; // Color of what's behind the text. // // This renders our text to a temporary surface. There // // are other text functions, but this one looks nice. // SDL_Surface* temp = TTF_RenderText_Shaded(font, text.c_str(), foreground, background); // A structure storing the destination of our text. // SDL_Rect destination = { x, y, 0, 0 }; // Blit the text surface to our window surface. // SDL_BlitSurface(temp, NULL, g_Window, &destination); // Always free memory! // SDL_FreeSurface(temp); // Close the font. // TTF_CloseFont(font); } // This function receives player input and // // handles it for the game's menu screen. // void HandleMenuInput() { // Fill our event structure with event information. // if ( SDL_PollEvent(&g_Event) ) { // Handle user manually closing game window // if (g_Event.type == SDL_QUIT) { // While state stack isn't empty, pop // while (!g_StateStack.empty()) { g_StateStack.pop(); } return; // game is over, exit the function } // Handle keyboard input here // if (g_Event.type == SDL_KEYDOWN) { if (g_Event.key.keysym.sym == SDLK_ESCAPE) { g_StateStack.pop(); return; // this state is done, exit the function } // Quit // if (g_Event.key.keysym.sym == SDLK_q) { g_StateStack.pop(); return; // game is over, exit the function } // Start Game // if (g_Event.key.keysym.sym == SDLK_g) { StateStruct temp; temp.StatePointer = Game; g_StateStack.push(temp); return; // this state is done, exit the function } } } } // This function receives player input and // // handles it for the main game state. // void HandleGameInput() { // Fill our event structure with event information. // if ( SDL_PollEvent(&g_Event) ) { // Handle user manually closing game window // if (g_Event.type == SDL_QUIT) { // While state stack isn't empty, pop // while (!g_StateStack.empty()) { g_StateStack.pop(); } return; // game is over, exit the function } // Handle keyboard input here // if (g_Event.type == SDL_KEYDOWN) { if (g_Event.key.keysym.sym == SDLK_ESCAPE) { g_StateStack.pop(); return; // this state is done, exit the function } } } } // This function receives player input and // // handles it for the game's exit screen. // void HandleExitInput() { // Fill our event structure with event information. // if ( SDL_PollEvent(&g_Event) ) { // Handle user manually closing game window // if (g_Event.type == SDL_QUIT) { // While state stack isn't empty, pop // while (!g_StateStack.empty()) { g_StateStack.pop(); } return; // game is over, exit the function } // Handle keyboard input here // if (g_Event.type == SDL_KEYDOWN) { if (g_Event.key.keysym.sym == SDLK_ESCAPE) { g_StateStack.pop(); return; // this state is done, exit the function } // Yes // if (g_Event.key.keysym.sym == SDLK_y) { g_StateStack.pop(); return; // game is over, exit the function } // No // if (g_Event.key.keysym.sym == SDLK_n) { StateStruct temp; temp.StatePointer = Menu; g_StateStack.push(temp); return; // this state is done, exit the function } } } } // Aaron Cox, 2004 // cSnake.h ////////////////////// // the cSnake class ////////////////////// #pragma once #include "Defines.h" class cSnake { private: int m_HeadsCenterX; int m_HeadsCenterY; int m_TailsCenterX; int m_TailsCenterY; // A pointer to our bitmap surface from "Main.cpp" // SDL_Surface* m_Bitmap; public: //default constructor cSnake() { } // Main constructor takes location and type of block, // // and pointer to our bitmap surface. // cSnake(int x, int y, SDL_Surface* bitmap) { } // Draw() takes a pointer to the surface to draw to (our window) // void Draw(SDL_Surface* window) { SDL_Rect source; source = {HEAD_DOWN_X, HEAD_DOWN_Y, SQUARE_UNIT, SQUARE_UNIT) // Draw at square's current location. Remember that m_X and m_Y store the center of the square. // SDL_Rect destination = { m_HeadsCenterX - SQUARE_MEDIAN, m_HeadsCenterY - SQUARE_MEDIAN, SQUARE_MEDIAN * 2, SQUARE_MEDIAN * 2 }; SDL_BlitSurface(m_Bitmap, &source, window, &destination); } }; Defines.h ////////////////////////////////////////////////////////////////////////////////// // Defines.h // - this file contains all #define's for our project // - you use #define like so: // #define SOMETHING 800 // - anytime your compiler comes across SOMETHING, it will now replace it with 800 ////////////////////////////////////////////////////////////////////////////////// #pragma once // Window related defines // #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600 #define WINDOW_CAPTION "Snake" // Game related defines // #define FRAMES_PER_SECOND 30 #define FRAME_RATE 1000/FRAMES_PER_SECOND #define SQUARE_MEDIAN 16 // Location of sprites within bitmap #define HEAD_DOWN_X 33 #define HEAD_DOWN_y 33 // Starting position of the snake // #define SNAKE_START_X 151 #define SNAKE_START_Y 59 // Aaron Cox, 2004 //
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!