九皋靈鳶
隨手紀錄的期末專案 看看能不能生出一些巧思
鈍 | 自律型AI
你很認真,一定會考的很好,不過讀累了真的要休息一下,我捨不得看你累倒在書桌前(。•́︿•̀。)
九皋靈鳶
命名空間(Namespace):

將相關的常數放入一個命名空間,然後在需要使用的文件中使用該命名空間。這樣可以避免全域變數的衝突,同時提供更清晰的組織。
九皋靈鳶
用config.ini好了
九皋靈鳶
我想要在專案中增添音樂和音效,遊戲專案有Main.cpp、bullet.cpp、player.cpp等等,我應該把SDL2的Mixer檔案在哪裡初始化呢? 播放時又要怎麼釋放音效?
九皋靈鳶
不好意思,因為我的gshoot定義在main裡面,但是我的判斷式寫在player.cpp裡面,我要怎麼樣才能夠讓player.cpp知道gshoot呢
九皋靈鳶
// 外部聲明全域變數
extern Mix_Chunk* gShoot;
九皋靈鳶
好的取名
九皋靈鳶
Use Enum for Collision Status:

Instead of multiple arrays for collision status, use an enumeration to represent the collision types.
九皋靈鳶
enum CollisionType {
COLLISION_LEFT,
COLLISION_TOP,
COLLISION_RIGHT,
COLLISION_BOTTOM
};
九皋靈鳶
Encapsulate Position Handling:
Create a helper function for handling position adjustments.
九皋靈鳶
void adjustPosition(int& x, int& y, int dx, int dy) {
x += dx;
y += dy;
}
九皋靈鳶
void Window::shrinkWindow(Player& player, EnemyManager& enemyManager) {
// ...
adjustPosition(x, y, -COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
player.setPlayerPosition(player.getX-() + COLLISION_ANIMATION[0][COLLISION_STATUS[0]], player.getY());
enemyManager.shift_enemy_position(-COLLISION_ANIMATION[0][COLLISION_STATUS[0]], 0);
\
}
九皋靈鳶
int Bullet::getX-() {return x;}
int Bullet::getY() {return y;}
丟到private裡面保密 只有這樣才能夠出來

還有 幹 friend怎麼用
九皋靈鳶
參數設定
九皋靈鳶
在constant.h
九皋靈鳶
button升級
九皋靈鳶
enemymanager

void update();
void update(const Player& player);
九皋靈鳶
雙型
九皋靈鳶
void Skill::refuel(Player& player){
player.refuel();
}
void Skill::increaseHP(Player& player){
player.increaseHP();
}\
九皋靈鳶
不要亂用using namespace std;
九皋靈鳶
畫面的配置
還有用dev20本身
九皋靈鳶
多形:預設扣一塊 要的話可以扣很多快
九皋靈鳶
gameWindow.handleEvent(e, player);
skillTreeWindow.handleEvent(e, player,skill);
pauseWindow.handleEvent(e, player);
gameOverWindow.handleEvent(e, player);
嘗試多形:只有skilltree要傳skill
九皋靈鳶
想要通過繼承來去搞定其他除了main以外的其他幾種頁面
九皋靈鳶
應該要用this->來指名說要用我現在的函數 (正確: window 錯誤: skill)
九皋靈鳶
问题可能是由于事件处理部分在主循环外部,而在游戏窗口之间切换时没有适当地处理事件,导致在返回游戏窗口时无法正确处理键盘输入。为了解决这个问题,你可以重新组织代码,将事件处理与游戏逻辑放在一个更一致的位置。以下是一种修改的方式:

(修理為甚麼從其他畫面到遊戲畫面會有bug)
九皋靈鳶
注意最下面,我希望當我從skillTreeWindow離開回到gameWindow時,可以讓movingUp ,movingDown, movingLeft, movingRight預設為false,但是這些都是private class的,我有甚麼class的好方法來做到這件事情嗎?
可以用friends,然後把這四個的private改成protect嗎?
九皋靈鳶
修好bug了 簡單來說就是要回去原本的狀態
九皋靈鳶
痾我應該要多紀錄遇到那些問題然後是怎麼解決的
九皋靈鳶
button的製作 武器的升級 升級之後的reaction
九皋靈鳶
algorithm的運用(子彈的填充刑事) private protect
九皋靈鳶
多去看chatGPT的紀錄(?)
分裝成不同的函數讓int main不要那麼大
skilltree讓她動
死亡之後的畫面還有重新開始
音效 美工 碰撞效果
九皋靈鳶
我的遊戲在從其他葉面回到主葉面時 他偶爾會變成只有上下能動 左右完全不能動(也有可能是其他情況,總之就是有一段時間不能夠由玩家控制移動) 要等3秒她才會回復 我覺得可能是遊戲的主迴圈設計問題 你可以幫我分析解決嗎
九皋靈鳶
我發現,雖然在主畫面中我可以賺很多錢,但是再呼叫maxHPUpgrate時,coins 都是0,(但是其他時候都可以正常顯示金錢量) 我該怎麼辦

今天用了this取代三層的player().getskill().coin() 不能夠直接call coin
九皋靈鳶
請幫我修改window.render的函數,把"gameWindow"改成目前正在使用的window

剛剛在搞gamewindow render 讓該出來的文字出來 並且時時更新
九皋靈鳶
在 window.h 文件中添加对这些全局变量的声明。这样,window.cpp 文件就能够访问这些变量。

extern的運用
friend(不能用在main unless我隔出一個程式)
九皋靈鳶
FUT_R.ttf
九皋靈鳶
BGM
九皋靈鳶
九皋靈鳶
九皋靈鳶
檢查為甚麼會出錯 有關於skilltype的part
https://chat.openai.com/...
載入新的回覆