Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Игра

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Что понадобится?
etoYA
Отправлено: 24 Февраля, 2012 - 23:25:56
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




В общем хочу попробовать сделать игру типо этой http://www[dot]youtube[dot]com/watch?v=1iBd28gArig
Но в web, только без Flash.... Я понимаю JS,AJAX, но можете натолкнуть, написаь примерные функции, ссылки на мануалы(я в яваскрипт вообще дно)Улыбка
 
 Top
Wol_fi
Отправлено: 25 Февраля, 2012 - 03:29:02
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012  


Помог: 2 раз(а)




да тут сосбтвенно AJAX можно прикрутить только если к таблице результатов (хз какие ещё запросы к серверу нужны для игры такого типа), а по технологиям - можно смастерить такое на чистом HTML + jQuery (частично переведённая документация - jquery-docs.ru) , ну а если по новомодным правилам то понадобятся - HTML5, canvas и опять JS, можно чистый , можно библиотеку любую, с библиотекой быстрее получится. Да и собственно игр таких в инете пруд-пруди, можно просто открыть страницу с любой и F12 - js браузерный язык, все исходники будут видны (единственное что могут быть обфусцированы, но и это не большая проблема).
 
 Top
etoYA
Отправлено: 25 Февраля, 2012 - 10:08:03
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Я ее себе предстовляю так:

0. Главный блок (к примеру 600х600)
1. div блоки(авалы, с которых будет что-то вылазить).
2. С div блоков вылазиют другие блоки(типо дети авалов ;) случайным образом
3. Если нажали на на блок(#2), то засчитать очки и убрать его.. Если нет, то убрать через ну там 0.5сек.
4. В переменную к примеру points записываются, и таймер(пусть как там будет 30 сек), после вывода таймера вывести переменную points.

Как то так?
 
 Top
Wol_fi
Отправлено: 25 Февраля, 2012 - 16:11:25
Post Id


Новичок


Покинул форум
Сообщений всего: 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 код будет выглядеть примерно так:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //функция выводящяя случайное число , принимает на вход 2 значения - нижняя граница и верхняя граница
  3. function getRandomInt(min, max){
  4.   return Math.floor(Math.random() * (max - min + 1)) + min;
  5. }
  6. //функция поднимающая случайный блок
  7. function random_display_block(){
  8.    var random_num = getRandomInt(1,10); //к примеру у нас 10 блоков, также глобализуем переменную, чтобы потом этот же блок опустить
  9.    jQuery("#block"+random_num).slideDown();//показываем блок силами jQuery
  10.  
  11. }
  12. //функция прячущая случайный блок
  13. function hide_uped_block{
  14.  jQuery("#block"+random_num).slideUp();//прячем только что поднятный блок
  15. }
  16. //объединим обе функции для задания интервала
  17. function random_blocks{
  18.       random_display_block();//поднимаем блок
  19.       setTimeout(hide_uped_block(),500);//устанавливаем время, которое будет виден блок(то есть за какое время по нему нужно успеть кликнуть)
  20. }
  21. jQuery(document).ready(function(){
  22.     setInterval(random_blocks(),100);//устанавливаем запуск игры по dom ready(загрузке страницы) и  интервал появления новых блоков
  23. });
  24. //теперь займёмся кликами
  25. var total = 0;//переменнная с очками, инициализируется 1 раз при загрузке документа
  26. jQuery('.blocks').click(function(){
  27.    jQuery(this).slideUp();//прячем блок по клику
  28.    var total = total + 100500; //плюсуем очки за удачный клик
  29. });

ну в ообщем это так, примерно, можно прикрутить кнопку старт и таймер, и использовать клик по ней вместо jQuery(document).ready() ; думаю дальше докопаетесь до нужного вам функционала.

(Отредактировано автором: 25 Февраля, 2012 - 16:23:07)

 
 Top
etoYA
Отправлено: 25 Февраля, 2012 - 17:23:29
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Что то я не разобрался...
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="style.css" />
  4. <script type="text/javascript" src="jquery.js"></script>
  5. <script type="text/javascript" src="js.js"></script>
  6. </head>
  7. <body>
  8. <div class="wrapper">
  9.         <div id="block1" class="blocks"></div>
  10.         <div id="block2" class="blocks"></div>
  11.         <div id="block3" class="blocks"></div>
  12.         <div id="block4" class="blocks"></div>
  13.         <div id="block5" class="blocks"></div>
  14.         <div id="block6" class="blocks"></div>
  15.         <div id="block7" class="blocks"></div>
  16.         <div id="block8" class="blocks"></div>
  17.         <div id="block9" class="blocks"></div>
  18.         <div id="block10" class="blocks"></div>
  19. </div>
  20. </body>
  21. </html>

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. .wrapper {
  3.         margin: 0 auto;
  4.         width: 1000px;
  5. }
  6. .blocks {
  7.         position: relative;
  8.         margin: 100px 50px;
  9.         width: 100px;
  10.         height: 50px;
  11.         background: #000;
  12.         float: left;
  13. }
  14. #block1 {
  15.         position: absolute;
  16.         top: -10px;
  17.         left: 10px;
  18.         width: 80px;
  19.         height: 50px;
  20.         background: #f32;
  21. }
  22.  

(Отредактировано автором: 25 Февраля, 2012 - 17:50:00)

 
 Top
Wol_fi
Отправлено: 25 Февраля, 2012 - 21:34:02
Post Id


Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Февр. 2012  


Помог: 2 раз(а)




html разметка верная, а приведённый мной код - абстрактный Улыбка и на правильность не претендует Улыбка
хотябы по тому что методы slideUp и slideDown без значений на входе раскрывают блок сверху-вниз (а в той игре, нужно наоборот),и имеют callback события(то есть можно переписать и выкинуть 10 строк как минимум) просто вы просили привести примерные функции и подсказать метод решения, вот я сосбственно и попытался это сделать Улыбка
Js вообще хоть и тьюринг-полный, но функионал из коробки у него намного меньше чем на пример у php, скриптовый язык же. Даже чтобы получить случайное целое число в промежутке нужно писать свои функции. Да и каждый браузер его трактует как захочет, поэтому в кодинге на js также существует понятие кроссбраузерности. Особенно опера в этом плане доставляет, она с js дружит так же как и ie6 с блочной моделью и альфа-каналом в png.
 
 Top
etoYA
Отправлено: 25 Февраля, 2012 - 23:04:03
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




Wol_fi, ясно, да я в php чуток понимаю, даже больше чем чуток;) А вот с яваскриптом еще не сталкивался)
(Добавление)
Стоп, а если нужно как в той игре, выдавать колво рандомных блоков(от 1 до 5 к примеру).

Как же тогда обьяденять их в класс blocks? С моим css это врятле получится, не так ли?
(Добавление)
Буду писать пошагово функции на php, а потом переделывать на js))
 
 Top
IllusionMH
Отправлено: 26 Февраля, 2012 - 00:35:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




etoYA пишет:
Стоп, а если нужно как в той игре, выдавать колво рандомных блоков(от 1 до 5 к примеру).

Ну такой момент можно реализовать импользуя setTimeout с постоянно уменьшающимся временем, тогда новые начнут выскакивать до того, как предыдущий спрятался. Ну либо после определенного времени(кол-ва очков) рандомом задавать число поднимающихся мишеней.
etoYA пишет:
Как же тогда обьяденять их в класс blocks? С моим css это врятле получится, не так ли?

CSS тут вообще ни при чем. Он отвечает за стиль.
Вам нужно сначала получить все элементы мишеней
CODE (javascript):
скопировать код в буфер обмена
  1. var targets = document.querySelectorAll(".blocks"); //JS IE8+
  2. var targets = $(".blocks"); //jQuery


Потом через промежутки времени генерировать случайное число и показывать(поднимать в верх) мишень
При этом нужно сделать так, чтобы был слой, который закрывает мишень, пока она внизу, так что с версткой нужно немножко поработать. Создать блок с рядом мишеней. Потом создать блок, который их будет закрывать. Надвинуть второй на первы, так, чтобы элементы первого в нижнем состоянии закрывались вторым.

Лучше прочитать несколько книжек по JS, чем пытаться переделать функции изначально написанные в php под JS

Meanwhile in Australia
Wol_fi пишет:
Особенно опера в этом плане доставляет, она с js дружит так же как и ie6 с блочной моделью и альфа-каналом в png.

(Отредактировано автором: 26 Февраля, 2012 - 00:35:46)

 
 Top
etoYA
Отправлено: 26 Февраля, 2012 - 00:49:28
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




IllusionMH пишет:
Лучше прочитать несколько книжек по JS, чем пытаться переделать функции изначально написанные в php под JS


Я это уже понял.. Когда написал функцию случайных чисел. от 1 до 10(номера блоков). и кол-во выводов мишеней от 3х до 6.

В пхп это выглядит как то так:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. function random($min, $max, $minnum, $maxnum) {
  4.         $num = rand($minnum,$maxnum);
  5.         for ($i=0;$i<$num;$i++) {
  6.                 $result .= rand($min, $max).',';
  7.         }
  8.         return $result;
  9. }
  10. echo random(1,10,3,6);
  11. ?>
  12.  

Попробовал с js и обламался))



P.S хотел написать точно такуюже игру, только с таблицей рекордов и в веб, но видимо мне это не удастся)).

(Отредактировано автором: 26 Февраля, 2012 - 00:50:46)

 
 Top
IllusionMH
Отправлено: 26 Февраля, 2012 - 01:07:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Ну так не проблема
Спойлер (Отобразить)


Заодно и потренировался. Сейчас как раз изучаем Монте-Карло моделирование, так что функция рандома понадобится.

Почему же не судьба? Все зависит от того, зачем нужен JS. Если только игру написать - то может и не судьба.
А если планируется его потом использовать(ну или хотя бы писать серверные скрипты с оглядкой на возможности браузеров), то JS стоит изучения. По началу не привычно, т.к. у него немного другой принцип. Но потом открывается много интересных моментов. Я вот быстро "пробежал" HTML/CSS/JS начал разбираться в php, но потом вернулся к JS.

(Отредактировано автором: 26 Февраля, 2012 - 01:19:09)

 
 Top
etoYA
Отправлено: 26 Февраля, 2012 - 01:14:50
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


Помог: 21 раз(а)




IllusionMH, а я начал с php, с html, затем php, а после css ))

Основу JS я знаю, и без книжек). Ну слишком он похож на Php)

(Отредактировано автором: 26 Февраля, 2012 - 01:15:24)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB