Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Другие темы раздела
JavaScript В html из файла https://www.cyberforum.ru/ javascript/ thread5098.html
Народ возник вопрос. мне нада чтоб html страница с помощью скрипта (лутше ява) в одно место подгружала из файла текст и он распознавался страницей как html код
Диалоговое окно с кнопками "да" и "нет" JavaScript
Подскажите как сделать, когда жмешь на картинку, что бы выходило диалоговое окно с кнопкоми да и нет, подтверждение действия.
JavaScript Исходник сапера на javascript
Помогите пожалуйста найти исходник игры сапер на javascript. Очень нужно. Заранее благодарю
JavaScript Нужен учебник по Js Дайте пожалуста Полный путёвый учебник по JavaScript со словарём со всеми функциями примерами и наворотами под несколько браузеров !!!!! Doberman@xaker.ru или ссылку!! Заранее огромное спасибо! https://www.cyberforum.ru/ javascript/ thread4236.html
JavaScript swfobject.js как его писать или дайте учебник(на русском) https://www.cyberforum.ru/ javascript/ thread4222.html
Помогите разобраться в сценарии с расшерение js, в частности хочу сделать менюшку что бы она отображалась когдта в браузере отключен запуск активного содержания окна и отоброжение рисунков Заранее...
JavaScript вопрос javascript
как задать исполнение скрипта в определенной ячейке таблицы текущего документа(сменяемый текст)...
Изменение размера окна -> изменение размера картинки JavaScript
Есть картинка на Homepage, как сделать так, что бы при изменении окна браузера размер картинки автоматически изменялся соответственно размерам окна.
JavaScript Ссылка на дочернее окно (javascript) Привет всем. Неподскажете как получить ссылку на дочернее окно из родительского (при отсуствие ссылки 'widow.open()') ? Проблема в следующем. Есть N-ное количество всплывающих окон открытых одно... https://www.cyberforum.ru/ javascript/ thread4105.html
JavaScript Технология AJAX или опять JS? https://www.cyberforum.ru/ javascript/ thread3489.html
Необходимо добавить на страницу таблицу с данными из текстового файла вида: 0|data1|data2|data3... 1|data1|... ... n|data1|... Мне нужно загнать все эти данные в двумерный массив. В PHP это...
JavaScript Ловля Enter'a c помощью удочки Javascript Два элемента формы (text,password). Юзер активировал text и ввёл, допустим, логин. Далее нужно при нажатии на Enter активировать пароль. https://www.cyberforum.ru/ javascript/ thread3331.html
Фрилансер
735 / 346 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
02.09.2016, 13:06 0

Обмен готовыми решениями

02.09.2016, 13:06. Просмотров 64934. Ответов 66
Метки (Все метки)

Ответ


Вращение https://jsfiddle.net/secm7gkj/1/
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function Point(x, y)
{
    this.x = x;
        this.y = y;
}
 
function RotatedRect()
{
    this.canvas = document.getElementById("c");
    this.context = this.canvas.getContext("2d");
        this.leftTopPoint = new Point(this.canvas.width / 2, this.canvas.height / 2);
        this.mousePoint = new Point(this.canvas.width / 2, this.canvas.height / 2);
        this.width = 70;
        this.height = 10;
        
        this.init();
    this.reDraw();
}
 
RotatedRect.prototype.init = function()
{   
    var self = this;
        this.canvas.addEventListener("mousemove", function(event)
        {
            self.mousePoint = self.getPointByMouse(event);
            self.reDraw();
        });
}
 
RotatedRect.prototype.reDraw = function()
{   
        this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
 
        var angle = Math.atan2(this.mousePoint.y - this.leftTopPoint.y, this.mousePoint.x - this.leftTopPoint.x) * 180 / Math.PI;
        this.context.save();
        this.context.beginPath();
        this.context.translate(this.leftTopPoint.x, this.leftTopPoint.y);
        this.context.rotate(angle * Math.PI / 180);
        this.context.translate(-this.leftTopPoint.x, -this.leftTopPoint.y);
        this.context.rect(this.leftTopPoint.x, this.leftTopPoint.y, this.width, this.height);
        this.context.fill();
        this.context.restore();
}
 
 
RotatedRect.prototype.getPointByMouse = function(event)
{
    var rect = this.canvas.getBoundingClientRect();
        var x = (event.clientX - rect.left);
        var y = (event.clientY - rect.top);
    return new Point(x, y);
}
 
var rotatedRect = new RotatedRect();
Добавлено через 14 часов 7 минут
Синхронный вызов в отдельном потоке.
Может пригодится, в случае написания конструкций наподобие:
выстрел, столкновение, смерть (ф-ции). поверх основного потока.

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
29
30
31
32
33
34
35
36
37
38
39
40
function Synchronization()
{
    this.isFree = true;
    this.currentNumber = 0;
    this.lastNumber = 0;
}
 
Synchronization.prototype.synchronizeCall = function (handler, timeInterval, pauseInMilliseconds) {
    var self = this;
    var number = this.lastNumber++;
    var syncTimerId = setInterval(function () {
        if (self.isFree == true && number == self.currentNumber) {
            self.isFree = false;
            self.currentNumber++;
            handler();
 
            clearInterval(syncTimerId);
 
            if (pauseInMilliseconds > 0) {
                self.waitFree(pauseInMilliseconds, timeInterval);
            }
            else {
                self.isFree = true;
            }
 
        }
    }, timeInterval);
}
 
Synchronization.prototype.waitFree = function (milliseconds, timeInterval)
{
    var self = this;
    var startTime = Date.now();
    var waitTimerId = setInterval(function () {
        if (Date.now() - startTime >= milliseconds) {
            self.isFree = true;
            clearInterval(waitTimerId);
        }
    }, timeInterval);
}
гипотетическое использование (рассматривать как псевдокод).
выстрел, столкновение, смерть (ф-ции). поверх основного потока будут работать последовательно
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function Game()
{
    this.shooterSync = new Synchronization();
    this.shooter = new Player();
    this.targetPray = new Player();
    this.graphics = new Graphics();
    this.init();
}
 
Game.prototype.init = function()
{
    var self = this;
    this.shooter.onMouseClick = function() 
    {
        self.shoot();   
        self.shock();
        self.kill();
    };
    this.graphics.init();
    this.graphics.addPlayer(this.shooter);
    this.graphics.addPlayer(this.targetPray);
}
 
Game.prototype.shoot = function()
{
    var self = this;
    var handler = function() {
        self.shooter.shoot();
    }
 
    this.shooterSync.synchronizeCall(handler, 100, 0);
}
 
Game.prototype.shock = function()
{
    var self = this;
    var handler = function() {
        self.targetPray.shock();
    }
 
    this.shooterSync.synchronizeCall(handler, 100, 0);
}
 
Game.prototype.kill = function()
{
    var self = this;
    var handler = function() {
        self.targetPray.kill();
    }
 
    this.shooterSync.synchronizeCall(handler, 100, 0);
}


Вернуться к обсуждению:
Обмен готовыми решениями
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2016, 13:06
Готовые ответы и решения:

Обмен готовыми решениями
Привет, мир! Предлагаю здесь обмениваться готовыми решениями, исключительно html + css. Итак,...

Обмен готовыми решениями
<?PHP echo getfilesize($_GET); // Функция для определения размера function...

Обсуждение класса постраничной навигации из темы "Обмен готовыми решениями"
Выделено из темы: https://www.cyberforum.ru/php/thread158262-page2.html Para bellum, может стоит...

Scanf с готовыми строками
Народ. Вопрос состоит в следующем: как применить scanf к уже введённой строке? Заранее спасибо за...

66
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.