- AdminCP
- #1
- MG Yaşı
- 2 Ay 1 Gün
- Katılım
- 2 Şub 2026
- Konular
- 224
- Mesajlar
- 363
- Tepkime puanı
- 54
- Puan
- 53
- Konum
- İstanbul
Herkese selamlar,
RenderTarget sistemi kullanılırken bazı boss modellerinin görüntü alanına tam olarak oturmadığı fark edilebiliyor. Bu durumu düzeltmek için genellikle scale ayarlarıyla oynanıyor.
Ben ise bu sorunu ortadan kaldırmak adına her boss için sabit bir kamera açısı tanımladım. Böylece ölçeklendirme ile uğraşmaya gerek kalmadan tüm bosslar görüntü çerçevesine düzgün şekilde yerleşiyor.
Hazırladığım yapıyı doğrudan kullanmanız durumunda, ilgili bosslar üzerinde ekstra bir düzenleme yapmanıza gerek kalmayacaktır.
RenderTarget sistemi kullanılırken bazı boss modellerinin görüntü alanına tam olarak oturmadığı fark edilebiliyor. Bu durumu düzeltmek için genellikle scale ayarlarıyla oynanıyor.
Ben ise bu sorunu ortadan kaldırmak adına her boss için sabit bir kamera açısı tanımladım. Böylece ölçeklendirme ile uğraşmaya gerek kalmadan tüm bosslar görüntü çerçevesine düzgün şekilde yerleşiyor.
Hazırladığım yapıyı doğrudan kullanmanız durumunda, ilgili bosslar üzerinde ekstra bir düzenleme yapmanıza gerek kalmayacaktır.
Kod:
CRenderTarget.cpp:
#include`lerin hemen altına ekle.
struct CameraParams {
D3DXVECTOR3 position;
D3DXVECTOR3 target;
D3DXVECTOR3 up;
};
std::map<long long, CameraParams> g_bossCameraParams = {
{2493, //Mavi Ejder
{
{0.0f, -2300.0f, -50.0f},
{0.0f, 0.0f, 360.0f},
{0.0f, 0.0f, 1.0f}
}
},
{691, // Ork Reis
{
{0.0f, -2200.0f, -50.0f},
{0.0f, 0.0f, 120.0f},
{0.0f, 0.0f, 1.0f}
}
},
{791, // Karanlık Lider
{
{0.0f, -1800.0f, -50.0f},
{0.0f, 0.0f, 120.0f},
{0.0f, 0.0f, 1.0f}
}
},
{1304, // Sarı Kaplan Hayaleti
{
{0.0f, -2600.0f, -50.0f},
{0.0f, 0.0f, 130.0f},
{0.0f, 0.0f, 1.0f}
}
},
{2091, // Kraliçe Örümcek
{
{0.0f, -2200.0f, -50.0f},
{0.0f, 0.0f, 250.0f},
{0.0f, 0.0f, 1.0f}
}
},
{2206, // Alev Kral
{
{0.0f, -1600.0f, -50.0f},
{0.0f, 0.0f, 130.0f},
{0.0f, 0.0f, 1.0f}
}
},
{1901, // Dokuz Kuyruk
{
{0.0f, -1700.0f, -50.0f},
{0.0f, 0.0f, 120.0f},
{0.0f, 0.0f, 1.0f}
}
},
{1093, // Lusifer
{
{0.0f, -1600.0f, -50.0f},
{0.0f, 0.0f, 200.0f},
{0.0f, 0.0f, 1.0f}
}
},
{2598, // Azrail(cata)
{
{0.0f, -2600.0f, -50.0f},
{0.0f, 0.0f, 250.0f},
{0.0f, 0.0f, 1.0f}
}
},
{2092, // Örümcek Barones
{
{0.0f, -2800.0f, -50.0f},
{0.0f, 0.0f, 580.0f},
{0.0f, 0.0f, 1.0f}
}
},
{6191, // Nemere
{
{0.0f, -2800.0f, -50.0f},
{0.0f, 0.0f, 280.0f},
{0.0f, 0.0f, 1.0f}
}
},
{6091, // Razador
{
{0.0f, -2800.0f, -50.0f},
{0.0f, 0.0f, 280.0f},
{0.0f, 0.0f, 1.0f}
}
},
};
arat : void CRenderTarget::RenderModel()
içinde bul:
camera_manager.GetCurrentCamera()->SetViewParams(
D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f },
D3DXVECTOR3{ 0.0f, 0.0f, 95.0f },
D3DXVECTOR3{ 0.0f, 0.0f, 1.0f }
);
ve değiştir:
if (g_bossCameraParams.find(dwModel) != g_bossCameraParams.end())
{
const auto& cam = g_bossCameraParams[dwModel];
camera_manager.GetCurrentCamera()->SetViewParams(cam.position, cam.target, cam.up);
}
else
{
camera_manager.GetCurrentCamera()->SetViewParams(
D3DXVECTOR3{ 0.0f, -1500.0f, 600.0f },
D3DXVECTOR3{ 0.0f, 0.0f, 95.0f },
D3DXVECTOR3{ 0.0f, 0.0f, 1.0f }
);
}
hemen altında ki :
python_graphic.SetPerspective(10.0f, width / height, 100.0f, 3000.0f);
şununla değiştir :
if (dwModel == 2493)
{
python_graphic.SetPerspective(30.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 691)
{
python_graphic.SetPerspective(10.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 791)
{
python_graphic.SetPerspective(10.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 1304)
{
python_graphic.SetPerspective(10.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 2091)
{
python_graphic.SetPerspective(20.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 2206)
{
python_graphic.SetPerspective(15.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 1901)
{
python_graphic.SetPerspective(12.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 1093)
{
python_graphic.SetPerspective(20.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 2598)
{
python_graphic.SetPerspective(17.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 2092)
{
python_graphic.SetPerspective(40.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 6191)
{
python_graphic.SetPerspective(20.0f, width / height, 100.0f, 4000.0f);
}
else if (dwModel == 6091)
{
python_graphic.SetPerspective(20.0f, width / height, 100.0f, 4000.0f);
}
else
{
python_graphic.SetPerspective(10.0f, width / height, 100.0f, 3000.0f);
}
