Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
И целого heap'а мало
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
1

Запуск/перегрузка скрипта кнопкою

04.08.2014, 15:52. Показов 773. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На gh-pages
Решил поковыряться в js/canvas, в создании простых анимаций.
Сейчас есть простой инлайн в index.html
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    <canvas id='viewport' height='512' width='1024'></canvas>
    <button onclick='run()'>Run</button>
 
    <script type='text/javascript' charset='utf-8'>
    function run() {
            Game.initialize();
            Game.addRect();
            Game.run = function() {
                    setInterval(function() {
                                        Game.draw();
                                        Game.update();
                                }, 1000 / Game.fps);
            };
            Game.run();
    };
    </script>
и вот как всё инициализируется
Javascript
1
2
3
4
Game.initialize = function() {
        this.entities = [];
        this.context = document.getElementById('viewport').getContext('2d');
};
и сам квадратик
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function Rect() {
        // First is x, horizontal part, and y is y, vertical part.
        this.position = new Pair(0, 500);
        this.velocity = new Pair(5, -5);
        this.changed = true;
};
 
Rect.prototype.draw = function(context) {
        context.fillRect(this.position.first, this.position.second, 10, 10);
};
 
Rect.prototype.update = function() {
        if (this.position.second < 0) {
                this.velocity.second = 0;
                this.velocity.first = 0;
                changed = false;
        } else if (this.position.second > 500) {
                this.velocity.first  = 0;
                this.velocity.second = 0;
                changed = false;
        } else if (this.position.second > 0) {
                this.velocity.second += 0.07;
 
                this.position.first += this.velocity.first;
                this.position.second += this.velocity.second;
                changed = true;
        }
};
Затык в том, что новая начальная скорость равна старой конечной.
Полуркав, нашёл что-то похожее на решение: через dom удалять canvas, а потом снова аппендить, но выглядит как-то костыльно и не заработало.
Может кто-нибудь пнуть в верном направлении? Заранее спасибо :-)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2014, 15:52
Ответы с готовыми решениями:

Запуск скрипта с задержкой
Всем привет как запустить серверную функцию по js таймауту? пример: юзер перешел со стр. А на...

Запуск скрипта по кнопке
есть страница index.php в ней скрипт &lt;iframe src='p_h.php' width='990px' height='990px'&gt; как...

Запуск скрипта на активного таба
День добрый структура &lt;div class=&quot;section&quot;&gt; &lt;ul class=&quot;tabs&quot;&gt; &lt;li...

Запуск скрипта из адресной строки
Всем хай. Возникла проблема: не получается запустить скрипт из адресной строки. Есть скрипт:...

2
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
05.08.2014, 10:40 2
Andrej, может просто при инициализации game обновлять и rect.velocity. он ведь у тебя нигде не обновляется, поэтому и хранится старое значение. Ты ведь когда увеличиваешь его, одновременно присваиваешь новое значение
Можно сделать так:
Javascript
1
2
3
4
5
Game.initialize = function () {
        this.entities = [];
        this.context = document.getElementById('viewport').getContext('2d');
        Rect.velocity = new Pair(5, -5);// вот тут присваиваем начальное значение при новом запуске
}
Добавлено через 1 минуту
Andrej, а вообще немного странный стиль письма. Без инициализации game, как объекта, функция с прототипами, которая якобы конструктор, но на самом деле нет ни одного экземпляра
1
И целого heap'а мало
96 / 57 / 17
Регистрация: 31.07.2014
Сообщений: 291
05.08.2014, 17:21  [ТС] 3
Thisman, честно перепиливаю сворованный код =)
А как оказалось, надо было изменить конструктор Game (после плюсов жаваскприптовый ооп немного ломает мозг).
0
05.08.2014, 17:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2014, 17:21
Помогаю со студенческими работами здесь

Запуск скрипта каждый понедельник в 6 утра
есть задача запускать скрипт php каждый понедельник в 6 утра. как это можно реализовать на js....

Запуск скрипта написанного в текстовом поле
Решил написать &quot;велосипед&quot;. Понятно, что уже что-то подобное существует, но в образовательных целях...

Запуск скрипта при перезагрузке страницы
&lt;p&gt; Signatures gathered: &lt;span id=&quot;signatures&quot;&gt;000000000&lt;/span&gt; &lt;br&gt; &lt;button...

Запуск скрипта при загрузке страницы
Подскажите пожалуйста как запустить скрипт не с помощью кнопки, а сразу после загрузки страницы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru