Dev C++
2 participantes
Página 1 de 1
Dev C++
Alguem que mexa com c++ pode me ajudar a resolver nesse codigo pois quero fazer igual a esse video apos 30 minutos de video ele lança os cachorros quero fazer lançar e o
a outra imagem quando colidir somar +1 aos pontos e se mova para esquerda e direta para poder pergar colidir com a outra imagem que vai cair.
a outra imagem quando colidir somar +1 aos pontos e se mova para esquerda e direta para poder pergar colidir com a outra imagem que vai cair.
- Código:
void apply_surface(int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL); //Aplica uma surface en outra
bool check_collision(SDL_Surface* A, float Ax, float Ay, SDL_Surface* B, float Bx, float By);
SDL_Surface* renderTextVal(TTF_Font *font, const char *text, int valor, SDL_Color color = (SDL_Color){255,255,255});
SDL_Surface* renderTextVal(TTF_Font *font, const char *text, float valor, SDL_Color color = (SDL_Color){255,255,255} );
SDL_Surface* renderText(TTF_Font *font, const char *text, SDL_Color color = (SDL_Color){255,255,255} );
//The timer
class Timer {
private:
//The clock time when the timer started
int startTicks;
//The ticks stored when the timer was paused
int pausedTicks;
//The timer status
bool paused;
bool started;
public:
//Initializes variables
Timer();
//The various clock actions
void start();
void stop();
void pause();
void unpause();
//Gets the timer's time
int get_ticks();
//Checks the status of the timer
bool is_started();
bool is_paused();
};
#endif //LAZY_SDL_H
- Código:
#include <SDL.h>
#include <SDL_image.h>
#include <string>
#include<math.h>
#include "lazyfunctions.h"
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;
const int FRAMES_PER_SECOND = 100;
const std::string game_title = "Salvando Meu bebê";
bool quit = false;
bool morte = false;
SDL_Surface *surface_message;
SDL_Surface *surface_pontos;
SDL_Surface *mae;
int aleatorio = rand() % 600 + 200;
int pontos = 0;
float mae_x = 0;
float mae_y = 50;
float mae_vel = 250;
float pi = 3.1415;
float bebe_x = 30;
float bebe_y = 350;
float bebe_vel = 600;
float bebe_vel_x;
float bebe_vel_y;
float bebe_angle = 60;
float gravity = 600;
SDL_Event event;
float tempo = 1.0/FRAMES_PER_SECOND;
void game_init() {
mae = load_image("mae.png", true);
srand(time(NULL));
}
void game_loop() {
Uint8 *keystates = SDL_GetKeyState(NULL);
apply_surface(5, 5, surface_pontos, screen);
apply_surface(int(mae_x), int(mae_y), mae, screen);
if (check_collision(bebe, bebe_x, bebe_y, mae, mae_x, mae_y) {
pontos++;
}else{
surface_message = renderText(font, "GAME OVER");
}
surface_pontos = renderTextVal(font, "SALVOS: ", pontos);
if(bebe_x <600) {
bebe_x = bebe_x + bebe_vel*tempo;
}
if (keystates[SDLK_SPACE]) {
// Barra de espaço pressionada
}
if (keystates[SDLK_LEFT]) {
// Barra de espaço pressionada
}
if (keystates[SDLK_RIGHT]) {
// Barra de espaço pressionada
}
while (SDL_PollEvent(&event)) {
//Verifica se clicou em sair
if (event.type == SDL_QUIT) {
//Sai do loop
quit = true;
}
if(event.type == SDL_QUIT){
morte = true;
}
}
}
int main(int argc, char* args[]) {
//O temporizador da frame rate
Timer fps;
//Inicializa SDL
init_SDL();
//Carrega Background
background = load_image("background.png");
//Aplica o Background
apply_surface(0, 0, background, screen);
//Inicializações do seu jogo vão na função game_init
game_init();
//Atualiza tela
SDL_Flip(screen);
while (quit == false) {
//Inicia o timer do frame rate
fps.start();
//Redesenha o background
apply_surface(0, 0, background, screen);
//Loop principal do jogo, chamada a função game_loop
game_loop();
//Atualiza a tela se necessário
SDL_Flip(screen);
if (fps.get_ticks() < (1000 / FRAMES_PER_SECOND)) {
//Dorme o restante do frame rate
SDL_Delay((1000/FRAMES_PER_SECOND) - fps.get_ticks());
}
}
while (morte == false) {
//Inicia o timer do frame rate
fps.start();
//Redesenha o background
apply_surface(0, 0, background, screen);
//Loop principal do jogo, chamada a função game_loop
game_loop();
//Atualiza a tela se necessário
SDL_Flip(screen);
if (fps.get_ticks() < (1000 / FRAMES_PER_SECOND)) {
//Dorme o restante do frame rate
SDL_Delay((1000/FRAMES_PER_SECOND) - fps.get_ticks());
}
}
//Libera memória das imagens carregadas
SDL_FreeSurface(background);
//Sai da SDL
SDL_Quit();
}
Chilinger- MembroAvançado
- PONTOS : 4042
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: Dev C++
Não estou usando o proprio dev c++ e para programaçao mas vc consegui fazer jogo 2d nele.
Chilinger- MembroAvançado
- PONTOS : 4042
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos