本日は時間が無い為、突貫工事になる
マップのスクロール機能を実装
以下が、追加分になる
// プレイヤーを中心にスクロールするビューを作成 sf::View view(sf::FloatRect(0, 0, 800, 600)); view.setCenter(static_cast<float>(playerPosition.x rectMiddlePlayer.width), static_cast<float>(playerPosition.y rectMiddlePlayer.height));
if (timeSinceLastMove >= moveDelay) { このキーボードイベント内に以下を記載
// プレイヤーを中心にスクロールするビューを作成 sf::View view(sf::FloatRect(0, 0, 800, 600)); view.setCenter(static_cast<float>(playerPosition.x rectMiddlePlayer.width), static_cast<float>(playerPosition.y rectMiddlePlayer.height));
}
// プレイヤー位置に基づいてビューを更新
view.setCenter(static_cast<float>(playerPosition.x rectMiddlePlayer.width), static_cast<float>(playerPosition.y rectMiddlePlayer.height));
画面の再描画
window.clear();
window.setView(view);
sfml内ライブラリのviewというクラスを使うことで、操作キャラクターを真ん中に表示して、画面をスクロールすることが出来るようになった
改善点として、横と縦、のどちらかか、両方が画面端であればスクロールをしない設定を入れたい
明日以降の改善案として保留
留言