DEV Community

Ali Orhun Akkirman
Ali Orhun Akkirman

Posted on

ScratchJr dosyasının anatomisi

ScratchJR, erken yaş çocuklar için kodlamaya ilk adım atabileceği güzel bir uygulama. Scratch'in aksine "metin blokları" ile değil "ikon blokları" ile programlamaya izin vermektedir. Bu nedenle bazı özellikleri daha kısıtlı olmasının yanında, bazı özelliklerde de basite kaçıldığını söyleyebilirim. Özellikle ilgileniyorsanız ikon blokları ile kodlama konusundaki yazımı okuyabilirsiniz.

Buradaki konumuz ise, ScratchJR'da yaptığınız kodlamanın kaydedildikten sonra oluşan ".SJR" dosya formatının içeriği konusu. Öncelikle ScratchJR, şuan itibariyle tabletler ve cep telefonlarından çalışacak şekilde tasarlanmış. Dolayısıyla web tarayıcılar üzerinden bir erişim bulunmamakta. Web tarayıcılar üzerinde çalışabilecek gayriresmi bazı sayfalar bulunmakta fakat birebir destek olmadığı için problem çıkartması çok doğal olabileceğini söylemek isterim.

SJR dosyası içeriği

Öncelikle SJR dosyası klasik bir ZIP sıkılaştırma formatı ile sıkılaştırılmış bir klasörü içermekte. Dolayısıyla ilgili dosyası "çıkartma/extract" yöntemi ile açtığınızda içerisinden aşağıdaki gibi bir klasör yapısı göreceksiniz.

project
|-- thumbnails
|   |-- 0_6e035782797023d0340f2ef9d6cdc81c.png
|-- sounds
|   |-- 2bd509af-f830-4bea-bb0f-d9d2640ed948.webm
|   |-- d9d2640ed948-f830.wav
|-- characters
|   |-- 2bd509af2bd509af2bd509af2bd509af.svg
|-- backgrounds
|   |-- 76570abb3c400dd8c6ed16e48ab4a00d.svg
|-- data.json
Enter fullscreen mode Exit fullscreen mode

Öncelikle project isminde bir klasör oluşup, bu klasör içerisinde aşağıdaki alt klasörler bulunmaktadır. Tabi ki sizin projenizde "custom" olarak düzenlediğiniz pek bir şey yoksa sadece thumbnails bulunması da olası.

  • thumbnails
  • sounds
  • characters
  • backgrounds

Bu alt klasörleri sırası ile inceleyelim. Sonrasında ise data.json dosyasını inceleyeceğiz.

thumbnails

Projenin sayfaları hakkında kısa görseller barındıran dosya. Muhtemelen sadece png formatında kullanılmakta. İşlevselliğe pek bir katkısı olmadığını söyleyebilirim.

sounds

Projede mikrofon ile oluşturduğunuz ses kayıtlarını barındıran klasör. Varsayılanda bu klasör oluşmuyor fakat ses kaydı eklerseniz oluşmakta. İçerisindeki dosya wav veya webm formatında olabiliyor. Wav olmasının tercih edilmesini daha doğru buluyorum. Sizler de uygulama dışında da oluşturduğunuz/çevirdiğiniz ses kayıtlarını buraya koyabilirsiniz.

characters

Projede karakter olarak oluşturduğunuz görselleri içermektedir. Karakterler svg yani vektörel formatta kaydedilmeli. Daha sonra bu konu ile ilgili daha geniş bir yazı da hazırlamak istiyorum çünkü mevcut uygulama ile sadece karakter çizimi yapılabilip, web kamerası ile görüntü eklenebiliyor. Herhangi bir formatta görsel veya resim eklenmesi olmuyor. Fakat buradaki klasöre elle eklenen dosyalar daha sonra uygulamadan görüntülenip kullanılabiliyor.

backgrounds

Projede sayfalarda çeşitli arkaplanlar kullanılabiliyor fakat kendiniz elle çizdiğiniz bir arkaplan kullandığınızda bu klasör oluşuyor. Karakterlerde olduğu gibi svg yani vektörel dosya kabul etmekte. Dolayısıyla karakterde olduğu gibi sonradan da yeni arkaplan resimleri eklenebilmekte.

SJR içerisindeki data.json dosyası

SJR dosyası yani projenizdeki işlevler bu dosya içerisinde tanımlanmaktadır. Önceki bölümde bahsettiğimiz tüm dosyalar kaynak dosya olarak düşünürsek bu kaynak verilerin nerede kullanıldığı ve neler yapacağı tam olarak bu dosya içerisinde tanımlanmaktadır.

Image description

Bu dosya adında da barındırdığı şekilde JSON formatında hazırlanmış olup üstteki büyük obje içerisinde id, zaman, isim, sürüm, giftolupolmaması, silinmişolupolmaması gibi değişkenlerin yanında; "json" adında(standartı saçmalatmışlar) ve thumbnail adında başka bir nesne ayrımına girmekte. thumbnail nesnesi düşünüldüğü gibi thumbnail klasöründeki öngösterim görselinin ismini ve projedeki sayfa sayısını barındırmakta.

Image description

"json" adındaki diğer geniş nesne ise her bir sayfa için detaylı süreçleri barındırmakta. Her bir sayfa için detaylı katmanlar, katmanların hangi karakterleri içerdiği, karakterlerin konumları, ses ilişkileri ve "kodlama" kısmını detaylandıran "scripts" ismindeki nesneyi barındırmakta. Tabi bunlar dışında daha bir çok değer de bulunuyor ama şuanki amacımız bu detay değil. Script nesnesi içinde bir dizi tanımlanmış olup bu dizi içerisinde ikon bloklarına verilen bazı isimler ve bu ikon bloklarının alabileceği parametrelere göre değerler bulunmaktadır. Yani yazılım geliştiricilerin çok rahat anlayabileceği bir yapı olduğu oldukça net.

Image description

Son Söz

Son söz olarak SJR dosyası üzerindeki düzenlemeleri tekrar ZIP formatında sıkılaştırıp ismini SJR olarak verdiğimizde uygulamaya tekrar "import" edilebilmekte. Dolayısıyla çeşitli karakterler, sesler ve arkaplanları oyunlara eklemek isteyenler için oldukça güzel fırsat sunabilmekte.

Top comments (0)