Yardım Algoritma

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#21
Java:
    @Override
    public void rotate(Location loc) {
        Vector v = armorStand.getLocation().subtract(loc).getDirection();
        VectorUtil.rotateAroundAxisX(v, loc.getPitch() * 0.017453292F);
        Location k = loc.clone().add(v);
        teleport(k);
    }
şimdi sorun şu ki ben bi türlü blockları benim etrafımda döndüremiyorum, sürekli kendi etraflarında dönüyorlar kaydederken bir türlü yapamadım.

Java:
Location eklenmişLoc = newLoc(benimLokum, x, y, z);
StructureEntity structureEntity = new BaseStructureEntity(material, eklenmişLoc );
----------------------------------
private Location newLoc(Location location, double x, double y, double z) {
    return location.clone().add(x,y,z);
}
Armorsand mi yoksa blok mu onlar bu arada :c blok gibi duruyorlar da
armor stand kafasında block var setSmall(false) olduğu için neredeyse block ile aynı boyutta ama yine 6pixellik bi fark var.
 

GodofMilker

Bedrock Kaşifi
Mesajlar
1,929
Beğeniler
2,349
Puanları
5,280
#24
Java:
    @Override
    public void rotate(Location loc) {
        Vector v = armorStand.getLocation().subtract(loc).getDirection();
        VectorUtil.rotateAroundAxisX(v, loc.getPitch() * 0.017453292F);
        Location k = loc.clone().add(v);
        teleport(k);
    }
şimdi sorun şu ki ben bi türlü blockları benim etrafımda döndüremiyorum, sürekli kendi etraflarında dönüyorlar kaydederken bir türlü yapamadım.

Java:
Location eklenmişLoc = newLoc(benimLokum, x, y, z);
StructureEntity structureEntity = new BaseStructureEntity(material, eklenmişLoc );
----------------------------------
private Location newLoc(Location location, double x, double y, double z) {
    return location.clone().add(x,y,z);
}

armor stand kafasında block var setSmall(false) olduğu için neredeyse block ile aynı boyutta ama yine 6pixellik bi fark var.
GetDirection sadece yaw ve pitchten bir vektör oluşturuyor toVector diye method olması lazım onu kullanman gerekiyor

Bu halde kalırsa kafaları dönmez sadece lokasyonları playerın arkasına gelecek şekilde olur

Kafalarının da dönmesi için playerın açı değişimi bulman gerekiyor(veya sabit bir playerdan açı saklarsın her blok için onunla işlem yaparsın)
 

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#25
GetDirection sadece yaw ve pitchten bir vektör oluşturuyor toVector diye method olması lazım onu kullanman gerekiyor

Bu halde kalırsa kafaları dönmez sadece lokasyonları playerın arkasına gelecek şekilde olur

Kafalarının da dönmesi için playerın açı değişimi bulman gerekiyor(veya sabit bir playerdan açı saklarsın her blok için onunla işlem yaparsın)
kafa döndürme olayı pose ile oluyor onu eulerangle ile yapıyorum
Java:
    @Override
    public void pose(EulerAngle angle) {
        armorStand.setHeadPose(angle);
    }
 

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#26
GetDirection sadece yaw ve pitchten bir vektör oluşturuyor toVector diye method olması lazım onu kullanman gerekiyor

Bu halde kalırsa kafaları dönmez sadece lokasyonları playerın arkasına gelecek şekilde olur

Kafalarının da dönmesi için playerın açı değişimi bulman gerekiyor(veya sabit bir playerdan açı saklarsın her blok için onunla işlem yaparsın)
Java:
    @Override
    public void rotate(Location loc) {
        Vector v = location.subtract(loc).toVector();
        VectorUtil.rotateAroundAxisX(v, loc.getPitch() * 0.017453292F);
        Location k = loc.clone().add(v);
        teleport(k);
    }
toVector ile de olmuyor, ya aslında blockların yönlerini değiştirmede bi sorun yok tüm hepsi istediğim gibi dönüyor dediğim tarafa doğru ama armor standler yer değiştirmiyor onun için matris sistemini kullanmam lazım sanırım
 

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#27
hani aslında merkezde olmama gerek bile yok yani benim nerde olduğum önemli değil pivot noktası olarak beni görsünler ve ona göre dönseler de oluyor mantıken, ama pivot noktası olarak beni göremiyor kekolar kendi bildikelerini okuyorlar
 

GodofMilker

Bedrock Kaşifi
Mesajlar
1,929
Beğeniler
2,349
Puanları
5,280
#28
Java:
    @Override
    public void rotate(Location loc) {
        Vector v = location.subtract(loc).toVector();
        VectorUtil.rotateAroundAxisX(v, loc.getPitch() * 0.017453292F);
        Location k = loc.clone().add(v);
        teleport(k);
    }
toVector ile de olmuyor, ya aslında blockların yönlerini değiştirmede bi sorun yok tüm hepsi istediğim gibi dönüyor dediğim tarafa doğru ama armor standler yer değiştirmiyor onun için matris sistemini kullanmam lazım sanırım
Y'ye göre döndürmelisin sanırım ve pitch yukarı aşağı açısı olması lazım yawı kullan yani*
Ve bloklar yok mu oluyor yoksa yanlış mı dönüyor
Ve locationu clonelamadan çıkartıyorsun*
 

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#30
Y'ye göre döndürmelisin sanırım ve pitch yukarı aşağı açısı olması lazım yawı kullan yani*
Ve bloklar yok mu oluyor yoksa yanlış mı dönüyor
Ve locationu clonelamadan çıkartıyorsun*
blocklar yok olmuyor, yukarlarda ki resimler gibi yerleri değişmiyor sadece yani kendi etrafında dönüyor benim etrafımda dönmüyor keratalar
 

GodofMilker

Bedrock Kaşifi
Mesajlar
1,929
Beğeniler
2,349
Puanları
5,280
#34
oldu sonunda aptal gibi

VectorUtil.rotateAroundAxisY(v, -loc.getYaw() * 0.017453292F);

bunu silmişim rotateden :D
Ekli dosyayı görüntüle 108457
Oldu mu şimdi wt
Ve tek blok veya birbirinden ayırtabileceğin şeyler kullan döndürme şeylerinde daha rahat anlıyorsun*
Niye x etrafında döndürürken hareket etmediğini anlamış değilim bu arada xd
Yukarı fln çıkması gerekiyordu pitchin değişiyorsa*
 

javabey

Kömür Madencisi
Mesajlar
119
Beğeniler
54
Puanları
170
Ruh Hali
#35
Oldu mu şimdi wt
Ve tek blok veya birbirinden ayırtabileceğin şeyler kullan döndürme şeylerinde daha rahat anlıyorsun*
Niye x etrafında döndürürken hareket etmediğini anlamış değilim bu arada xd
Yukarı fln çıkması gerekiyordu pitchin değişiyorsa*
y axisi ni değişmezsen dönmüyor eşşek sıpası ama baktım y yi değiştirince z ve x değişiyor x i değiştirince z ve y değişiyor yani biraz ters mi kodlanmış nedir anlamadım ama kalsın böyle iyi oldu :D
 

GodofMilker

Bedrock Kaşifi
Mesajlar
1,929
Beğeniler
2,349
Puanları
5,280
#37
y axisi ni değişmezsen dönmüyor eşşek sıpası ama baktım y yi değiştirince z ve x değişiyor x i değiştirince z ve y değişiyor yani biraz ters mi kodlanmış nedir anlamadım ama kalsın böyle iyi oldu :D
3 boyutta döndürme yaptığın için ve 3 axisi birden paylaşan bir açı veremeyeceğin için hangi düzlemde döndüreceğini veriyorsun
Y için dediğinde Y'nin dahil olmadığı düzlem yani xz düzleminde döndürürsün
2 boyutlu sistemsw xy düzleminde döndürüyorsun ki z axisi etrafında demek bu*
X etrafında döndürürken de değişmesi lazımdı bi şeylerin bilemedim*