Суббота, 18.05.2024
Мой сайт
Меню сайта
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Главная » 2016 » Сентябрь » 24 » Popcorn
22:03
Popcorn

Popcorn

Несколько лет назад у меня создалось впечатление, что я со всех этих приходов, расходов и остатков по счетам считаемых с использованием самых разных языков начинаю тупеть. Т.е понятно, что ВУЗ разрабатывает мозги. И этого ещё на какой-то период хватает. Но не навсегда же. 
А что такое мышление? Это способность делать что-то необычное, искать какие-то решения но при том, что рыться в памяти бесполезно. Именно этот поиск аналогов в прошлом опыте может заменить мышление. В особо клиническом случае человек просто натуральный дурак, но сознание очень быстро бегает по памяти и выискивает там какой-то аналог ситуации и выдают полученное там же решение. Часто решение правильное потому сразу и не видно что дурак.
Т.е мне нужно было что-то что к приходам, расходам не имеет никакого отношения. И я решила написать… игрушку – аналог старого Popcorn-a/
https://youtu.be/gNNQYuKK2sY

… Только мячик от пола отскакивает так же как и от ракетки чтобы проще тестировать было.
На самом деле изображение конечно больше:

Все размеры в пикселях. Слева сверху для ориентировки показано как выглядят 100px.
Чтобы получить 320*240px как в видео надо ввести так:

… и нажать кнопку «Рисовать».
Кнопка «Двинуть шар» перемещает шар в следующее положение. Т. е было так:

а стало так:

По кнопке «Запуск» шар начинает летать, пока его не установят кнопкой «Пауза»:

Перемещение ракетки -  «штуки» - кнопки «Вправо» и «Влево» на клавиатуре.
Сектор определяет форму ракетки, которая на самом деле «сделана» из круга:

… т.е угол отражения определяется по касательной к кругу в данной точке.
Когда я это писала у меня из каких-то загадочных глубин сознания вылезло, что сумма углов падения и отражения равняя 90 градусов… Вначале так и летало. Очень своеобразно выглядит (с).
Номер уровня задаёт другой вид расположения кирпичей:

Тут появляются жёлтые – неразбиваемые кирпичи, а при игре это так:
https://youtu.be/fWIpPhd-rew

И тут явно что-то недописано (шар пропадает, останавливается и т.д.). Разбираться сейчас естественно не буду.
Написано это естественно в виде объекта popcorn.js. Всё вместе лежит тут:
https://youtu.be/fWIpPhd-rew

Вид уровней задаётся тут:
// Уровни:
PC.prototype.get_level = function(w,h,num)
{
  var i,j,x0,y0;
  this.bricks = [];
  this.bricks_count = 0;
  x0=0;
  y0=0;
 
  //!!!!!!!!!!! Кол-во кирпичей - w, кол-во рядов - h:
  if (w==10 && h ==4)
    {
        if (num ==1)  // номер уровня
            {
            var m = [
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  0, 0, 1,  1, 1, 1,  1]
                    ];
            }   // num = 1
    }   // w=10, h = 3
   
  if (w==10 && h ==5)
    {
        if (num ==1)
            {
            var m = [
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  0, 0, 1,  1, 1, 1,  1]
                    ];
            }   // num = 1
         if (num ==2)
            {
            var m = [
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  0, 0, 0,  1, 1, 1,  1],
                  [1, 1, 1,  0, 0, 0,  0, 1, 1,  1],
                  [1, 1, 1,  0, 0, 0,  0, 1, 1,  1],
                  [2, 2, 2,  2, 0, 0,  2, 2, 2,  2]
                    ];
            }   // num = 2  
    }   // w=10, h = 5
   
   
    if (w==10 && h ==10)
    {
        if (num ==1)
            {
            var m = [
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1]
                    ];
            }   // num = 1
    }   // w=10, h = 3
   
    for (j=0;j<h;j++)
        {
        x0=0;
        for (i=0;i<w;i++)                                     
            {
            this.bricks[this.bricks_count] = new BRICK(x0,y0,m[j][i],0, this);
            this.bricks_count++;
            x0+=this.def_brick_w;
            }  // for i
        y0+=this.def_brick_h;
        }
}
… Т.е if по количеству кирпичей в ряду, рядов и номерам уровней. 0 – нет кирпича, 1 – обычный разбиваемый кирпич, 2 – неразбиваемый кирпич.
Если я например для варианта ширина 10, рядов 5 заменю 0 на 2, а единицы первого ряда на 0, т.е это:
            var m = [
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  0, 0, 1,  1, 1, 1,  1]
                    ];
            }
… на вот это:
            var m = [
                  [0, 0, 0,  0, 0, 0,  0, 0, 0,  0],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  1, 1, 1,  1, 1, 1,  1],
                  [1, 1, 1,  2, 2, 1,  1, 1, 1,  1]
                    ];
            }
… то будет так:

Этих уровней для разного количества кирпичей можно наделать сколько угодно а потом на всех возможных вариантах надо проверять правильность работы игрушки.
p.s
В 2010 году было настолько жарко, что я даже не поленилась и купила книгу Дулова:
http://akostina76.ucoz.ru/load/2-1-0-98

В курсе лекций было про перемещение циклонов. Посмотрела, поняла, что процессы явно зашли далеко, т.е на факультете всё было очень просто и красиво, а теперь вообще никак. И отложила в сторону.
А потому осенью 2014 была вертушечная тематика:
http://akostina76.ucoz.ru/publ/7-1-0-12#Vertushka

… которая заставила скрипя мозгами хоть какие-то синусы порисовать.
А осенью 2015 мне удалось (к полному моему недоумению!) вполне успешно расшифровать оттуда даже вот это:
http://akostina76.ucoz.ru/publ/4-1-0-33
… а не только муссоны с пассатами чуть раньше, летом:
https://www.facebook.com/notes/904946619570904?pnref=story

Из чего выводы: за состоянием головы, конечно следить надо. Привычная рутина, действительно, отупляет. Но при желании и если есть на чём мозги тренировать они неплохо разрабатываются и приводятся во вполне годное состояние.

 

Просмотров: 189 | Добавил: akostina76 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Календарь
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz