Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
В общем хочу попробовать сделать игру типо этой http://www[dot]youtube[dot]com/watch?v=1iBd28gArig
Но в web, только без Flash.... Я понимаю JS,AJAX, но можете натолкнуть, написаь примерные функции, ссылки на мануалы(я в яваскрипт вообще дно)
Wol_fi
Отправлено: 25 Февраля, 2012 - 03:29:02
Новичок
Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012
Помог: 2 раз(а)
да тут сосбтвенно AJAX можно прикрутить только если к таблице результатов (хз какие ещё запросы к серверу нужны для игры такого типа), а по технологиям - можно смастерить такое на чистом HTML + jQuery (частично переведённая документация - jquery-docs.ru) , ну а если по новомодным правилам то понадобятся - HTML5, canvas и опять JS, можно чистый , можно библиотеку любую, с библиотекой быстрее получится. Да и собственно игр таких в инете пруд-пруди, можно просто открыть страницу с любой и F12 - js браузерный язык, все исходники будут видны (единственное что могут быть обфусцированы, но и это не большая проблема).
etoYA
Отправлено: 25 Февраля, 2012 - 10:08:03
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Я ее себе предстовляю так:
0. Главный блок (к примеру 600х600)
1. div блоки(авалы, с которых будет что-то вылазить).
2. С div блоков вылазиют другие блоки(типо дети авалов ;) случайным образом
3. Если нажали на на блок(#2), то засчитать очки и убрать его.. Если нет, то убрать через ну там 0.5сек.
4. В переменную к примеру points записываются, и таймер(пусть как там будет 30 сек), после вывода таймера вывести переменную points.
Как то так?
Wol_fi
Отправлено: 25 Февраля, 2012 - 16:11:25
Новичок
Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012
Помог: 2 раз(а)
etoYA пишет:
Я ее себе предстовляю так:
0. Главный блок (к примеру 600х600)
1. div блоки(авалы, с которых будет что-то вылазить).
2. С div блоков вылазиют другие блоки(типо дети авалов ;) случайным образом
3. Если нажали на на блок(#2), то засчитать очки и убрать его.. Если нет, то убрать через ну там 0.5сек.
4. В переменную к примеру points записываются, и таймер(пусть как там будет 30 сек), после вывода таймера вывести переменную points.
Как то так?
В общем да, на выезжающих блоках нужно будет отлавливать событие click (например аттрибут onClick - и на него повесить функцию записи значения в переменную и функцию скрытия выезжающего блока, так же через setInterval повесить скрытие выезжающего блока через определённое время, ну в показывать их можно так - дать каждому выезажющему определённый порядковый id - (block1 ... blockN ..), и объединить их общик классом, например blocks ,затем взять math_random в границах кол-ва блоков, ну и с использованием jQuery код будет выглядеть примерно так:
var random_num = getRandomInt(1,10);//к примеру у нас 10 блоков, также глобализуем переменную, чтобы потом этот же блок опустить
jQuery("#block"+random_num).slideDown();//показываем блок силами jQuery
}
//функция прячущая случайный блок
function hide_uped_block{
jQuery("#block"+random_num).slideUp();//прячем только что поднятный блок
}
//объединим обе функции для задания интервала
function random_blocks{
random_display_block();//поднимаем блок
setTimeout(hide_uped_block(),500);//устанавливаем время, которое будет виден блок(то есть за какое время по нему нужно успеть кликнуть)
}
jQuery(document).ready(function(){
setInterval(random_blocks(),100);//устанавливаем запуск игры по dom ready(загрузке страницы) и интервал появления новых блоков
});
//теперь займёмся кликами
var total =0;//переменнная с очками, инициализируется 1 раз при загрузке документа
jQuery('.blocks').click(function(){
jQuery(this).slideUp();//прячем блок по клику
var total = total +100500;//плюсуем очки за удачный клик
});
ну в ообщем это так, примерно, можно прикрутить кнопку старт и таймер, и использовать клик по ней вместо jQuery(document).ready() ; думаю дальше докопаетесь до нужного вам функционала.
Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012
Помог: 2 раз(а)
html разметка верная, а приведённый мной код - абстрактный и на правильность не претендует
хотябы по тому что методы slideUp и slideDown без значений на входе раскрывают блок сверху-вниз (а в той игре, нужно наоборот),и имеют callback события(то есть можно переписать и выкинуть 10 строк как минимум) просто вы просили привести примерные функции и подсказать метод решения, вот я сосбственно и попытался это сделать
Js вообще хоть и тьюринг-полный, но функионал из коробки у него намного меньше чем на пример у php, скриптовый язык же. Даже чтобы получить случайное целое число в промежутке нужно писать свои функции. Да и каждый браузер его трактует как захочет, поэтому в кодинге на js также существует понятие кроссбраузерности. Особенно опера в этом плане доставляет, она с js дружит так же как и ie6 с блочной моделью и альфа-каналом в png.
etoYA
Отправлено: 25 Февраля, 2012 - 23:04:03
Участник
Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011 Откуда: Крым
Помог: 21 раз(а)
Wol_fi, ясно, да я в php чуток понимаю, даже больше чем чуток;) А вот с яваскриптом еще не сталкивался) (Добавление)
Стоп, а если нужно как в той игре, выдавать колво рандомных блоков(от 1 до 5 к примеру).
Как же тогда обьяденять их в класс blocks? С моим css это врятле получится, не так ли? (Добавление)
Буду писать пошагово функции на php, а потом переделывать на js))
IllusionMH
Отправлено: 26 Февраля, 2012 - 00:35:05
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
etoYA пишет:
Стоп, а если нужно как в той игре, выдавать колво рандомных блоков(от 1 до 5 к примеру).
Ну такой момент можно реализовать импользуя setTimeout с постоянно уменьшающимся временем, тогда новые начнут выскакивать до того, как предыдущий спрятался. Ну либо после определенного времени(кол-ва очков) рандомом задавать число поднимающихся мишеней.
etoYA пишет:
Как же тогда обьяденять их в класс blocks? С моим css это врятле получится, не так ли?
CSS тут вообще ни при чем. Он отвечает за стиль.
Вам нужно сначала получить все элементы мишеней
var targets = document.querySelectorAll(".blocks");//JS IE8+
var targets = $(".blocks");//jQuery
Потом через промежутки времени генерировать случайное число и показывать(поднимать в верх) мишень
При этом нужно сделать так, чтобы был слой, который закрывает мишень, пока она внизу, так что с версткой нужно немножко поработать. Создать блок с рядом мишеней. Потом создать блок, который их будет закрывать. Надвинуть второй на первы, так, чтобы элементы первого в нижнем состоянии закрывались вторым.
Лучше прочитать несколько книжек по JS, чем пытаться переделать функции изначально написанные в php под JS
Meanwhile in Australia
Wol_fi пишет:
Особенно опера в этом плане доставляет, она с js дружит так же как и ie6 с блочной моделью и альфа-каналом в png.
var n = Math.floor(Math.random()*( maxnum - minnum + 1))+ minnum,
res=[];
while(n--){
res.push(Math.floor(Math.random()*( max - min + 1))+ min);
}
return res;
}
Заодно и потренировался. Сейчас как раз изучаем Монте-Карло моделирование, так что функция рандома понадобится.
Почему же не судьба? Все зависит от того, зачем нужен JS. Если только игру написать - то может и не судьба.
А если планируется его потом использовать(ну или хотя бы писать серверные скрипты с оглядкой на возможности браузеров), то JS стоит изучения. По началу не привычно, т.к. у него немного другой принцип. Но потом открывается много интересных моментов. Я вот быстро "пробежал" HTML/CSS/JS начал разбираться в php, но потом вернулся к JS.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.