xgravity
Picopat
- Katılım
- 12 Mayıs 2025
- Mesajlar
- 956
- Çözümler
- 5
Arkadaşlar merhaba.
Bugün JVM dilleri olan Java ve Kotlin ile Godot'un güzelce çalıştığına tanık oldum diyebilirim. Resmi bir Godot sürümü değil bu, topluluk sürümü gibi bir şey (bkz: Godot Kotlin/JVM). Kotlin JVM Godot diye geçiyor. Belki eksik, yanlış bilgi verebilirim, bunun için kusura bakmayın fakat öğrendiğim kadarıyla OpenGL ve Vulkan oyunlarını kolayca Godot ve Java kullanarak yazabiliyoruz artık.
Örneğin 2D Collision seçici kodu hazırladım;
Gayet güzel çalışıyor.
Chat GPT ve Gemine'ye detaylarını sorduğumda; Godot'un neredeyse tüm kütüphanesi ile uyumlu olduğunu ve diğer Java paketlerinin kullanılabileceğini söyledi. Örneğin Godot veri tabanı yöntemi yerine, Java tarafında kolaylıkla veri tabanıyla iletişim kurulan paketleri kullanabiliriz. Godot'a göre uyarlanmış Firebase, Adsense yerine Java için olan paketleri de kullanabiliriz. Çünkü teknik olarak JVM çalışıyormuş.
Yani OpenGL ve Vulkan oyunlarını Java ile yönlendirebiliriz ve Windows, Android, iOS'a build alabiliriz ama iOS'ta JVM yasaktı galiba, bilmiyorum.
Ben çok sevdim. Çünkü Java güzel bir dil, ağlayın.
Bugün JVM dilleri olan Java ve Kotlin ile Godot'un güzelce çalıştığına tanık oldum diyebilirim. Resmi bir Godot sürümü değil bu, topluluk sürümü gibi bir şey (bkz: Godot Kotlin/JVM). Kotlin JVM Godot diye geçiyor. Belki eksik, yanlış bilgi verebilirim, bunun için kusura bakmayın fakat öğrendiğim kadarıyla OpenGL ve Vulkan oyunlarını kolayca Godot ve Java kullanarak yazabiliyoruz artık.
Örneğin 2D Collision seçici kodu hazırladım;
Kod:
import godot.annotation.RegisterClass
import godot.annotation.RegisterFunction
import godot.api.Input
import godot.api.InputEvent
import godot.api.InputEventMouseButton
import godot.api.Node2D
import godot.api.PhysicsRayQueryParameters2D
import godot.core.MouseButton
import godot.core.Vector2
import godot.global.GD
@RegisterClass
class InputManager: Node2D() {
@RegisterFunction
override fun _input(event: InputEvent?) {
if (event is InputEventMouseButton &&
event.buttonIndex == MouseButton.LEFT &&
event.pressed
){
clickEvent()
}
}
fun clickEvent(){
if(Input.isMouseButtonPressed(MouseButton.LEFT)){
val spaceState = getWorld2d()?.directSpaceState
val from: Vector2 = getGlobalMousePosition()
val to = from + Vector2(0, 0)
val query = PhysicsRayQueryParameters2D()
query.from = from
query.to = to
query.collideWithAreas = true
query.hitFromInside = true
val result = spaceState?.intersectRay(query)
result?.let {
if (it.size > 0) {
GD.print("Ray: $result, get Hit")
}else{
GD.print("No Hit")
}
}
}
}
}
Gayet güzel çalışıyor.
Chat GPT ve Gemine'ye detaylarını sorduğumda; Godot'un neredeyse tüm kütüphanesi ile uyumlu olduğunu ve diğer Java paketlerinin kullanılabileceğini söyledi. Örneğin Godot veri tabanı yöntemi yerine, Java tarafında kolaylıkla veri tabanıyla iletişim kurulan paketleri kullanabiliriz. Godot'a göre uyarlanmış Firebase, Adsense yerine Java için olan paketleri de kullanabiliriz. Çünkü teknik olarak JVM çalışıyormuş.
Yani OpenGL ve Vulkan oyunlarını Java ile yönlendirebiliriz ve Windows, Android, iOS'a build alabiliriz ama iOS'ta JVM yasaktı galiba, bilmiyorum.
Ben çok sevdim. Çünkü Java güzel bir dil, ağlayın.
Son düzenleme: