|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357 |
- // // // //
- // Основа избы
- // // // //
-
-
- мир.разобрать({
- заголовок: "Колобку здесь быть",
- изображения: {
- дом: {
- ширина: 2000,
- высота: 600,
- вид: {
- background: "url(р/сцены/изба.jpg)",
- },
- },
- },
- объекты: {
- полСлева: {
- x: 0,
- y: 580,
- ширина: 355,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- },
- полКрышки: {
- x: 357,
- y: 580,
- ширина: 135,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- },
- полСправа: {
- x: 495,
- y: 580,
- ширина: 1505,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- },
- стол: {
- x: 1253,
- y: 420,
- ширина: 610,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- подоконник: {
- x: 1673,
- y: 375,
- ширина: 200,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- angle: -0.0698,
- collisionFilter: {
- category: 2,
- },
- },
- },
- },
- });
-
-
-
- // // // //
- // Игрок
- // // // //
-
- мир.разобрать({
- изображения: {
- колобок: {
- //x: 100,
- x: 1180,
- y: 250,
- ширина: 70,
- высота: 70,
- вид: {
- background: "url(р/колобок/колобок_неподвижен.png)",
- "z-index": 10,
- },
- },
- },
- объекты: {
- кирпич: {
- x: 1170,
- y: 350,
- высота: 20,
- ширина: 40,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- isStatic: false,
- inertia: Infinity,
- },
- },
- },
- игрок: {
- объект: "кирпич",
- скорость: [5, 12],
- клавиши: ["ArrowLeft", "ArrowRight", "ArrowUp"],
- },
- слежение: {
- колобок: {
- объект: "кирпич",
- изображение: "колобок",
- смещение: [-35, -65],
- скорость: 1,
- },
- камера: {
- объект: "кирпич",
- скорость: 0.1,
- },
- },
- });
-
- // // // //
- // Платформы и объекты печи
- // // // //
-
- мир.разобрать({
- объекты: {
- фундаментПечи: {
- x: 570,
- y: 470,
- ширина: 550,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка1: {
- x: 660,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка2: {
- x: 767,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полка3: {
- x: 855,
- y: 335,
- ширина: 40,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- полкаСамовара: {
- x: 975,
- y: 355,
- ширина: 70,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- лежанкаПечки: {
- x: 600,
- y: 242,
- ширина: 330,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- основаниеТрубыПечки: {
- x: 937,
- y: 175,
- ширина: 130,
- высота: 10,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- //display: "none",
- },
- физика: {
- collisionFilter: {
- category: 2,
- },
- },
- },
- самовар: {
- x: 650,
- y: 300,
- ширина: 70,
- высота: 120,
- вид: {
- background: "url(р/вещи/самовар.png) no-repeat scroll 0% 0% / contain",
- },
- физика: {
- isStatic: false,
- //inertia: Infinity,
- },
- },
- },
- });
-
-
- // // // //
- // Подкидывание стрелы
- // // // //
-
-
- мир.подкидываниеСтрелы = {
- сенсор: null,
- стрела: null,
- подкинули: false,
- };
-
- мир.отладка = {
- сенсор: null,
- стрела: null,
- срабатывание: false,
- };
-
- мир.разобрать({
- объекты: {
- сенсор: {
- x: 1280,
- y: 400,
- ширина: 120,
- вид: {
- background: "url(р/отладка/основа.jpg)",
- display: "none",
- },
- физика: {
- isStatic: true,
- isSensor: true,
- },
- },
- стрела: {
- x: 1230,
- y: 350,
- высота: 30,
- ширина: 200,
- вид: {
- display: "inline-block",
- background: "url(р/вещи/стрела.png) no-repeat scroll 0% 0% / contain",
- transform: "scaleX(-1)",
- },
- физика: {
- isStatic: false,
- inertia: Infinity,
- collisionFilter: {
- category: 4,
- },
- },
- },
- },
- столкновения: {
- стрела: {
- объекты: ["кирпич", "сенсор"],
- действие: "возможноПодкинутьСтрелу",
- },
- },
- действия: {
- подкинутьСтрелу: [
- () => { Matter.Body.setVelocity(мир.объекты.тела.стрела, { x: 0, y: -мир.игрок.приземление.скорость }); },
- ],
- возможноПодкинутьСтрелу: [
- () => {
- мир.отладка.сенсор = мир.физика.движок.timing.timestamp;
- },
- "вывестиОтладку",
- ],
- игрокНачалПрыжок: [
- () => {
- мир.отладка.сенсор = null;
- мир.отладка.стрела = null;
- мир.отладка.срабатывание = false;
- },
- ],
- игрокПриземлился: [
- () => { console.debug("приземлились со скоростью", мир.игрок.приземление.скорость); },
- () => {
- мир.отладка.стрела = мир.физика.движок.timing.timestamp;
- },
- "вывестиОтладку",
- ],
- вывестиОтладку: [
- () => {
- if (
- мир.отладка.срабатывание ||
- !мир.отладка.стрела ||
- !мир.отладка.сенсор ||
- Math.abs(мир.отладка.стрела - мир.отладка.сенсор) > 0.00001 ||
- Math.abs(мир.объекты.тела.стрела.velocity.y) > 0.00001
- ) {
- return;
- }
- мир.отладка.срабатывание = true;
- мир.действия.совершить("подкинутьСтрелу");
- console.debug("раз", мир.отладка.сенсор, мир.отладка.стрела);
- },
- ],
- },
- });
|