かつどんの活動記録#2(2018/07/11)
こんばんは。
今日はYoutube Liveしなかったので寝る前にここ数日で、できるようになったことを書いていきます。
■スコアを1ずつずらして表示する
<score.cpp>
static int score_keta;
static int count_stop_value;
static int h_score;
static int moku_score;
void Score_Initialize(int keta)
{
score_keta = keta;
h_score = 0;
// 桁数からカンストを求める
count_stop_value = 1;
for (int i = 0; i < keta; i++)
{
count_stop_value = count_stop_value * 10;
}
count_stop_value -= 1;
}
void Score_Draw(float x, float y, bool bZero, bool bLeft)
{
if (h_score < 0)
{
h_score = 0;
}
// カンストしているかどうか
if (h_score > count_stop_value)
{
h_score = count_stop_value;
}
int n = h_score;
// 一桁目を右側に表示して、右に一桁ずらす
for (int i = 0; i < score_keta; i++)
{
Number_Draw(x + (score_keta - i - 1) * NUMBER_WIDTH, y, n % 10);
n /= 10;
}
}
void Score_Update(int score)
{
int t = 1.0;
moku_score = Get_Score();
if (h_score < moku_score)
{
h_score+=1;
}
}
前回作った<score.cpp>では100ポイント獲得した時に表示されているスコアが一気に+100されていたので、友人に教えてもらいながら、なんとか+1ずつ加算されるようになりました。
■プレイヤーの2段ジャンプ
if (Keyboard_IsTrigger(DIK_SPACE)) // スペースキー入力時
{
if (g_player.jumpCount >= MAX_JUMP_COUNT)
{
g_player.IsJump = false;
}
if (g_player.IsJump)
{
if (g_player.jumpCount >= 1)
{
g_player.MoveY = 0.0f;
}
g_player.MoveY -= VALUE_JUMP;
g_player.jumpCount++;
}
}
プレイヤーを2段ジャンプできるように変更しました。
ジャンプできる最大回数と現在何回ジャンプしたかを比べ、最大回数以上ならg_player.IsJumpをfalseにすることでジャンプ不可能に。
空中で再度ジャンプする時にg_player.MoveYを0.0fにする必要あり。
これをしないと2回目のジャンプでの移動量が2倍になってしまうから。
■C++
コンストラクタの勉強をし、継承の勉強開始
細かく見るともう少しありますが、まだ納得のいくところまで到達していないのでまた今度にします。
かなり雑でしたが、ここまで見てくれた方に感謝します。
この記事が気に入ったらサポートをしてみませんか?