Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Jak zrobić palącą się pochodnie w Phaser?


Rekomendowane odpowiedzi

Opublikowano
Poradnik pochodzący z Polskiego Supportu Biblioteki Phaser http://phaser-polska.pl

 

-------------------------------------------------------------------------------------------------------------------------------------------------

 

Tym razem pokażę wam przykład jak zrobić palącą się pochodnię wykorzystując emiter cząstek.

 

Do tego przykładu potrzebny nam będzie arkusz sprite'ów przedstawiający palący się ogień w kilku klatkach:



 

Przykład ten można wykorzystać również do zrobienia ogniska lub innego ognia.

 

Tutaj znajduje się demo: http://demo.phaser-polska.pl/torch/

 


 

A poniżej jest kod z odpowiednimi komentarzami:

 



<!DOCTYPE html><html>
<head>
<title>Pochodnia - Demo Phaser (Polska)</title>
<script src="phaser.js"></script>
<script>
var game = new Phaser.Game(800, 600, Phaser.CANVAS, '', {preload: preload, create: create});


function preload() {
game.load.spritesheet('fire', 'fire2.png', 64, 64);
game.load.spritesheet('torch', 'torch.png');
}


function create() {


fireX = game.world.centerX; //ustawiamy pozycję ognia
fireY = game.world.centerY;


var emitter = game.add.emitter(fireX, fireY, 50); //dodajemy emiter cząstek
emitter.makeParticles('fire', [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11]); //tworzymy nowy zestaw cząstek z arkusza sprite'ów "fire"
emitter.gravity = -150; //ustawiamy grawitację - dzięki temu ustalimy w którą stronę mają być emitowane cząski ognia (oczywiście w górę)
emitter.minRotation = 0; //wyłączymy rotację czastęk (grafika ognia nie powinna sie obracać.
emitter.maxRotation = 0;
emitter.setAlpha(1, 0, 2000); //ustawiamy kanał alpha, dzięki czemu każda z cząstek ognia zniknie po jakimś czasie
emitter.setScale(0.5, 1.2, 0.5, 1.2, 2500, Phaser.Easing.Cubic.Out);
emitter.setYSpeed(10, 25); // ustawiamy prędkość, aby ogień był bardziej zróżnicowany - zalecam dobrać eksperymentalnie
emitter.setXSpeed(0, 0);
emitter.start(false, 10000, 50); // włączamy emitowanie cząstek ognia


var torch = game.add.sprite(fireX - 26, fireY + 10, 'torch', 3); //dodajemy sprite pochodni




}
</script>
</head>
<body>


</body>
</html>

gamedevmania.com

Opublikowano

Pierwszą cześć tego zestawu TuTów przeleciałem tak od góry o dołu zatrzymując się jedynie na fragmentach, ale teraz widzę, że to nawet bardzo ciekawe! :D

Opublikowano

Tworzenie gier zawsze jest ciekawe, a z biblioteką Phaser jest to dodatkowo przyjemne i łatwe również dla początkujących.

gamedevmania.com

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...