Photoshop'ta sprite nasıl yapılır? Css spriteları nasıl yapılır? Şimdi CSS spritelarının temel örneklerine bakalım

Sprite, yalnızca her mağazadan satın alınamayan, aynı zamanda bağımsız olarak da hazırlanabilen, milyonlarca insanın en sevdiği içecek. İnternette gerçeği kadar iyi bir sprite nasıl oluşturulacağına dair birçok farklı tarif ve ipucu bulabilirsiniz. Bunlardan en popülerleri bu makalede toplanmıştır.

Sprite yapmanın tarifi oldukça basittir. Misket limonu, limon suyu, şeker ve maden suyu gibi malzemeleri doğru oranlarda karıştırmak gerekir. Ancak içeceğin gerçekten lezzetli ve doğala benzer olması için uyulması gereken birkaç kural vardır.

Önemli olan ilk şey, yemek pişirmek için yalnızca taze meyveleri kullanmak ve "atılması üzücü" ancak artık yenemeyenleri almamaktır. Bozulmuş bir ürün tüm yemeğin tadını bozabilir, aynı şey içecekler için de geçerlidir.

Ayrıca kaliteli maden suyu kullanılması önemlidir. Bu malzemeyi eksik etmemelisiniz çünkü içeceğin hazırlanmasında önemli bir rol oynar. Su yüksek oranda karbonatlı olmalıdır; zayıf veya karbonatsız maden suyu bu amaçlar için uygun değildir.

Sprite, mojito ve diğer kokteyller gibi ev yapımı içeceklere şeker yerine şeker şurubu eklenmesi önerilir. Şurup yapmak için ayrıntılı bir tarif aşağıda açıklanmıştır.

Şeker şurubu nasıl hazırlanır?

Ev yapımı kokteylin tadının mağazadan satın alınana mümkün olduğunca yakın olmasını sağlamak için şeker şurubu gereklidir. Bu şurubu kendiniz yapmak oldukça basittir ve fazla zaman almaz.

Öncelikle tavayı ateşe koymanız ve su ısınana kadar beklemeniz gerekiyor. Ateş güçlü olmamalı ama zayıf da olmamalıdır, aksi takdirde şekerin erimesi çok uzun zaman alır. Yavaş yavaş gerekli miktarda şeker tavaya dökülmeli, su kaynatılmalı ve şekerin tamamen erimesine izin verilmelidir.

Ortaya çıkan sıvıyı soğutun. Şeker şurubu hazır - ve artık lezzetli kokteyller yapmak için kullanılabilir.

10 dakika içinde espiri yapın

Bu popüler gazozun yapımı fazla zaman almaz; görevi 10 dakikadan daha kısa sürede tamamlayabilirsiniz. Evde sprite yapmak için en yaygın tariflerden biri aşağıdaki gibidir:

  • Bir limonu ince ince doğrayın, kabuğunu atın;
  • 5 yemek kaşığı şeker serpilmiş tavaya limon ekleyin, beş dakika pişirin;
  • elde edilen sıvının yaklaşık bir saat demlenmesine izin verin;
  • süzün ve yüksek karbonatlı suya ekleyin.

Sonuç, satın alınan Sprite ile tamamen aynı olan harika bir içecek. Ve sıvının demlenmesi gereken süreyi saymadan, hazırlamak yalnızca on dakika sürecektir.

Ev sprite'ı oluşturmanın gelişmiş bir yolu

Limon ve maden suyu kullanarak koket yapmak için standart tariflere ek olarak, diğer malzemeleri kullanarak içecek hazırlamanın daha ilginç yollarını bulabilirsiniz. Bir sprite hazırlamak için ihtiyacınız olacak:

  • sade su;
  • "Sprite" aroması;
  • limon asidi;
  • karbon dioksit.

Son “içerik”e gelince, herkes buna sahip değil. Fabrikalarda ve fabrikalarda gazlı içeceklerin toplu hazırlanmasında karbondioksit kullanılır. Ancak birçok deneysel şefin mutfak malzemeleri arasında bu unsur da bulunmaktadır.

Sprite bazlı ev yapımı içecekler

Sprite özellikle popülerdir çünkü gece kulüplerinde ve barlarda servis edilen birçok tanınmış alkollü ve alkolsüz kokteylin temelini oluşturur. Bunlardan biri de mojito içeceğidir. Bu kokteyl özellikle yaz aylarında geçerlidir, çünkü sadece susuzluğu gidermekle kalmaz, aynı zamanda vücudu mükemmel şekilde tonlandırır.

Geleneksel bir mojito çeşitli bileşenler içerir. Kural olarak bu karbonatlı su, nane suyu ve şekerdir. Konu alkollü kokteyl olunca bu listeye beyaz rom da eklenir.

Mojito

Makalede evde nasıl sprite yapılacağına dair çeşitli tarifler veriliyor, ancak mojitoyla bu daha da kolay! Bu kokteyl çok karmaşık görünüyor.

Tipik olarak, kendi kokteylinizi oluşturmak için aşağıdaki malzemeler gereklidir:

  • şeker kamışı;
  • soda;
  • limon veya limon;
  • nane;
  • rom (en azından votka);
  • buz küpleri.

Sprite soda olarak mükemmeldir; kendiniz de yapabilirsiniz. Evde sprite nasıl yapılır diye merak ediyorsanız tarifini ve ayrıntılı adım adım açıklamasını yukarıda bulabilirsiniz.

Bir mojitoyu şu şekilde “toplamanız” gerekir:

  • kireci ikiye bölün, yarısının suyunu sıkın;
  • naneyi ince ince doğrayın, limonla birlikte bardağa ekleyin;
  • bardağı buz küpleriyle doldurun;
  • Bardakta kalan alanı sodayla doldurun;
  • 30 ml beyaz rom ekleyin.

Mojito hazırlandıktan hemen sonra servis edilmelidir, böylece bardaktaki buzun erimeye vakti kalmaz. Pipetten içilmesi tavsiye edilir. Çocuklar bile alkolsüz mojito yapabilir.

Ahududu limonatası

Bu, birçok çocuğun çok sevdiği bir başka popüler alkolsüz kokteyldir, çünkü içindeki ana malzemeler tatlı, sulu ahududulardır ve daha az lezzetli değildir.Bu kokteyli oluşturmak için Sprite da kullanılır. Sprite'ın nasıl yapılacağını zaten biliyorsunuz, fotoğraflı tarif ve evde yemek pişirme yöntemleri yukarıda anlatılıyor.

Ahududu Limonata kokteyli için ihtiyacınız olacak:

  • Ahududu;
  • Ahududu şurubu;
  • limon;
  • hayalet;
  • nane;
  • kireç.

İlk adım ahududuları hazırlamaktır - üç olgun meyveyi bir bardakta iyice ezin. Bundan sonra bir dilim limon eklemeniz ve bardağı üstüne kadar buz küpleriyle doldurmanız gerekir. Bardakta kalan alan aromatik ev yapımı sprite ile doldurulacaktır. Dekorasyon için limon, limon ve nane kullanın.

Portakallı limonata

Bir diğer çocuk lezzeti ise evde de hazırlanabilen portakallı limonatadır. Bu canlandırıcı, canlandırıcı içecek hiçbir şekilde mağazadan satın alınan gazlı içeceklerden daha aşağı değildir. Tam tersine doğru pişirirseniz daha da lezzetli olur.

Kendi portakallı limonatanızı yapmak için aşağıdaki ürünlere ihtiyacınız olacak:

  • 3 orta boy portakal;
  • 2 limon;
  • öğütülmüş zencefil kökü (çay kaşığı);
  • 150 gram şeker;
  • 1 litre sprite;
  • 1,5 litre sade su.

Tarifte kullanılacak olan şeker şurubu olduğu için öncelikle şeker şurubunu hazırlamanız gerekiyor. Portakalları soyun, ince doğrayın, limonu ikiye bölün. Yarım limon ve portakalları bir tencereye koyun, su ekleyin ve zencefil kökünü ekleyin.

Ortaya çıkan sıvıyı iyice süzün. Sürahiyi yarısına kadar buz küpleriyle doldurun, narenciye suyunu, şeker şurubunu ve Sprite'ı dökün. Normal maden suyu da işe yarayacaktır. Limonun kalan yarısını dilimler halinde kesin ve elde edilen içeceğe ekleyin.

Sprite (İngilizce sprite - peri, hayalet) kelimesi ilk olarak Disney animatörleri tarafından biraz farklı bir kapasitede kullanıldı; çizgi film karakterlerini daha hızlı ve daha rahat bir şekilde yaratmak ve "canlandırmak" için animatörler ilk önce hareketlerinin tüm aşamalarını şeffaf filmler üzerine çizdiler. ve daha sonra bu filmleri sahnenin ana arka planına yerleştirdiler ve çizgi film kareleri aldılar, böylece sanatçıların zamandan, paradan ve sinirlerinden tasarruf ettiler... aynı filmlere sprite adını verdiler.

Daha sonra sprite terimi bilgisayar grafiklerine girdi ve özellikle bilgisayar oyunlarında yaygınlaştı - ama benim size anlatmak istediğim tam olarak bu değil. Bugün size CSS sprite denilen şeylerden bahsetmek istiyorum..

Bu nedenle, CSS'deki sprite'lara genellikle kullanıcının eylemlerine bağlı olarak ayrı ayrı gösterilen birkaç "parçadan" oluşan tek bir görüntü denir.

Çok fazla kelime var... Size bir örnek göstereceğim...

Bu, bu sitenin her sayfasında bulunan bir sprite:

Sadece "sakin" bir durumda size bunun bir kısmı gösteriliyor ve imleci gezdirdiğinizde başka bir kısmı gösteriliyor.

Nasıl yapılır? Aslında oldukça basit.

Bu örnekte, sabit boyutlu bir blok için arka plan olarak "çift" bir görüntü yüklüyoruz, ancak kendisine atanan boyutlar nedeniyle bloğun kendisi görüntünün yüksekliğinin tam yarısı kadar olduğundan, tarayıcı yalnızca arka plan görüntüsünün ilk "bölümü" ve imleç üzerine gelindiğinde sözde sınıf tetiklenir : üzerine gelin mülkiyet ile arka plan konumu arka planı gerekli mesafeye kaydırır ve böylece resmin ikinci kısmını gösterir.

Tamam, logomu bir kenara bırakalım, özellikle de sana biraz yalan söylediğim için... hadi senin için daha yararlı bir şey yapalım, örneğin şu buton:

Photoshop'u açalım ve içine şöyle bir şey çizelim:

Burada asıl önemli olan bedenlerde hata yapmamak! Düğmemizin aktif olduğu görüntünün ikinci kısmı, resmin ilk kısmı ile tam olarak aynı boyutta olmalıdır, aksi takdirde daha sonra imleci üzerine getirdiğinizde her şey “atlayacaktır”. Önce resmin bir bölümünü çizip sonra kopyalamak, filtrelerden geçirmek, bir şeyler çizmeyi bitirmek ve iki görüntüyü tek bir görüntüye yapıştırmak en iyisi... Ancak Photoshop dersleri bana göre değil...

Yani, “çift” bir resmimiz var 175 Açık 80 piksel, bu boyutları hatırlayın ve kod yazmaya başlayın.

Ben şu şekilde anladım... sonuca bakın ve koddaki yorumları okuyun:




CSS spriteları



Elimizdeki menü bu:




Buton 1
Düğme 2
Düğme 3
Düğme 4



Sanırım pek çok okuyucu şunu merak ediyor: "Eğer aynı şey iki ayrı resim kullanılarak yapılabiliyorsa, bu resimlerden biri yalnızca bir bağlantının arka planını, ikincisi ise bir bağlantının arka planını oluşturuyorsa bu spritelara neden ihtiyaç duyuluyor?" : üzerine gelin Photoshop ile uğraşmanıza ve CSS için arka plan koordinatlarını hesaplamanıza gerek kalmadan mı??"

Öncelikle: Resimlerin yüklenme hızı önemli ölçüde artıyor!! "Çift" görüntünün iki ayrı küçük "tek" görüntüyle aynı ağırlığa sahip olmasına rağmen, tarayıcı sunucuya ek HTTP istekleri oluşturmadığından büyük bir görüntünün yüklenmesi daha hızlıdır.

Sana sprite logomu gösterip yalan söylediğimi söylediğimi hatırlıyor musun? Yani benim kurnazlığım bu resmin görüntünün iki mantıksal parçasını değil on sekiz parçasını içermesinde yatıyor!!

Ve tam olarak şöyle görünüyor:

Yani bu sitede gördüğünüz grafiklerin neredeyse tamamı aslında tek bir görsel halinde karşınıza çıkıyor! CSS dosyasını göstermeyeceğim, kendimden korkuyorum..)),

İşte HTTP istekleri: Bir yerine 18 resim olsaydı, tarayıcının sunucuyla diyaloğu şuna benzerdi:

Tarayıcı: Merhaba Sunucu! Sizden geliyorum, isteğim üzerine HTML ve CSS belgeleri alıyorum ve bu yüzden "graphics" klasörünüzde... "picture1" adında bir resim olması gerektiğini belirtiyorlar, bırakın hah ?
Sunucu: Merhaba Tarayıcı, uzun zamandır görmüyordum, şimdi bakacağım... evet, böyle bir resmim var! Yakalamak!!
Tarayıcı: Teşekkürler, yakaladım! Ama yine de aynı klasörde "resim2" ye ihtiyacım var..
Sunucu: Evet, bir tane var.. Gönderiyorum..
Tarayıcı: Yüklendi.. ama burada “resim3” de belirtiliyor.
Sunucu: Ve uyuyamıyorsun! Resmini sakla!!
Tarayıcı: Teşekkür ederim! Evet açıkçası artık sıkıldım ama kullanıcım sayfayı tamamen yüklemek istiyor... Kısacası orada da "picture4" olmalı...
Sunucu: Beni strese sokmaya başlıyorsun! Senin resmine!!
Tarayıcı: Üzgünüm ama burada bu kadar çok görselin olması benim hatam değil!!! "Resim5"e ihtiyacınız var!
Sunucu: Zaten işlemcimi kaynatıyorsun!! Tereddüt ettim!! Resmini al!!
... ... ...

Daha fazla diyalog kurmayacağım çünkü bundan sonrası müstehcen bir dil...

Bir HTTP yapmak çok daha hızlı ve daha ekonomikse, neden sunucu ile tarayıcı (istemci) arasında çok fazla zaman ve trafik gerektiren ve aynı zamanda çok sayıda site ziyaretçisi olduğunda sunucuyu yükleyen tüm bu gevezeliklerin nedeni 18 fotoğrafın tamamını tek bir pakette talep edin ve alın!!

İkincisi: Sahte sınıf kullanılırken ikinci bir görüntünün yüklenmesi : üzerine gelin yalnızca kullanıcının ilk görselin bulunduğu bağlantının üzerine geldiği anda gerçekleşir. Bu, yukarıdaki örnekteki bir düğme gibi küçük bir resimse, o zaman özellikle kötü bir şey olmayacaktır - ikinci resim hızlı bir şekilde yüklenecek ve kullanıcı hiçbir şey fark etmeyecektir... peki ya bu, ağırlık ve boyut açısından büyük bir resimse? ? Daha sonra kullanıcı, görüntülerin hızlı değişimine psikolojik olarak hazırlıklı olmasına rağmen, nasıl yüklendiğini izleyecektir! Spritelar için bir artı daha! ... gerçi dürüst olmak gerekirse bu da bir eksi.. kullanıcı oturum sırasında imlecin üzerine hiç gelmemişse bir eksi.. resim yüklendi ama onun için yararlı olmadı.. ama inanın bana, bu "kurbanı" trafik” neredeyse her zaman karşılığını verir. !

Ve üçüncüsü: Size ne kadar tuhaf gelse de kullanışlıdır!! Kodda aynı görüntünün yolunu belirtmek uygundur, Photoshop'ta düzenlemek uygundur, örneğin tek bir görüntüyle çalışarak tüm siteyi daha parlak veya daha karanlık hale getirmek, depolamak ve yüklemek uygundur. sunucu ve hatta CSS'de bile büyük bir hareketli grafikle çalışmak uygundur! - her ne kadar bu belirli beceri ve alışkanlıklar gerektirse de..

Tamam, sprite kullanıp kullanmayacağınıza kendiniz karar verin.. ve benim işim küçük, tabiri caizse bilgiyi dikkatinize sunmak için.. başka sorularınız olursa, sizi şu adreste bekliyorum:

Spritelar oldukça ilginç ve basit bir teknolojidir. Şimdi size biraz daha anlatacağım.

CSS sprite'ları nelerdir?

Kısacası, CSS sprite'ları tek bir dosyadaki birkaç görüntüden oluşur. Bir dosya var ama içinde birkaç resim var. Aynı zamanda bu durum ziyaretçiye tamamen görünmez. Siteyi görüntüleyen biri, birkaç ayrı resim görüyormuş gibi görünüyor.

Bu neden gerekli? Sprite'lar kullanıcı tarafından yapılan sayfa isteklerinin sayısını azaltır ve görsellerin genel boyutunu küçültür. Sonuç olarak ziyaretçi siteyi daha hızlı görecektir.

Nasıl yapılır? Sıradan bir resmin genişliği ve yüksekliği artar, yani birkaç resim sıradan bir resmin üzerine yan yana yerleştirilir. Daha sonra bu setteki her bir görüntü, diğer tüm görüntülerin görünmemesi için belirli bir genişlik veya yükseklikte istenen bloğa eklenir. Tüm set kırpılır ve yalnızca bir resim kalır. Bir hayalet. Diğer tüm resimler belirli bloğun dışında kalır.

Daha açık hale getirmek için bir benzetme yapacağım. Bir anahtar deliğinden baktığınızı hayal edin. Kapının diğer tarafında odanın yalnızca ayrı bir bölümünü görüyorsunuz. Biraz yana çekilip mağaraya farklı bir açıdan bakarsanız aynı odanın başka bir parçasını göreceksiniz.

Terminoloji

Karışıklığı önlemek için hemen terimleri tanımlayalım:
Sprite- bu, birkaç resim içeren bir dosyadaki bir resimdir.
Karakter seti birkaç resim içeren dosyanın kendisidir.

Sprite kullanmanın özellikleri

Spriteları ne zaman kullanmalısınız? Genellikle tek bir cevap vardır; sayfada çok sayıda küçük resim varsa spritelar kullanılmalıdır. Ne tür görseller oldukları önemli değil. Aynı konuma sahip çok sayıda degradeniz, çok sayıda düğmeniz, çok sayıda simgeniz vb. varsa. Belirli bir sayfada çok sayıda küçük resim varsa sprite kullanmayı düşünebilirsiniz.

Bir sayfada genellikle üç tür resim bulunur: jpg, png ve gif. Tüm bu formatların iki indirme modu vardır: normal mod ve kademeli indirme modu.

Jpg formatı normal (temel) veya aşamalı (aşamalı) olabilir. Normal modda resim yüklenirken satır satır ve hemen iyi kalitede görüntülenmeye başlar. Aşamalı modda jpg görselinin tamamı tek seferde indirilir ancak kalitesizdir ve indirildikçe kalitesi artar.

Gif ve png aynı davranışa sahiptir. GIF normal veya taramalı olabilir. PNG normal veya taramalı olabilir. Taramalı gif'lerin ve png'lerin davranışı, aşamalı jpg'nin davranışına benzer. Bu davranış, dosya boyutunu biraz artırır.

Toplam. Resim sayfada hemen görünebilir veya gecikmeli olarak görünebilir. Sprite söz konusu olduğunda bunu bilmek önemlidir. Spriteların geçmeli veya aşamalı yapılması tavsiye edilir. Kullanıcı resimleri düşük kalitede de olsa mümkün olduğu kadar çabuk görmelidir.

Ancak! Tüm spriteların bulunduğu son dosya çok büyükse, tüm ilerleme ve taramaya rağmen ziyaretçinin dosyanın kısmi indirilmesini bile beklemesi gerekecektir. Bu nedenle büyük sprite setlerinin kullanılmasını önermiyorum. Dosya büyükse, siteyi hızlandırmak için spriteların tüm amacı tamamen kaybolur. Büyük hareketli görüntüler setlerinde, kullanıcının normal bölünmüş görüntülerdeki kadar, hatta daha uzun süre beklemesi gerekecektir.

30 kilobaytın üzerindeki dosyalar bana büyük görünüyor. Bu özneldir. Dosyanın boyutu hakkında kendi fikirleriniz olabilir. 30 kilobaytlık bir dosya 56,6 kbps internet hızıyla yaklaşık 7 saniyede indirilecektir.

Sprite kullanma örnekleri

Simgeler içeren spritelar

Bir hareketli grafikte aşağıdakilere yönelik simgelere sahip olacağım:

  1. Liste - bir simge
  2. Bağlantılar - üç simge
  3. Arama formları - bir simge

Yani, ilk sprite setim beş resim içerecek. Tüm resimlerim aynı boyutta olacak - 16 x 16 piksel. Sprite'lar farklı çözünürlüklerde görüntüler oluşturmak için kullanılabilir; tüm görüntülerin çözünürlüğünün aynı olması gerekli değildir. Resimlerin farklı çözünürlükleri nedeniyle bu resimleri tek bir dosyada birleştirmek biraz daha zorlaşıyor.

Sonuç olarak ilk örnek şöyle görünecek:

Beş simge buldum. Daha sonra hepsini tek bir dosyada birleştirdim. Sonunda bulduğum dosya bu:

Dikkatinizi çekmek. Bu durumda simgeler birbirine yakın yerleştirilmemiştir, aralarında küçük girintiler vardır. Bu girintiler nasıl seçilir? Elbette her şeyi piksel piksel hesaplayabilirsiniz, ancak bizim durumumuz oldukça basit, bu nedenle burada resimdeki bu girintileri deneysel olarak seçmek en iyisidir. Öncelikle görselleri basit bir şekilde birleştiriyoruz, ardından en üstteki fotoğrafı alıp doğru yere koyuyoruz. Resim yerindeyse, ancak aynı zamanda başka bir görüntünün bir parçası bir yerden dışarı çıkıyorsa girintinin arttırılması gerekir.

Bir şey daha. Listedeki son simge liste simgesidir - yeşil bir ok. Neden o sonuncu? Resimde kalan simgelerin konumu bizim için önemli değil, ancak listedeki herhangi bir öğe birkaç satırı kaplayabilir ve yeşil ok ortada bir yerdeyse sonraki satırlarda diğer resimler öne çıkacaktır. Neden bahsettiğimi görmek için yukarıdaki liste resmine bakın.

Bu yüzden. Beş simge buldum ve bunları tek bir dosyada birleştirdim. Sonra ne yapıyoruz? Tabii ki kodu yazıyoruz:

  • Liste öğesi
  • Bir liste öğesi daha
  • Liste öğesi
  • Bir liste öğesi daha
    ama iki satırda
  • Liste öğesi
  • Bir liste öğesi daha

Bu listenin html kodudur. Şimdi sprite'ımızı buna uygulayalım:

Ul li( dolgu:0 0 0 21px; arka plan:url("sprites.png") 0 -94px tekrarlama yok; )

Burada ne yaptık? Her biri girintili

  • Metnin görüntüyü engellememesi için sol kenardan 21 piksel. Ardından sprites.png'yi arka plan resmi olarak ayarlayın. Bu durumda sprite içeren tüm resmin yüksekliği 110 pikseldir ve yeşil ok en sonundadır. Yeşil okun yüksekliği 16 pikseldir, yani ok resmin üst kısmından itibaren 94. pikselden sonra başlar. Bu, arka planı 94 piksel yukarı taşımamız gerektiği anlamına geliyor. CSS kodunda “0 -94px” yani 0 piksel sağa, 94 piksel yukarıya kaydırılmış olarak yazılır.

    Listeyle bitirelim. Şimdi bağlantıları yaklaşık olarak aynı şekilde yapalım:

    A( dolgu:0 0 0 20px; arka plan:url("sprites.png") 0 -42px tekrarlama yok; ) a( dolgu:0 0 0 20px; arka plan:url("sprites..png") 0 -21px tekrarı yok;)

    A seçiciler ne anlama geliyor? Görünüşe göre bu seçici, tarayıcıyı, değeri http://site/ dizesiyle başlayan href niteliğine sahip tüm bağlantılara bu stili uygulamaya zorluyor. Karakterin kendisi listede olduğu gibi hemen hemen aynı şekilde kullanılır. Yalnızca bir bağlantıyı dikkate alacağım - bloguma bir bağlantı.

    1. Gerekli bağlantıyı href ile belirliyoruz. İstediğiniz bağlantıya basitçe bir sınıf atayabilir veya doğrudan html kodunda style özelliğine stiller ekleyebilirsiniz. Veya başka bir yöntemi kullanarak istenen bağlantıyı tanımlayın.
    2. Belirli bir bağlantının sol kenarından 20 piksellik bir kenar boşluğu bırakıyoruz
    3. Arka plan resmi olarak sprites.png resmini belirtin
    4. Blogum için seçtiğim görsel üst kenardan 21 piksel uzakta, bu da arka planı 21 piksel aşağıya kaydırmamız gerektiği anlamına geliyor. Css'de şöyle yazdım: “0 -21px”

    Ev ödevi

    Gradyanlı spritelar

    Şimdi ikinci örneğe bakalım.


    Bu resim bir pencereyi göstermektedir. Bir pencerenin üstbilgisi, gövdesi ve altbilgisi vardır. Bu öğelerin her birinin kendisine ayarlanmış bir arka plan degradesi vardır. Daha yakından bakın, hemen görünmüyorsa soluktan doygunluğa bir renk geçişi var.

    Bu penceredeki degradelerin nasıl hareketli karakterlere dönüştürülebileceğini size göstereceğim. Pencerenin üstbilgisi ve altbilgisi sabit bir yükseklikte (30 piksel) olacaktır. Pencere gövdesi metnin uzunluğuna bağlı olarak uzayacaktır.

    Şimdi pencerenin html kodunu yazalım:

    Spriteları kullanmaya başlayalım. Pencere başlığıyla başlayalım:

    #window-header( height:30px; arka plan:#C0C0FF url("gradients.png") 0 0 tekrar-x; )

    Gradients.png dosyasında önce başlık için, sonra gövde için ve sonra da alt satır için bir degrade bulunur. Yani başlığın degradesi en üstten başlar. Bu nedenle, dosyanın kendisini arka plan olarak ayarlıyoruz ve konumu “0 0” olarak belirtiyoruz, yani hiçbir yere geri çekilmiyoruz. Degradenin yatay olarak uzamasını sağlamak için "tekrar-x" yazın.

    Degradenin tamamının başlığa sığmasını sağlamak için yüksekliği 30 piksele ayarlayın.

    Alt bilgi için üst bilgiyle aynı şekilde bir degrade ayarlayalım:

    #window-footer( height:30px; arka plan: #C0FFC0 url("gradients.png") 0 -60px tekrarlama-x; )

    Ancak bu sefer görüntüyü 60 piksel aşağıya taşıyacağız.

    Pencerenin gövdesiyle ilgili durum daha karmaşıktır. Vücudumuz üstbilgi ve altbilgiden farklı olarak esneyecektir. Yani, pencere gövdesi için basitçe bir div oluşturup buraya bir degrade koyarsak, tüm degradeler bu div'de aynı anda görünecektir. Alternatif olarak, gövdenin degradesini dikey olarak en sona koyabiliriz, peki ya uzanan bloklar için birden fazla degrademiz varsa? Her şeyi bir anda yapamazsınız. Bunu biraz daha akıllıca yapacağız.

    CSS kodu aşağıdaki gibi olacaktır:

    #window-body( pozisyon:relative; ) #window-body-gradient( pozisyon:mutlak; sol:0; üst:0; genişlik:%100; yükseklik:30px; arka plan:url("gradients.png") 0 - 30 piksel tekrar-x; ) #pencere-gövde-metni( konum:göreli; )

    Şimdi size burada ne yaptığımızı daha detaylı anlatacağım. Burada pencere gövdesinin html kodu ayrı ayrı verilmiştir:

    Gördüğünüz gibi gövdeye gömülü iki divamız daha var. İlk "pencere-gövde-gradyanı" degradeden sorumlu olacaktır. İkinci “pencere gövdesi metni” metin içindir. Ayrıca CSS kodundan da anlaşılacağı gibi, konum: göreceli; tüm pencere gövdesi için.

    Gradyan div için konumu belirtiriz:mutlak. Böylece degrade div'i genel akışın dışına çıkardık. Artık bu div'in hiçbir şey üzerinde etkisi yok. Tüm gövde için konum: bağıl belirttiğimiz için, degrade div ebeveynin ötesinde hiçbir yerde yüzemez. “Left:0;” kullanarak pencere gövdesinin sol ve üst kenarına takın. üst:0;". Degrade div'in yüksekliğini 30 piksele ayarlayın. Yani, burada ekleyeceğimiz degradenin yüksekliğini belirtiyoruz; eğer div'in yüksekliği degradenin yüksekliğinden büyükse, div'de diğer spritelar dışarı çıkacaktır. Ve son olarak degradeler.png dosyamızı degrade div'e ekliyoruz. Her zamanki gibi arka planı gereken mesafe kadar yukarı kaydırıyoruz; bu durumda arka planı 30 piksel yukarı kaydırıyoruz.

    Artık pencerenin gövdesinde bir degrade var. Ancak metni karartıyor. Metnin gizlenmesini önlemek için metnin tamamını bir div içine saracağız ve ona pozisyon:relatif atayacağız. Atandıktan sonra metin degradenin üstünde olacaktır.

    Temelde hepsi bu. Artık tüm degradeleri penceremize yerleştirdik. Ve başlıkta, vücutta ve bodrumda.

    O kadar uzun açıklamalar yapıyorum ki her şey tamamen netleşsin. Ancak aslında, düzen hakkında biraz bilginiz varsa, o zaman örneklere bakmanız muhtemelen yeterli olacaktır:

    Bağlantıyı bir kez daha kopyaladım.

    Aslında sprite kullanımına dair pek çok örnek bulabilirsiniz. Sadece iki örnek gösterdim ama bu örnekler spriteların nasıl çalıştığını anlamak için yeterli olacaktır. Sorularınız varsa yorumlarda sorun.

    On yılı aşkın bir süredir oyun ve görsel efekt sanatçıları için araçlar ve motorlar üzerinde çalışıyorum ve insanların "yazılım sanatı" ile "gerçek oyun sanatı" arasında yaptıkları ayrım beni her zaman şaşırtmıştır. Ayrıca, kötü grafikleri aşmanıza izin veren kişilerin çoğunlukla diğer programcılar olduğunu da fark ettim. Oyununuz ne kadar eğlenceli olursa olsun veya demonuz teknik olarak ne kadar harika olursa olsun, karakterinizi gösterdiğiniz programcı olmayan kişiler, "Onun jetpack'i mi var, yoksa başka bir şey mi?" diye düşüneceklerdir. Çoğu zaman, sıfırdan çizmenize gerek kalmadan iyi grafikler oluşturmanın bir yolunu bulabilirsiniz. Ancak bazen anında grafik oluşturmanız gerekir. Bir oyun yarışmasındaki bütçe kısıtlamaları veya kurallar ya da sadece bir prototip için son teslim tarihinin kısıtlı olması, bir cetvel ve boya fırçası almanızı gerektirebilir.

    Ben çizemiyorum, gerçekten... Şunu söylemek istiyorum, şuna bakın:

    Grafikleriniz böyle görünüyorsa bu makale tam size göre. Grafiklerinizi nasıl daha iyi hale getireceğinize dair bazı ipuçları paylaşacağımı düşündüm. Bu ipuçları, çizim yetenekleri ve deneyimlerinden bağımsız olarak herkes için faydalı olacaktır.

    "Her gün eskiz yapmak" veya "bir sanat müzesini ziyaret etmek" gibi ipuçları hevesli bir sanatçı için yararlı olabilir, ancak bu makale bir sanatçı için değil, insanların sizin bir kodlayıcı, programcı veya hobici olduğunuzu düşünmelerini nasıl sağlayacağınızla ilgilidir. matematik, bazı sanatsal yeteneklere sahiptir.

    Ayrıca, bu ipuçlarının hiçbiri (neredeyse) “pratik” gerektirmez, ancak pratik gerçek bir sanatçı için faydalıdır ve hatta gereklidir. Her zaman bir projenin son teslim tarihi şafak vakti yaklaşıyor gibi görünüyor ve ihtiyacınız olan tek şey birkaç lanet sprite.

    Bu hikayenin bir kısmı Photoshop kullanıcıları için de faydalı olacaktır çünkü bildiğim kadarıyla aynı kavramlar herhangi bir çizim programı için de geçerlidir ve burada bahsettiğim her şey için Gimp'te ve belki de kullandığınız diğer programlarda da benzer işlemler vardır. kullanarak.

    Bunlardan bazıları, hedefin 48 saat içinde anında bir oyun oluşturmak olduğu LudumDare yarışmasına ve diğer benzer yarışmalara katılanlara yöneliktir. Her ne kadar kendimi özellikle iyi bir oyun sanatçısı olarak görmesem de oyunlarım grafik kategorisinde iyi puanlar alıyor (ne yazık ki oynanışın katili beni atlatmaya devam ediyor). Bu örneklerin çoğu LD başvurularımdan geliyor ve bu deneyimlerin çoğu, bu yarışmalarda yarışarak ve son derece sıkı teslim tarihleri ​​altında sanat yaratmaya zorlanmaktan öğrendiğim şeyler. Dahası, kısa bir zaman çizelgesi veya sınırlı bir bütçeyle kaliteli grafikler (veya buna yakın bir şey) oluşturmaya çalışan herkes için çok değerli olmalıdırlar.

    Gördüğüm en yaygın hata ve kaçınılması en kolay hata. Çoğu bilgisayar çizim programının varsayılan paleti, DOS günlerine kadar uzanır (bu paletteki renkler ile 00'dan 15'e kadar dört baytlık ikili değerler arasındaki bağlantıyı fark edebilir misiniz? Tabii ki fark eder. Eğer göremezseniz' Bunu görmezsen gerçek bir sanatçı olursun.)

    Palet derken VGA zamanlarının 16 veya 256 renk paletini kastetmiyorum. Sadece oyununuz için koordineli bir sistemden bahsediyorum. İyi seçilmiş bir paletle başlarsanız, "karalamalarınız" estetik açıdan hoş ve hatta önceden tasarlanmış görünecektir.

    Peki bir paleti nerede bulabilirim? Sabah giyindiğimde renkleri bile seçemiyorum!

    Biraz renk teorisi çok işe yarar ve internette "renk teorisinin" ne olduğuna bakmak için on beş dakikanızı ayırırsanız, oyunun ne olduğunu tanımlayabilirsiniz. Ancak bunun için zamanınız yoksa, işte size harika işe yarayacak bazı ipuçları:

    Daha büyük bir oyun için oyun dünyasının seviyesi veya alanı başına farklı bir palet kullanmak isteyebilirsiniz. Kullanıcı arayüzü öğeleriniz ve ana karakteriniz nötr renklerle tasvir edilmişse veya bu paletlerin ortak bir ana rengi varsa, bunları seviyeler veya alanlar arasında eşit şekilde uygulayabilirsiniz.

    Bu örnekte, renklerin hepsinin çok benzer bir tonun farklı tonları olduğu, diğer renk şemalarının daha çeşitli olduğu ancak önemli olan renklerin birlikte iyi göründüğü "tek renkli" bir palet kullanılmaktadır.

    Kaynaklar:

    1. idee labs'tan MultiColr
      Bu harika sitenin iyi yanı, istediğiniz birkaç rengi ve daha sonra renkleri kullanabileceğiniz bir görseli seçerek bir palet oluşturabilmeniz ve bu paletten bir sürü fotoğraf elde edebilmenizdir.

    Çizemiyorum!..

    Belki de çizim yapamayacak kadar havalı bir insansın. Belki bunların hepsi kasıtlıdır. Bu doğru. İyi sanat yapmak yerine kötü sanat gerektiren bir tema seçin. Bu işe yaradı "Eskiz Savaşçısı" Ve "Boya Kalemi Fiziği" kağıt üzerine çizilmiş.

    Elinizde olanı kullanın. Masanızda bir şeyler mi var? Tüm zamanların en popüler oyunlarından birini yapmış olabilirsiniz "Masaüstü Kule Savunması".

    İnsanlar işin püf noktasını anlamaya başlıyorlar ama yaşayacak çok yılları yok. Yaratıcı olun... belki karakterleriniz kurabiyedir ve onları gerçekten pişirebilirsiniz. Veya bir zombi pastırması mutfağınıza saldırır. Ya da tıraş edilmesi gereken kıllı göğüs.

    Üçüncü İpucu: Basit Şekiller ve Siluetler

    Daire, Kare, Üçgen, Eşkenar Dörtgen, Yamuk, Paralelkenar vb. Alanlarını doğru bir şekilde nasıl hesaplayacağınızı biliyorsunuz, ancak onları çizmenin kötü sonuçlandığını biliyor musunuz? Elle birkaç şekil çizin, ardından gözler (karakter için) veya tekerlekler (araç için) veya başka şeyler ekleyin. Komik, saçma ve tamamen hatalı olabilirler.

    Ne kadar kahve içtiğinize bağlı olarak tamamen farklı şekillerde olabilirler. Herşey yolunda! Aslında bu iyi bir şey çünkü kusurlar ve farklılıklar "bireysellik" yaratıp onları canlandırıyor. Çizim programınızda şekil araçlarını kullanmayın, bu bir sprite ruh yok edicisidir. Ana hatlarını belirgin hale getirerek oyuncunun bunları görsel olarak ayırt etmesini kolaylaştırırsınız.

    Bir not: Bunu bir oyun yazma yarışması sırasında çözmeye çalışmayın. Neyi nasıl yapacağınızı tam olarak bilmeniz için gerçekleştirmeden önce her şeyi test edin. Çok zaman harcayacaksınız ama bir yarışma sırasında bu sadece 15-20 dakika sürebilir ve büyük bir fark yaratacaktır.

    Ayrıca modellerin dokuları bitene kadar pişirme konusunda acele etmeyin. "Pişirme" işlemini kaldıramayacak veya bunu iki kez yapamayacaksınız.

    On birinci ipucu: bir tablet satın alın

    Oyun sanatçısı olma gibi bir arzunuz olmasa bile, bilgisayarda sanat çizimleri yapıyorsanız bir tablet satın almanız gerekir. Büyük ya da pahalı olmasına gerek yok; Wacom'dan bir tablet satın alabilirsiniz. Çünkü fareyle çizim yapmak, kağıt üzerinde tuğlayla çizim yapmaya benzer.

    İlk kez tablet satın alan tanıdığım pek çok kişi onu kullanmakta yavaş davrandı. Aşağıda tabletinizden en iyi şekilde yararlanmanıza yardımcı olacak bazı ipuçları verilmiştir.

    • Tablet kontrol panelinde kalem hassasiyetini daha sıkı bir ayara yükseltin. Bu, çizim yaparken en iyi kontrolü sağlayacaktır.
    • Boş bir kağıt kullanarak çizim yapmak hissi tamamen değiştirir. Çeşitli kağıt türleri: ofis kağıdı, dergi sayfaları, kalın kağıt vb. — tablette çizim deneyimini tam olarak yaşamanıza yardımcı olacaktır. Bir şans ver.
    • Pratik. Hiçbir tavsiyemin pratik gerektirmediğini söylemeden önce yalan söylediğimi biliyorum. Şu egzersizleri deneyin:
      • Photoshop'ta arka arkaya on kare yapın ve bunları sıfırdan yüze kadar bir şeffaflık yarıçapı içinde siyahla doldurun. Altlarına on adet boş kare yapın. Ana kareleri hizalamak için alt kareleri gölgelendirmeyi deneyin. Diğer fırçaları deneyin ve kalemin basınç hassasiyeti ile pratik yapın.
      • Bir şeyler yazmayı deneyin, alfabeyi veya sadece metni. Daha büyük harf boyutlarıyla başlayın ve ardından aşağıya doğru ilerleyin. Bu, çizim yaparken elinizin tablete alışmasını ve gözlerinizin ekrana alışmasını sağlayacaktır.

    Günümüzün dokunmatik ekran tabanlı arayüzler çağında, bu teknolojiye dayalı oyunların nasıl çalıştığını anlamak için bir tablete sahip olmak faydalı hale geliyor. Her ne kadar fare teknolojisini karşılaştırırken bu yaklaşım farklı olmasa da.

    Bugünkü yazımda biraz CSS spritelarından bahsetmek ve aynı spriteları oluşturabileceğiniz bazı bağlantılar vermek istiyorum. Sprite kullanma tekniği hiç de yeni değil ve uzun süredir kullanılıyor, ancak yaratımlarının karmaşıklığı web yöneticilerini korkutuyor. Onlara yardımcı olmaya çalışalım...

    CSS sprite'ları nelerdir?

    Tüm simgelerinizi, bölücülerinizi, düğmelerinizi, oklarınızı ve diğer tasarım bileşenlerinizi gösteren büyük bir resim hayal edin. Siteyle birlikte yükleniyor, her şey her zamanki gibi. Tüm dosyalar için çok sayıda istek oluşturmaz, ancak tek bir istekle yürütülür. Serin? Şüphesiz. Yükleme sonrasında büyük resmin istenilen kısmı doğru yerde görüntülenir.

    İstatistikleri bir yerde gördüm (nerede olduğunu hatırlamıyorum, bu yüzden bağlantı vermeyeceğim) - vakaların% 5 ila 40'ı sayfaların kendisidir, geri kalanı isteklerin sunucu tarafından işlenmesidir. İstek sayısı azalırsa indirme hızının da orantılı olarak artacağını varsaymak mantıklıdır.

    Sprite kullanmanın artılarını ve eksilerini daha yakından inceleyelim:

    artıları sprite kullanarak:

    Eksileri bunlar teknolojilerdir:

    • Yerleştirme sırasında yalnızca görüntüyü değil, aynı zamanda tamamen uygun ve tanıdık olmayan parçanın konumunu da belirtmek gerekir.
    • sunucudaki yük arttı. Büyük bir resim, parçalar arasındaki "boşluklar" dikkate alınarak daha fazla RAM kaplar.
    • Bir simgeyi değiştirmek için tüm dosyayla uğraşmanız gerekecek ki bu pek uygun değil. Yine de belki böylesi daha iyidir

    Kim için neyin daha önemli olduğunu seçiyoruz - basitlik mi yoksa hız mı - ve yolumuza devam ediyoruz. Sunucudaki yük konusunda hiçbir şey yapılamıyorsa, düzen ve hareketli grafikleri değiştirmeyle ilgili sorunları çözecek araçlar vardır.

    Hayalet jeneratörleri- Prensip olarak aynı şemaya göre çalışan çevrimiçi hizmetler. Görüntü kümenizi yüklersiniz, hareketli grafik biçimini seçersiniz ve sistem bu dosya için görüntüyü ve CSS işaretlemesini oluşturur.

    Spritelar nerede yaratılır?

    Muhtemelen CSS sprite'ları oluşturmak için en eski araçtır. Ayırt edici bir özellik, arayüzün kullanışlı bir Rusça versiyonunun bulunmasıdır. Yalnızca görüntünün oluşturulması değil, aynı zamanda CSS kodu da son derece özelleştirilebilir. Genel olarak - mükemmel bir jeneratör, tavsiye ederim. Bu arada, hizmet ayrıca favicons oluşturabilir ve Unix sistemleri için erişim haklarını hesaplayabilir.

    CSS Sprite Oluşturucu

    Bu oluşturucu da oldukça iyidir, gerekli tüm ayarlara sahiptir ve önceki hizmete göre biraz daha küçük boyutlu bir çıktı dosyası oluşturur. Ayırt edici bir özellik, her görüntü için CSS kodunun uygun çıktısıdır.

    Oldukça işlevsel bir jeneratör, yalnızca normal bir hareketli grafik oluşturmanıza değil, aynı zamanda resimleri kendiniz hareket ettirmenize ve mümkün olduğunca kompakt bir şekilde düzenlemenize de olanak tanır. Artı - sıkıştırılmış CSS kodunun yanı sıra SASS kodunu da üretebilir.

    Şımarık CSS kodunun soyutlama düzeyini artırmak ve basamaklı stil sayfası dosyalarını basitleştirmek için tasarlanmış CSS tabanlı bir üst dildir.

    Bu hizmet, hareketli resim görüntüsü oluşturmaması açısından sunulan diğerlerinden farklıdır. Photoshop'ta veya başka bir yerde kendiniz oluşturabilir, buraya yükleyebilirsiniz; hizmet CSS kodu konusunda yardımcı olacaktır. Oldukça anlaşılır ve kullanıcı dostu bir arayüz. Makineye güvenmeden her şeyi kendi başına yapmayı sevenlere tavsiye ederim

    İyi bir jeneratör, onu oluşturmak için ihtiyacınız olan her şey mevcut. Tek olumsuz yanı, her görselin ayrı ayrı indirilmesi gerekmesi; toplu olarak indiremezsiniz. Aksi takdirde dikkate değer bir şey yok, sağlam bir ortalama.

    Hizmet HTML5 ile yazılmıştır ve yalnızca Chrome ve Firefox'ta çalışır, ancak bu tür hizmetlerin geliştirilmesi cesaret vericidir. İnternet yerinde durmuyor ve bu iyi, çok basit, minimum ayarlar. Ancak hızlı ve basit bir çözüm istiyorsanız bu jeneratör %100 uygundur.

    Gerçek Jedi için sprite oluşturucu Programı yükleyin, eski düzen ile CSS dosyasının yolunu belirtin; bu hizmet sizin için her şeyi yapacaktır. Pek çok özelliği var - resmi web sitesindeki belgeleri okumanızı öneririm.

    Neredeyse Spritebox'ın tam bir analogu, aynı zamanda yalnızca CSS kodunu elde etmek için de kullanılır; buradaki fark, burada öğenin kenarlığının seçiminin manuel olarak değil otomatik olarak gerçekleştirilmesidir, işlemin doğruluğu belirgin şekilde daha yüksektir. Yalnızca Chrome ve Firefox'ta çalışır

    Bu şekilde çalışan mükemmel bir hizmet - her zamanki gibi hazırlanmış hazır bir sayfaya gidin. Hizmet simgesine tıklayın (öncelikle bir yer imi ile yüklemeniz gerekir) ve işte bu kadar - hizmet bu sayfadaki tüm görüntüleri toplar ve kodlu bir hareketli grafik oluşturur. Çok kullanışlı, tam olarak neyin bir araya getirilmesi gerektiğine dair ayarlar var. Genel olarak - iyi bir hizmet.

    Çok basit ama anlaşılır ve kullanışlı bir jeneratör. Birleştirmek istediğiniz resimleri sürükleyin, istediğiniz gibi düzenleyin ve düğmeye basın; karakter ve kod hazır. Bu hizmetin dezavantajı yalnızca Chrome ve Ognelis'te çalışmasıdır.

    Hizmet yukarıda açıklanan SpriteMe'ye çok benzer, tek farkı burada tüm görüntüleri ve değiştirilmesi gereken CSS dosyasını manuel olarak yüklemeniz gerekir. Minimal ayarlar var, ancak işini iyi yapıyor.

    Umarım artık CSS spritelarıyla çalışmaktan korkmuyorsunuzdur ve projeleriniz daha da hızlı olacaktır.

  • gastroguru 2017