私のゲームには、ゲームのシーズンのプロパティと関数を含むヘッダー ファイルがあります。これらのプロパティはすべて静的で、現在の季節を表す float と、季節間の移行の現在のポイントを表す別の float が含まれています。移行中でない場合はゼロになります。
私のゲーム全体のいくつかの機能はトランジションに依存しており (この時点で 2 つ)、そのうちの 1 つが完全に機能しています。ただし、別の例では、これはまったく機能していません。
私のゲームの背景を制御するクラスでは、「SeasonTransition」変数が参照されるたびにゼロになります。しかし、変数がまったく同じ方法で参照される他のクラスでは、実際の値が得られます。
これは、ゲームがいくつかのフレームを更新できた後にブレークポイントが呼び出された後の画像です。
繰り返しますが、これらの変数は ac ヘッダー ファイルで宣言されています。
#import "somestuff.h"
static float SeasonTransition
etc...
これは、これを正しく行うべきではありませんか?どうすればこれを修正できますか?
編集:
Season.h ファイルは次のとおりです。
//GL.h contains different functions and global variables to be used anywhere in the project.
//This file, like Season.h is a singular header file with static declarations, and is setup
//the same way. I have been developing this from the start of the project and havent had any
//problems with it.
#import "GL.h"
static float currentSeason;
static float SeasonTransition;
static void UpdateSeason(){
currentSeason += 0.0002f;
float TransitionLength = 0.15f;
float SeasonDepth = Clamp(currentSeason - floorf(currentSeason), 0, TransitionLength);
float bigTL = TransitionLength / 4;
float endTL = TransitionLength;
float Speed2 = 0;
float Speed1 = 1;
float bRatio = SeasonDepth / bigTL;
float eRatio = SeasonDepth / endTL;
SeasonTransition = (SeasonDepth < TransitionLength) ?
((SeasonDepth < bigTL) ?
(Speed1 * bRatio) + (Speed2 * (1.0f - bRatio)) :
(Speed1 * (1.0f - eRatio)) + (Speed2 * eRatio))
:
Speed2;
}