|
|
@@ -354,7 +354,49 @@ |
|
|
|
скорость: 375, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
кучаСтрел: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1270, |
|
|
|
y: 405, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleX: 25, |
|
|
|
scaleY: 2, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
лук: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1280, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
пускСтрелы: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1270, |
|
|
|
y: 160, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
границаПолётаСтрелы: { |
|
|
|
родитель: мир.стрелы, |
|
|
|
тип: "платформа", |
|
|
|
x: 1830, |
|
|
|
y: 200, |
|
|
|
texture: "основа", |
|
|
|
originX: 0, |
|
|
|
originY: 0, |
|
|
|
scaleY: 20, |
|
|
|
visible: false, |
|
|
|
}, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
@@ -480,30 +522,18 @@ |
|
|
|
// // // // |
|
|
|
|
|
|
|
|
|
|
|
СоздатьСтрелы = мир => |
|
|
|
НастроитьСтрелы = мир => |
|
|
|
{ |
|
|
|
мир.пфСтрел = мир.сцена.physics.add.staticGroup(); |
|
|
|
var куча = мир.пфСтрел.create(1270, 405, "основа").setOrigin(0, 0); |
|
|
|
куча.setScale(25, 2).refreshBody(); |
|
|
|
var куча = мир.узелСцены("кучаСтрел"); |
|
|
|
куча.body.checkCollision.down = false; |
|
|
|
куча.setVisible(false); |
|
|
|
|
|
|
|
мир.пфЛук = мир.пфСтрел.create(1280, 200, "основа").setOrigin(0, 0); |
|
|
|
мир.пфЛук.body.checkCollision.down = false; |
|
|
|
мир.пфЛук.setVisible(false); |
|
|
|
|
|
|
|
var пуск = мир.пфСтрел.create(1270, 160, "основа").setOrigin(0, 0); |
|
|
|
пуск.setVisible(false); |
|
|
|
|
|
|
|
мир.пфОкно = мир.пфСтрел.create(1830, 200, "основа").setOrigin(0, 0); |
|
|
|
мир.пфОкно.setScale(1, 20).refreshBody(); |
|
|
|
мир.пфОкно.setVisible(false); |
|
|
|
var лук = мир.узелСцены("лук"); |
|
|
|
лук.body.checkCollision.down = false; |
|
|
|
var пуск = мир.узелСцены("пускСтрелы"); |
|
|
|
|
|
|
|
// Определение прыжка по стрелам. |
|
|
|
мир.сцена.physics.add.collider(мир.колобок, куча, function(a, b) { |
|
|
|
if (мир.колобок.body.touching.down) { |
|
|
|
мир.состояниеКолобка.прыжокПоСтрелам = true; |
|
|
|
console.debug("прыжок по стрелам"); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
@@ -514,7 +544,6 @@ console.debug("прыжок по стрелам"); |
|
|
|
{ |
|
|
|
мир.пускСтрелы = true; |
|
|
|
мир.уведомить("пуск стрелы"); |
|
|
|
console.debug("пуск стрелы"); |
|
|
|
} |
|
|
|
}; |
|
|
|
стПуск.overlapOnly = true; |
|
|
@@ -537,29 +566,27 @@ console.debug("пуск стрелы"); |
|
|
|
мир.сцена.physics.add.collider(мир.стрела, мир.платформы); |
|
|
|
|
|
|
|
// Определение заряда стрелы. |
|
|
|
var стЛук = мир.сцена.physics.add.collider(мир.стрела, мир.пфЛук); |
|
|
|
стЛук.collideCallback = function заряд(a, b) { |
|
|
|
var лук = мир.узелСцены("лук"); |
|
|
|
var стЛук = мир.сцена.physics.add.collider(мир.стрела, лук); |
|
|
|
стЛук.collideCallback = function(a, b) { |
|
|
|
if (мир.стрела.body.touching.down && !мир.стрелаЗаряжена) |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = true; |
|
|
|
мир.уведомить("стрела заряжена"); |
|
|
|
console.debug("стрела заряжена"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// Определение столкновения с окном. |
|
|
|
var стОкно = мир.сцена.physics.add.collider(мир.стрела, мир.пфОкно); |
|
|
|
var граница = мир.узелСцены("границаПолётаСтрелы"); |
|
|
|
var стОкно = мир.сцена.physics.add.collider(мир.стрела, граница); |
|
|
|
стОкно.collideCallback = function(a, b) { |
|
|
|
if (мир.стрелаЗаряжена && мир.пускСтрелы) |
|
|
|
{ |
|
|
|
мир.стрелаЗаряжена = false; |
|
|
|
мир.пускСтрелы = false; |
|
|
|
мир.уведомить("удар стрелы об окно"); |
|
|
|
console.debug("удар стрелы об окно"); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
console.debug("стрела.x", мир.стрела.x); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -622,7 +649,16 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
|
|
|
|
ПуститьСтрелу = мир => |
|
|
|
{ |
|
|
|
мир.стрела.setVelocityX(1200); |
|
|
|
function randInt(min, max) |
|
|
|
{ |
|
|
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random#getting_a_random_integer_between_two_values |
|
|
|
min = Math.ceil(min); |
|
|
|
max = Math.floor(max); |
|
|
|
return Math.floor(Math.random() * (max - min)) + min; |
|
|
|
} |
|
|
|
var скорость = randInt(1100, 1300); |
|
|
|
|
|
|
|
мир.стрела.setVelocityX(скорость); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
@@ -712,7 +748,7 @@ console.debug("стрела.x", мир.стрела.x); |
|
|
|
позволить платформам пропускать прыжки |
|
|
|
настроить пауков |
|
|
|
настроить мышей |
|
|
|
создать стрелы |
|
|
|
настроить стрелы |
|
|
|
создать стрелу |
|
|
|
обновить сцену |
|
|
|
анимировать пауков |
|
|
|