コード例 #1
0
int main(int argc, char* args[])
{
	SDL_Window* window = nullptr;
	SDL_Surface* windowSurface = nullptr;
	SDL_Renderer* renderer = nullptr;

	if (!init(&window, &windowSurface, &renderer))
	{
		printf("Failed to initialize SDL.\n", SDL_GetError());
	}
	else
	{
		bool quit = false;
		SDL_Event e;
		Player player;
		SDL_Rect winBox;

		addEnemy();
		addEntity(player.m_pos, 375, 25, 25, 25);
		addEntity(winBox, 0, 750, 50, 800);

		//Game loop
		while (!quit)
		{
			while (SDL_PollEvent(&e) != 0)
			{
				if (e.type == SDL_QUIT) {
					quit = true;
				}
				if (e.type == SDL_KEYDOWN)
				{
					inputMananger(e, player.m_pos, player.m_movementSpeed);
				}
			}

			if (playerCollisions(enemies, player)) {
				resetPlayerPos(player);
			}

			enemyMovement();
			gameBounds(player.m_pos);
			render(&renderer, player.m_pos, winBox);

			//Check to see whether the game is won
			if (checkWinCollision(winBox, player)) {
				quit = true;
			}

			SDL_Delay(16); //Simulate 16 fps
		}
	}

	close(&window, &renderer);
	return 0;
}
コード例 #2
0
ファイル: update.c プロジェクト: RyanLafferty/SDL_Game
/*
 Desc:
 Args:
 Ret:
 */
void update(player * p, enemy1 * e, SDL_Renderer * ren)
{
    enemy1 * prev = NULL;
    int enemyCount = 0;
    
    if(p->invTicks >= 0)
    {
        p->invTicks++;
    }
    
    enemyCollisions(p, e);
    playerCollisions(p, e);
    
    while(e != NULL)
    {
        if(e->clipSP != NULL && e->tex != NULL)
        {
            if((e->clipSP->x - ENEMY_SPEED) >= 0)
            {
                e->clipSP->x -= ENEMY_SPEED;
            }
            else
            {
                //e->clipSP->x = SCREEN_WIDTH + (e->clipSP->x - ENEMY_SPEED);
                e->dead = 1;
            }
        }
        
        if(e != NULL && e->next != NULL)
        {
            prev = e;
            e = e->next;
        }
        else if(e == NULL)
        {
            e = NULL;
        }
        else
        {
            if(enemyCount <= 3)
            {
                e->next = initEnemy1(ren);
            }
            e = NULL;
        }
        enemyCount++;
    }
}