This is a documentation for Board Game Arena: play board games online !

Извор: Board Game Arena
Пређи на навигацију Пређи на претрагу

Овервиеw

Боард Гаме Арена ис усинг ЦСС 3Д феатурес то провиде а басиц 3Д виеw оф тхе гамес.

Тхис ис нот а "100% реал" 3Д ас тхис ис верy диффицулт то плаy wитх реал 3Д модел wитх ЦСС, бут мост оф тхе тиме ит провидес а сатисфyинг 3Д виеw оф тхе гаме.

Тхе објецтиве оф 3Д ис то провиде а нице виеw оф тхе гаме : 90% оф тхе тиме, 2Д ис море суитабле фор плаyинг. Со wе дон'т форце девелоперс то маке суре гамес цан бе плаyед ин 3Д : тхис ис јуст а "бонус".

Енаблинг 3Д

3Д ис енаблед бy дефаулт фор yоур гаме.

Yоу цан цлицк он тхе "3Д" буттон ат тхе топ ригхт анд сее yоур гаме ин 3Д.

Иф yоу дон'т wант то аллоw плаyерс то усе 3Д wитх yоур гаме, yоу цан адд тхис то yоу "гамеинфос.инц.пхп" филе :

'енабле_3д' => фалсе,

Детецтинг 3Д

Wхен 3Д ис "он", БГА аддс ЦСС цласс "моде_3д" то тхе бодy елемент.

Ин ЦСС, yоу схоулд префиx алл yоур 3Д моде специфиц дирецтивес бy ".моде_3д".

 .mode_3d .board {
     overflow: visible;
 }

Ин Јавасцрипт, yоу цан детецт 3Д бy усинг тхе фоллоwинг :

 if( this.control3dmode3d )
 {
    // Only executed in 3d mode
 }

Буилт-ин 3Д енханцементс

БГА ис доинг соме буилт-ин 3Д енханцементс wитх yоур 3Д адаптатионс, со yоур адаптатион wилл хаве соме 3Д еффецтс wитхоут анy еффортс :

  • Wхен еxецутинг а слидеТоОбјецт, а слидеТоОбјецтПос ор а слидеТемпорарyОбјецт, БГА ис мовинг тхе објецтс вертицаллy (уп, тхен доwн).
  • Ит алсо хаппенс wхен мовинг елементс оф а Стоцк модуле, ор то а Зоне модуле.


Енханце yоур адаптатион фор 3Д

Усе З аxис

Усинг ЦСС трансформ: транслатеЗ, yоу цан транслате yоур ХТМЛ елементс алонг тхе З аxис. Еxампле :

 .floating_element {
     transform: translateZ( 20px );  /* This element is going to float 20px above the surface */
 }

Тхе фрамеwорк wилл адд тхе фоллоwинг то алл yоур дивс:

     transform-style: preserve-3d; 

Со тхеy wилл кееп тхеир поситион ин 3Д спаце релативе то отхер елеменс wитх тхе трансформатион дефинед. Ноте тхат соме ЦСС артифацтс цан бреак тхе цсс инхеританце оф тхе "пресерве-3д" лике "оверфлоw:ауто"


Ат анy момент, yоу цан кноw тхе З поситион оф ан елемент фром јавасцрипт усинг :

 this.getComputedTranslateZ( html_element );

Усе пре-буилд БГА 3Д ЦСС цлассес

Бy аддинг тхе фоллоwинг цлассес то yоур објецтс, тхеy wилл лоок ницер ин 3Д:

  • тхицкнесс: адд а (3пx) блацк тхицкнесс то yоур ХТМЛ елемент.
  • роундтхицкнесс: (то бе усед wитх тхицкнесс) иф yоур елемент ис а цирцле, yоу схоулд адд роундтхицкнесс со yоур елемент тхицкнесс цан бе а цирцле тоо.
  • wхитетхицкнесс: (то бе усед wитх тхицкнесс) иф yоу префер то хаве а wхитетхицкнесс инстеад оф блацк.
  • флоатингабове: маке yоур елемент "флоат" 10пx абове тхе сурфаце, wитх а нице схадоw.
  • роундфлоатингабове: (то бе усед wитх флоатингабове) иф yоур елемент ис а цирцле, усе роундфлоатингабове ин аддитион то флоатингабове.


Ноте: иф yоу фоунд соме генериц ЦСС тхат маy хелп соме отхер девелоперс фор 3Д енханцементс, плеасе сенд ит то ус со wе цан адд ит тхере.


Сеттинг тхе дефаулт поинт оф виеw анд енаблинг 3д бy дефаулт

Yоур гаме маy реqуире то усе 3Д моде енаблед бy дефаулт анд алсо wитх а цертаин цустом дефаулт ПоинОфВиеw. Yоу цан ацхиеве тхис сеттинг ин yоур цонструцтор сецтион оф yоур гаме:


    if (!dojo.hasClass("ebd-body", "mode_3d")) {
       dojo.addClass("ebd-body", "mode_3d");
       dojo.addClass("ebd-body", "enableTransitions");
       $("globalaction_3d").innerHTML = "2D";   // controls the upper right button 
       this.control3dxaxis = 30;  // rotation in degrees of x axis (it has a limit of 0 to 80 degrees in the frameword so users cannot turn it upsidedown)
       this.control3dzaxis = 0;   // rotation in degrees of z axis
       this.control3dxpos = 100;   // center of screen in pixels
       this.control3dypos = 300;   // center of screen in pixels
       this.control3dscale = 1.4;   // zoom level, 1 is default 2 is double normal size, 
       this.control3dmode3d = true ;  			// is the 3d enabled	
       $("game_play_area").style.transform = 
           "rotatex(" + this.control3dxaxis + "deg) translate(" + this.control3dypos + "px," + this.control3dxpos + "px) rotateZ(" + this.control3dzaxis + "deg) scale3d(" + this.control3dscale 
           + "," + this.control3dscale + "," + this.control3dscale + ")";
    }
Преузето из „http:///index.php?title=3D&oldid=2555