File System Access API, okuma, yazma ve dosya yönetimi özelliklerine olanak tanır. Construct 3'ün bu API'yi nasıl kullandığını öğrenin.
Giriş
(Bu makale video biçiminde de sunulmaktadır.)
Construct 3, Thomas ve Ashley Gullen kardeşler tarafından geliştirilmiş bir oyun düzenleyicisidir. Oyun düzenleyicilerinin üçüncü iterasyonunda, daha önce Windows ve NW.js için derledikten sonra iki "tarayıcının yeni işletim sistemi olacağını [bahis]. Düzenleyiciyle geliştirilen bazı oyunları incelemek için galerisini keşfedebilir veya rehberli turu inceleyebilirsiniz. Web'in süper güçleri sayesinde, "İlham alın" bölümündeki örneklerden birini tıklayıp hemen düzenlemeye başlayabilirsiniz.
Yapı 3'teki File System Access API'si
Construct, Dosya Sistemi Erişimi API'si ile yerel dosyalara kaydetme, bulutta kaydetme (Google Drive, OneDrive, Dropbox) ve proje dosyasının bir kopyasını indirme seçeneği sunar. Construct geliştiricilerinin topladığı istatistikler, kayıtların% 65'inin File System Access API ile yapıldığını gösteriyor. Bu da çoğu müşterinin bu API'yi kullanmak istediğini gösteriyor.
Aşağıdaki snippet'te, showSaveFilePicker()
yönteminden FileSystemFileHandle
elde etmek için kullanılan orijinal üretim kodu gösterilmektedir. Bu kod, gerçek verileri kaydetmek için kullanılır. Oluşturma işlemi, id
seçenekleri parametresini kullanır. id
alanı, dosya seçicinin açılacağı dizini önermek için belirtilebilir. Bir id
belirtildiğinde, tarayıcı farklı kimlikler için farklı dizinleri hatırlayabilir ve bu da iletişim kutusunun kimliğe bağlı olarak aynı dizinde tutarlı bir şekilde başlatılmasını sağlar. Örneğin, düzey dosyaları Documents/levels/
, doku dosyaları ise Images/textures/
içinde açılabilir. types
parametresi, yerelleştirilmiş bir kullanıcı görseli description
ve işletim sistemine başlangıçta yalnızca application/x-construct3-project
MIME türüne sahip .c3p
dosyalarını kabul etmesini söyleyen bir accept
nesnesi içeren desteklenen dosya türleri dizisidir.
let fileHandle = null;
try {
fileHandle = await window["showSaveFilePicker"]({
id: "save-project-file",
types: [
{
description: lang("ui.project-file-picker.c3-single-file-project"),
accept: {
"application/x-construct3-project": [".c3p"],
},
},
],
});
} catch (err) {
// Assume user cancelled, or permission otherwise denied.
return;
}
Oluşturma ekibi, kullanıcının dosya sistemindeki dosyalarla çalışmanın çok kolay olduğunu tespit etmiştir. Geleneksel masaüstü uygulamalarına benzer şekilde çalışır ve diğer yazılımlarla kolayca entegre edilir. Örneğin, kullanıcı dosyalarının yedeklerini oluşturabilen yedekleme yazılımları, çalışmaları başka yerlere kolayca göndermek veya dosyaları harici araçlarla düzenlemek için kullanılan yazılımlar. Ayrıca, yedek klasör seçme veya animasyonlar gibi öğeleri içe aktarma gibi diğer çeşitli kullanım alanları için de File System Access API'yi kullanırlar.
Büyük dosya ve klasörlerle çalışma
Construct'ın bazı müşterileri yüzlerce megabayt boyutunda çok büyük projelerle çalışır. Bu kadar büyük miktarda çalışmayı tek bir dosyaya kaydetmek, bir bulut hizmetine yüklemekten daha da yavaştır. File System Access API, ileri düzey kullanıcıların tüm öğelerinin ayrı dosyalarda bulunduğu yerel bir klasörle çalışmasını sağlar. Yalnızca değiştirilen dosyaların güncellenmesi gerektiğinden bu yöntemle çok hızlı kayıtlar yapabilirsiniz.
Kaldığınız yerden devam edin
Hem dosya hem de dizin tutamaçları IndexedDB'de serileştirilebilir. Bu sayede Construct, oturumlar arasında kalıcı olan son projeler listesini sağlayabilir. Böylece kullanıcılar aynı dosyaya veya klasöre tekrar erişebilir. Bu da kullanıcılar için büyük bir kolaylıktır. Aslında Construct'ta açılan tüm projelerin yaklaşık% 30'u bu şekilde açılır. Aşağıdaki ekran görüntüsünde, tetris.c3p
ve columns.c3p
adlı iki yeni proje ve DevTools penceresinde, bir IndexedDB tablosunda serileştirilmiş ilgili FileSystemFileHandle
nesneleri gösterilmektedir.
Sürükle ve bırak entegrasyonu
File System Access API, Drag and Drop API ile de entegre olduğundan kullanıcılar .c3p
dosyalarını uygulamaya sürükleyip bırakabilir. Construct daha sonra DataTransferItem
nesnesinde getAsFileSystemHandle()
yöntemi aracılığıyla bir FileSystemFileHandle
elde edebilir. Bu, bu şekilde açılan dosyaların ayrı bir dosya kaydetme iletişim kutusu açmak zorunda kalmadan hemen düzenlenip kaydedilebileceği anlamına gelir.
Kullanımdan kaldırılan NW.js derlemesi
Daha önce ekip, yerel dosyalara erişmek için ayrı olarak bakımı ve güncellenmesi gereken bir Construct NW.js derlemesine sahipti. Chromium sürüm 84'te File System Access API için destek ekledikten sonra, Construct geliştiricileri bu API'yi 2020'de uyguladılar ve bir yan ürün olarak NW.js derlemesini kullanımdan kaldırıp tarayıcıyı yalnızca tüm platformlarda kullanmaya başladılar. Bu, geliştirme sürecini basitleştirir ve tarayıcı motorunu uygulamayla birlikte paketleme ihtiyacını ortadan kaldırır.
Sonuçlar
Construct, Construct ile bu çalışma şekline bağımlı hale gelen kullanıcılarının yararına olmak üzere sırasıyla showOpenFilePicker()
, showSaveFilePicker()
ve showOpenDirectoryPicker()
seçici yöntemlerini yoğun şekilde kullanır. Ek bir avantaj olarak Construct, File Handling API'yi de kullanır. Bu API, Construct 3'ün kendisini .c3p
dosyalarının (varsayılan) dosya işleyicisi olarak kaydetmesine olanak tanır. Bu sayede kullanıcı, oyun dosyalarını işletim sisteminin dosya gezgininden doğrudan çift tıklayarak veya sağ tıklayarak Construct 3 ile açabilir. Web'e tamamen odaklanan Construct, WebGL, Web Audio, Web Workers, WebAssembly, çok oyunculu oyunlar için WebRTC, yerel yazı tipi erişimi, yeni animasyon ürünleri için WebCodecs ve daha birçok modern tarayıcı API'sini kullanır. Her zaman web platformundan tam olarak yararlanmayı ve bu platformda nasıl harika ürünler geliştirilebileceğini göstermeyi amaçlayan Unity'nin rehberli turunu denemeyi ve kendi oyunlarınızı oluşturmayı unutmayın.