【问】为什么孙悟空能大闹天宫,却打不过路上的妖怪?

【问】为什么孙悟空能大闹天宫,却打不过路上的妖怪?

【答】大闹天宫时碰到的都是给玉皇大帝打工的,所以大家都是意思意思不是真的卖命,在路上碰到的妖怪都是自己出来创业的,所以比较拼命!!

孙悟空三打白骨精是一款经典的游戏,其代码由多个文件组成,主要包括游戏引擎、角色控制、碰撞检测、音效播放等模块。以下是部分代码示例: 1. 游戏引擎模块: ``` class GameEngine { public: GameEngine(); ~GameEngine(); void init(); void run(); void update(); void render(); private: bool m_running; SDL_Window* m_window; SDL_Renderer* m_renderer; Player* m_player; Enemy* m_enemy; ... }; GameEngine::GameEngine() { m_running = false; } GameEngine::~GameEngine() { SDL_DestroyRenderer(m_renderer); SDL_DestroyWindow(m_window); SDL_Quit(); } void GameEngine::init() { SDL_Init(SDL_INIT_EVERYTHING); m_window = SDL_CreateWindow("Sun Wukong 3", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); m_renderer = SDL_CreateRenderer(m_window, -1, SDL_RENDERER_ACCELERATED); m_player = new Player(m_renderer); m_enemy = new Enemy(m_renderer); } void GameEngine::run() { m_running = true; while (m_running) { update(); render(); } } void GameEngine::update() { m_player->update(); m_enemy->update(); ... } void GameEngine::render() { SDL_RenderClear(m_renderer); m_player->render(); m_enemy->render(); ... SDL_RenderPresent(m_renderer); } ``` 2. 角色控制模块: ``` class Player { public: Player(SDL_Renderer* renderer); ~Player(); void update(); void render(); private: int m_x, m_y; int m_speed; SDL_Texture* m_texture; }; Player::Player(SDL_Renderer* renderer) { m_x = SCREEN_WIDTH / 2 - PLAYER_WIDTH / 2; m_y = SCREEN_HEIGHT - PLAYER_HEIGHT - 50; m_speed = 5; SDL_Surface* surface = IMG_Load("player.png"); m_texture = SDL_CreateTextureFromSurface(renderer, surface); } Player::~Player() { SDL_DestroyTexture(m_texture); } void Player::update() { const Uint8* state = SDL_GetKeyboardState(NULL); if (state[SDL_SCANCODE_LEFT] && m_x > 0) { m_x -= m_speed; } if (state[SDL_SCANCODE_RIGHT] && m_x < SCREEN_WIDTH - PLAYER_WIDTH) { m_x += m_speed; } } void Player::render() { SDL_Rect rect = {m_x, m_y, PLAYER_WIDTH, PLAYER_HEIGHT}; SDL_RenderCopy(renderer, m_texture, NULL, &rect); } ``` 3. 碰撞检测模块: ``` bool check_collision(SDL_Rect a, SDL_Rect b) { int left_a = a.x; int right_a = a.x + a.w; int top_a = a.y; int bottom_a = a.y + a.h; int left_b = b.x; int right_b = b.x + b.w; int top_b = b.y; int bottom_b = b.y + b.h; if (bottom_a <= top_b) { return false; } if (top_a >= bottom_b) { return false; } if (right_a <= left_b) { return false; } if (left_a >= right_b) { return false; } return true; } ``` 4. 音效播放模块: ``` Mix_Chunk* sound_effect; sound_effect = Mix_LoadWAV("explosion.wav"); Mix_PlayChannel(-1, sound_effect, 0); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值