powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите разобраться с пин-понгом
25 сообщений из 38, страница 1 из 2
Помогите разобраться с пин-понгом
    #39143031
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сделал примитивное движение шарика и отскок от стенки https://jsfiddle.net/ut26sh3w/4/

Задался вопросом об угле падения и отражения, нашёл готовый пин-понг https://jsfiddle.net/qk0pk06x/1/ но довольно сложный с canvas. Вопроса пока два простых:
1. Как определить угол когда шарик сталкивается с ракеткой (отражаем на противоположный)
2. Как задать случайный угол в первый раз в момент запуска шара (как вообще в js работать с векторами и движением по ним без известной конечной точки)?
3. Проверять столкновение шарика с чем-либо (ракеткой) нужно каждый тик? (1/1000) во время полёта или при достижении координат где может быть ракетка?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143037
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FazatronЯ сделал примитивное движение шарика и отскок от стенки https://jsfiddle.net/ut26sh3w/4/

Задался вопросом об угле падения и отражения, нашёл готовый пин-понг https://jsfiddle.net/qk0pk06x/1/ но довольно сложный с canvas. Вопроса пока два простых:
1. Как определить угол когда шарик сталкивается с ракеткой (отражаем на противоположный)
2. Как задать случайный угол в первый раз в момент запуска шара (как вообще в js работать с векторами и движением по ним без известной конечной точки)?
3. Проверять столкновение шарика с чем-либо (ракеткой) нужно каждый тик? (1/1000) во время полёта или при достижении координат где может быть ракетка?

По порядку:
1. Если задать движение шарика не константами типа (2,1), а переменными (dx, dy), то ответ при наличии листка и ручки становится очевиден: при отражении от горизонтальной поверхности новое смещение будет равно (dx, -dy), а от вертикальной (-dx, dy). При отражении от скошенных поверхностей сложнее малёк. но это же арканоид, или как там его правильно ))
2. random одной из координат (минимум и максимум рандома позволят контролировать границы случайности угла).
3. зависит от того, может ли повлиять ввод пользователя на результат. Если не может, то в момент отражения от ракетки можно сразу посчитать позицию, в которой окажется шарик при столкновении (или в которой должна находиться ракетка, что бы отбить шарик). Если же возможны манипуляции шариком при полёте - лучше считать каждый тик (если конечно нету телепатических способностей).
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143049
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю, немного понятнее, но не совсем. Летит шарик и достигает стены, в тот момент когда он достиг стены он статичен, выходит, надо определить (dx, dy) не те которые у него сейчас а те которые были микросекунду назад?
Далее во время отскока можно определить конечную точку (куда он полетит) а можно направить по вектору? Какой вариант лучше и как рассчитать конечную точку или вектор я не очень понял...
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143130
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЛетит шарик и достигает стены, в тот момент когда он достиг стены он статиченчо за бред? статичен это когда dx и dy равны нулю, а они не равны нулю по определению.
авторнадо определить (dx, dy) не те которые у него сейчас а те которые были микросекунду назад?это константы, в любой момент времени их значение одно и то же, только при достижении стенки знак меняется.

авторДалее во время отскока можно определить конечную точку (куда он полетит) а можно направить по вектору?русским же по белому написано: поменять знак. всё.
вот код отскока от вертикальной стенки во второй ссылке:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// If ball strikes the vertical walls, invert the 
		// x-velocity vector of ball
		if(ball.x + ball.r > W) {
			ball.vx = -ball.vx;
			ball.x = W - ball.r;
		}
		
		else if(ball.x -ball.r < 0) {
			ball.vx = -ball.vx;
			ball.x = ball.r;
		}
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143148
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторэто константы, в любой момент времени их значение одно и то же, только при достижении стенки знак меняется
Вопрос 1 как получить dx dy на лету?
Вопрос 2 шар подлетает к стенке, вектор же задаётся не одной а минимум 2 точками в пространстве. Вот он подлетел к ваертикальной левой стенке допустим, т.е. я точно знаю что теперь у него x=0 а y=25 например, а где он был-то, откуда прилетел, куда его отражать?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143155
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fazatronавторэто константы, в любой момент времени их значение одно и то же, только при достижении стенки знак меняется
Вопрос 1 как получить dx dy на лету?1) чтобы сделать dx = -dx зачем знать значение dx?
2) это значение ПЕРЕМЕННОЙ, оно известно ВСЕГДА. alert(dx)
более того, оно вбито в исходник скрипта посредством рук и клавиатуры, если не понятно.

FazatronВопрос 2 шар подлетает к стенке, вектор же задаётся не одной а минимум 2 точками в пространстве. забудь про вектора, тут арифметика уровня первого-второго класса.
dx это количество точек, на которое смещается шарик по оси x за единицу времени, dy - соответственно по оси y. если dx == dy, то угол отскока равен 45 градусам.

Fazatron Вот он подлетел к ваертикальной левой стенке допустим, т.е. я точно знаю что теперь у него x=0 а y=25 например, а где он был-то, откуда прилетел, куда его отражать?где он был и куда летит - АБСОЛЮТНО НАСРАТЬ. просто прибавляешь dx к x, а dy к у, и всё. а при x<0 делаешь dx = -dx.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143159
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1) чтобы сделать dx = -dx зачем знать значение dx?
2) это значение ПЕРЕМЕННОЙ, оно известно ВСЕГДА. alert(dx)
Как понять известно всегда? Переменная либо задаётся программистом, либо её значение получает скрипт в процессе работы
авторdx это количество точек, на которое смещается шарик по оси x за единицу времени, dy - соответственно по оси y
Вот уже понятнее, мы шарик вообще во всём этом процессе каким методом перемещаем? Изменением отступов top и left в абсолютном позиционировании?
Вы конечно бодро всё объясняете, но можно специально для меня опустится вниз на более примитивный уровень объяснений?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143173
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fazatronавтор1) чтобы сделать dx = -dx зачем знать значение dx?
2) это значение ПЕРЕМЕННОЙ, оно известно ВСЕГДА. alert(dx)
Как понять известно всегда? Переменная либо задаётся программистом, либо её значение получает скрипт в процессе работы
автороно вбито в исходник скрипта посредством рук и клавиатуры, если не понятно.очевидно, не понятно.

Fazatronавторdx это количество точек, на которое смещается шарик по оси x за единицу времени, dy - соответственно по оси y
Вот уже понятнее, мы шарик вообще во всём этом процессе каким методом перемещаем? Изменением отступов top и left в абсолютном позиционировании?какая разница?

FazatronВы конечно бодро всё объясняете, но можно специально для меня опустится вниз на более примитивный уровень объяснений?ниже некуда, это дно.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143243
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторкакая разница?
Большая разницы вы на JS вообще хоть что ни будь писали? Если я перемещаю его попиксельно мне надо каждый раз менять отступы, а если я задаю конечную точку типа 300 500 и делаю что-то типа move() и он сам перемещается туда - совсем другое.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143257
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fazatronавторкакая разница?
Большая разницы вы на JS вообще хоть что ни будь писали?конечно нет, просто так тут тусуюсь

Fazatronесли я задаю конечную точку типа 300 500 и делаю что-то типа move() и он сам перемещается туда - совсем другое.а типа с какой стати ему самому что-то делать? такого функционала в браузере типа нет.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143282
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автортакого функционала в браузере типа нет
Тогда давайте типа на простом примере:
Есть у меня DIV в любом месте страницы. position: absolute левый и правый отступ у него заданы. С момента загрузки страницы я хочу что бы он начал двигаться в случайно выбранном направлении.
Я ставлю setInterval 20 например, внутри него определяю рандомно x и y с разницей в 1-2 пикселя от исходных координат, а далее необходимо что бы он двигался в том же направлении. Тогда надо дальнейшие координаты определять уже не рандомно? Иначе он будет менять направление каждые 20мс?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143358
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсть у меня DIV в любом месте страницы. position: absolute левый и правый отступ у него заданы.отступы это margin, а координаты это left и top.

авторвнутри него определяю рандомно x и y с разницей в 1-2 пикселя от исходных координат, а далее необходимо что бы он двигался в том же направлении. Тогда надо дальнейшие координаты определять уже не рандомно? Иначе он будет менять направление каждые 20мс?бред и ахинея, все ранее сказанное мимо мозга прошло.

рандомно задаются начальные координаты, left и top, еще до того как запускается setInterval.
в тот же момент рандомно задаются dx и dy, они-то и определяют направление, скорость и угол.

при каждом вызове setInterval выполняется left += dy; top += dy;
при столкновении со стенками меняется знак у dx или dy.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143359
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
left += dx
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143384
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример можно?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143471
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя уже есть отличный пример: https://jsfiddle.net/qk0pk06x/1/
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143481
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я так и понял что вы сольётесь и не в состоянии накидать простейшие 10 строчек )))
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143533
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно. нафиг мне это надо при существующем полнофункциональным и щедро откомментированном примере? и даже без него.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143539
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вращение шарика - то без чего современный пинг-понг не работает от слова совсем. Накат, подрезка, боковые - будете в модель включать? )
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143590
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНакат, подрезка, боковые - будете в модель включать
Всё будет, но позже
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143606
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГхостикВращение шарика - то без чего современный пинг-понг не работает от слова совсем. Накат, подрезка, боковые - будете в модель включать? )
Рановато будет. Человеку пока еще не до конца ясно как шарик летит по прямой траектории, а Вы...
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143618
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторРановато будет
Вот кстати раз уж вы зашли, для наката надо сохранить направление движения в свойствах доски и в момент столкновения с шариком его считать так?
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143806
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyFazatronпропущено...

Большая разницы вы на JS вообще хоть что ни будь писали?конечно нет, просто так тут тусуюсь


Дааа... Ни буковки практики? жаль... жаль... )))
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143867
Dima46ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё что нужно это киви кошелёк и 1000р, разослать по 100р каждому
Здравствуйте! То, что я Вам предлагаю – это старый и проверенный способ заработка в интернет. Этот способ не зависит от желания или нежелания разных казино, сайтов или прочей ерунды платить или не платить Вам деньги. Хотите получать 30 000р в месяц и более? Тогда читаем дальше.

Если Вы читаете это сообщение, то это значит, что Вы ищете способ заработка в Сети и пришли по адресу. Весь способ зарабатывания денег состоит в строительстве структуры с небольшими вложениями. Построй небольшую структуру уелив всего несколько минут и ты получишь финансовый приток.
Инструкция как получать деньги при помощи QIWI:
Шаг № 1. Скопируйте этот текстовый документ себе на компьютер, как заработать деньги, отредактируйте его по своему смыслу для последующей работы с ним.
Шаг № 2. Регистрация кошелька в QIWI

Шаг №3. Пополняем свой кошелек QIWI на сумму 700
Шаг № 4. Переводим деньги на указанные номера кошельков.
На этом разделе я остановлюсь, подробно и вам следует, отнестись к нему серьезно.
1. Зайдите на сайт QIWI введите свой логин и пароль, и жмёте на кнопку "Перевести". Вы попадаете на страницу перевода денег.
И отправляйте на каждый из ниже указанных номеров кошельков по 100 рублей
В примечании напишите «За работу»

И так нужно сделать 7 платежей на номера кошельков, которые указаны ниже.
Запомните и усвойте, чтобы получать прибыль‚ необходимо отправить НА КАЖДЫЙ из этих 7 кошельков по 100 рублей
Итак, отправьте по 100 рублей на каждый из следующих Счетов QIWI:

1) +79250507061
2) +79629723965
3) +79296319059
4) +79016716735
5) +79529975467
6) +79689649890
7) +79081230878
Шаг № 5. Рассылаем объявления.
1. После того‚ как вы выполнили все предыдущие шаги‚ удалите в текстовом документе, который вы скачали в Шаге № 1, из списка кошельков первый и переместите второй кошелёк на место первого‚ который вы стерли‚ третий на место второго и т.д. А в седьмой номер‚ который оказался пустым‚ впишите номер своего кошелька! То есть после того, как вы перевили по 100 рублей на каждый кошелёк, первый кошелёк удаляется, а все остальные перемещаются на вверх, получается свободное место на месте седьмого. Пример:
1) +79250507061 УДАЛЯЕМ!

2) +79629723965 ставим его на место первого, а остальные по порядку
3) +79296319059
4) +79016716735
5) +79529975467
6) +79689649890
7) +79081230878

7) пишем свой кошелёк и рассылаем.


2. Скопируйте эту статью, отредактируйте и поместите её на 200 - 300 форумах по поиску работы в Сети. . . Количество людей откликнувшихся на ваше объявление будет возрастать в геометрической прогрессии, а значит и платежей по 100 руб. Перспективы большие При этом способе мы все зарабатываем себе на жизнь сами и не от кого не зависим. Работа эта трудная, но выполнимая, т.к надо найти те сайты, которые принимают такие объявления. Возникает вопрос: что будет, когда номер вашего кошелька окажется на верхней строчке и новые участники начнут его вычеркивать? Вам придется выйти из дела? Отчасти это так. Но ведь никто не запрещает вам в любое время продолжать размещать на сайтах ваши объявления с тем текстом, где ваш номер еще на самой нижней строчке! И привлекать новых участников. Таким образом, ваше участив в проекте может длиться и длиться сколь угодно долго.


На самом деле это есть самая обычная матричная структура и пока люди будут участвовать в ней, у нас с вами будет пассивный доход. Всё в ВАШИХ РУКАХ‚ ДЕРЗАЙТЕ!!! Ведь ничего‚ кроме 700 рублей вы не теряете!!! Но вы окупите эти вложение всего за неделю, тем самым в течении месяца вы сможете получить около 30 000 рублей, при это уделив всего несколько минут рассылке. Начните со знакомых, ведь чем больше людей узнает об это, тем больше денег вы получите и получат другие.

Спасибо за внимание и удачи в работе.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143869
Фотография Тshаmil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FazatronавторРановато будет
Вот кстати раз уж вы зашли, для наката надо сохранить направление движения в свойствах доски и в момент столкновения с шариком его считать так?
ты игру собрался писать, или просто js изучаешь? Если игру, то нужно изучать один из существующих html5 движков для создания игр, например этот: http://createjs.com/ там огромная часть необходимых функций уже реализована. вот например в createjs есть http://createjs.com/tweenjs
к примеру с использованием tweenjs твоя задача решается примерно так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
				var width = 640;
				var height = 480;
				var target = document.getElementById('target');
				var canvas = document.createElement( 'canvas' );
				canvas.width = width;
				canvas.height = height;
				target.appendChild( canvas );
				var context = canvas.getContext( '2d' );
				var ball = { x: width - 80, y: 80 };
				new TWEEN.Tween( ball.to( { x: width - 80, y: height - 80 }, 3000 ).onUpdate( function() {
					// тут нужно реализовать перерисовку твоего шарика
				} ).start();




можно еще с помощью jquery, я вот набросал небольшой пример, сделал за 10 мин:
http://plnkr.co/edit/FxhWzbgW20Ks7oTVLREm?p=preview
это конечно не идеальный пример, но по нему можно посмотреть как делать отскок. Недостаток примера в том, что если угол отскока будет вести за пределы области, то отскок будет либо по прямой, либо будет вылет за рамки области. Если интересно то можешь сам сделать отскок от боковых сторон области, у меня такой цели не было.
...
Рейтинг: 0 / 0
Помогите разобраться с пин-понгом
    #39143933
Fazatron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я изучаю JS и в процессе изучения заодно пишу игру, поэтому JQ и готовые движки меня не интересуют.
Сегодня почти доделал отскок шарика от всех 4 стенок, сегодня вечером доделаю а там уж посмотрю как угол изменить...
...
Рейтинг: 0 / 0
25 сообщений из 38, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Помогите разобраться с пин-понгом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]