Browse Source

переиначить

master
parent
commit
7c84491a31
4 changed files with 61 additions and 45 deletions
  1. +2
    -1
      index.html
  2. +44
    -0
      игра/108.группы.js
  3. +11
    -34
      игра/110.колобок.js
  4. +4
    -10
      игра/111.изба.js

+ 2
- 1
index.html View File

@@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>К 0.2.0</title>
<title>К 0.3.0</title>
<script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/phaser@3.54.0/dist/phaser.min.js"></script>
<style> <style>
html, body { html, body {
@@ -27,6 +27,7 @@
<div id="родитель"></div> <div id="родитель"></div>
<script src="игра/001.мир.js"></script> <script src="игра/001.мир.js"></script>
<script src="игра/011.phaser.js"></script> <script src="игра/011.phaser.js"></script>
<script src="игра/108.группы.js"></script>
<script src="игра/109.управление.js"></script> <script src="игра/109.управление.js"></script>
<script src="игра/110.колобок.js"></script> <script src="игра/110.колобок.js"></script>
<script src="игра/111.изба.js"></script> <script src="игра/111.изба.js"></script>


+ 44
- 0
игра/108.группы.js View File

@@ -0,0 +1,44 @@
/*
*
* Реакции
*
*/


// // // //


СоздатьГруппыСущностей = мир =>
{
мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup();
мир.вещи = мир.сцена.add.group();
мир.враги = мир.сцена.add.group();
};


// // // //


НастроитьСтолкновениеГруппСущностей = мир =>
{
мир.сцена.physics.add.collider(мир.вещи, мир.каркас);
мир.сцена.physics.add.collider(мир.вещи, мир.платформы);
мир.сцена.physics.add.collider(мир.враги, мир.каркас);
мир.сцена.physics.add.collider(мир.враги, мир.платформы);
};


/*
*
* Последовательность
*
*/


мир.разобрать(`
создать сцену
создать группы сущностей
настроить столкновение групп сущностей
`);


+ 11
- 34
игра/110.колобок.js View File

@@ -21,23 +21,12 @@
// // // // // // // //




СоздатьГруппыСущностей = мир =>
{
мир.каркас = мир.сцена.physics.add.staticGroup();
мир.платформы = мир.сцена.physics.add.staticGroup();
мир.враги = мир.сцена.add.group();
};


// // // //


СоздатьКолобка = мир => СоздатьКолобка = мир =>
{ {
мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок"); мир.колобок = мир.сцена.physics.add.sprite(100, 500, "колобок");
мир.колобок.depth = 10; мир.колобок.depth = 10;
мир.колобок.body.setSize(50); мир.колобок.body.setSize(50);
// портит логику анимации.
// Портит анимацию прыжков!
//мир.колобок.setBounceY(0.1); //мир.колобок.setBounceY(0.1);


// Следить за колобком камерой. // Следить за колобком камерой.
@@ -74,26 +63,15 @@
// // // // // // // //




ОпределятьСтолкновениеКолобкаИВраговСГруппамиСущностей = мир =>
НастроитьСтолкновениеКолобка = мир =>
{ {
мир.сцена.physics.add.collider(мир.колобок, мир.каркас); мир.сцена.physics.add.collider(мир.колобок, мир.каркас);
мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы); мир.столкновениеПлатформы = мир.сцена.physics.add.collider(мир.колобок, мир.платформы);



мир.сцена.physics.add.collider(мир.враги, мир.каркас);
мир.сцена.physics.add.collider(мир.враги, мир.платформы);

var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
враг.setScale(5, 5).refreshBody();
враг.depth = 10;
мир.враги.add(враг);


var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги); var столкновениеВраги = мир.сцена.physics.add.collider(мир.колобок, мир.враги);
столкновениеВраги.overlapOnly = true; столкновениеВраги.overlapOnly = true;
столкновениеВраги.collideCallback = function(a, b) { столкновениеВраги.collideCallback = function(a, b) {
мир.уведомить("столкновение с врагом"); мир.уведомить("столкновение с врагом");
console.debug("столкновение с врагом");
}; };
}; };


@@ -157,7 +135,7 @@




ОтключитьСтолкновениеСПлатформами = мир => { ОтключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = false;
мир.столкновениеПлатформы.active = false;
}; };




@@ -165,19 +143,19 @@




ВключитьСтолкновениеСПлатформами = мир => { ВключитьСтолкновениеСПлатформами = мир => {
мир.столкновениеПлатформы.active = true;
мир.столкновениеПлатформы.active = true;
}; };




// // // // // // // //




ОстановитьВрагов = мир => {
var враги = мир.враги.getChildren();
for (var н in враги)
ОстановитьПередвижениеВещей = мир => {
var вещи = мир.вещи.getChildren();
for (var н in вещи)
{ {
var враг = враги[н];
враг.body.stop();
var вещь = вещи[н];
вещь.body.stop();
} }
}; };


@@ -193,10 +171,9 @@
загрузить ресурсы сцены загрузить ресурсы сцены
загрузить ресурсы колобка загрузить ресурсы колобка
создать сцену создать сцену
создать группы сущностей
создать колобка создать колобка
создать анимации колобка создать анимации колобка
определять столкновение колобка и врагов с группами сущностей
настроить столкновение колобка
изменили управление изменили управление
переместить колобка переместить колобка
столкновение с врагом столкновение с врагом
@@ -204,6 +181,6 @@
обновить сцену обновить сцену
анимировать колобка анимировать колобка
изменили анимацию колобка изменили анимацию колобка
остановить врагов
остановить передвижение вещей
`); `);



+ 4
- 10
игра/111.изба.js View File

@@ -152,18 +152,12 @@




СоздатьВрагов = мир => { СоздатьВрагов = мир => {

console.debug("создать врагов"); console.debug("создать врагов");
/*
var враг = мир.сцена.physics.add.sprite(150, 100, "основа");
//мир.враги.add(враг);

мир.сцена.physics.add.collider(враг, мир.каркас);
мир.сцена.physics.add.collider(враг, мир.платформы);
*/


//var враг = мир.враги.create(100, 100, "основа");//.setOrigin(0, 0);
//враг.setScale(часть.ширина, 1).refreshBody();
var враг = мир.сцена.physics.add.sprite(750, 100, "основа");
враг.setScale(5, 5).refreshBody();
враг.depth = 10;
мир.враги.add(враг);
}; };






Loading…
Cancel
Save