Среда, 13 Ноября 2024, 13:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
{Помогите мне с Браузерной игрой}
DeadDayДата: Суббота, 12 Октября 2013, 20:00 | Сообщение # 1
New game Studio
Сейчас нет на сайте
Всем привет!

Издалека:

Я нет уж и давно занимаюсь игростроем. Хотя им и нельзя назвать, так как учу и практикую HTML и CSS. Для простоты и удобства работаю в Macromedia Dreamweaver 8. Хотя многие меня отговаривают от него, яко бы: «Пиши в обычных редакторах». Мне удобнее работать в Dreamweaver, быстро и удобно. А язык вёрстки я и так учу.

Теперь начал учить язык программирования PHP. Пока мне он нравиться. Для примера уже сделал калькулятор с не сколькими возможностями. И так по не многу.

Задумал сделать игру. Посмотрел практически все движки и конструкторы. Много что понравилось. Но брать я их не хочу, так как не уверен, что смогу, что - то на них сделать. Поэтому задумал проект, Браузерную MMORPG. Не смотрите, на то, что MMORPG. Я хочу сделать очень простую кликабельную игру. На чистом PHP.

Так как я начинающий, прошу мне немного уделить время и терпения. Хочу, конечно же, всё сделать сам, но пока это не реально. Потому что я ещё ученик.

Об игре:

Первое что я хочу сделать – это арену. Для сражения.
Второе – это задание. Статичные. Выполнил, получил награду, начинай заново. ( Пример: Убейте 10 врагов.)

Пока всё. Да это то, что я хочу сделать на первых парах.

Как я думаю:

Второе действие, я ещё как то представляю, как сделать. А вот первое нет. Что должно быть в арене?

Арена простая. Противник, кнопка удара и всё.

1. Для начало мне надо вывести все характеристики персонажа и врага.
2. Сделать не большую вёрстку, расположить все элементы.
3. Сам скрипт:

Попробую описать:

1. При нажатии на кнопку, мы передаём значения в формулу, методом POST или GET.
2. Формула рассчитывает, и получаем результат.
3. Функцией UPDATE обновляем Базу Данных с таблицей “users”.
4. Берём данные награды из таблицы “enemy”.
5. И собственно выводим на экран эти данные.

Вот как то так. Если я в чём - то ошибаюсь, поправьте меня не много! Код мне не нужен вообще. Не хочу копировать, ни чему не научусь. Можно так же расписать.

Заранее спасибо!!!!



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
HerrPotapovДата: Суббота, 12 Октября 2013, 23:34 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Я бы тебе предложил зарегистрироваться на github.com, создать репозиторий (публичный) и загружать весь свой код туда.
Два плюса этого подхода:
1. учишься работать с система контроля версий
2. люди могут смотреть твой код и давать свои советы.

А по поводу сообщения - как насчет пойти и просто попытаться это сделать, а если не получится - спрашивать совета?


Discord: alpotapov#1741

Интервью с разработчиком WarCastle - Читаем и вникаем!


Сообщение отредактировал HerrPotapov - Суббота, 12 Октября 2013, 23:35
DeadDayДата: Воскресенье, 13 Октября 2013, 08:30 | Сообщение # 3
New game Studio
Сейчас нет на сайте
HerrPotapov, А вот по тем пунктам? Я хотя бы правильно думаю!?


New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
e-lenaДата: Воскресенье, 13 Октября 2013, 10:38 | Сообщение # 4
был не раз
Сейчас нет на сайте
DeadDay, до того как сделаешь арену, нужно сделать регистрацию игроков с заполнением профиля. Если это не вызывает у тебя затруднений то и арена не вызовет.
В PHP везде одно и тоже:
отображение страницы -> действие пользователя -> получение сервером GET/POST запроса -> отображение страницы и т.д.
Удачи тебе в проекте, буду с интересом следить за развитием.


миру мир
DeadDayДата: Воскресенье, 13 Октября 2013, 11:04 | Сообщение # 5
New game Studio
Сейчас нет на сайте
Нет это уже есть. Сделал самую простую регистрацию. Характеристики все есть. Вот по этому и перешел на арену.


New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
AssasinДата: Воскресенье, 13 Октября 2013, 20:26 | Сообщение # 6
web-coder
Сейчас нет на сайте
Какого типа бои будут. Игрок нажал "Сражаться" и сразу получает лог боя или же оба игрока сидят и жмут куда ударить и что защитить?
DeadDayДата: Воскресенье, 13 Октября 2013, 21:23 | Сообщение # 7
New game Studio
Сейчас нет на сайте
Нет бой с ботом. Что то типа, да нажал расчитал через цикл. Пока кто ни будь нк умер. Это как бы автобой. Но думаю по этому же принципу сделаю по ударному, в голову, в тело, в ноги.
Если можешь помоги. Только не кодом, а вот как я расписал в первом посте.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
e-lenaДата: Понедельник, 14 Октября 2013, 00:04 | Сообщение # 8
был не раз
Сейчас нет на сайте
DeadDay
Напиши лаконично словами, какой бой тебе нужен. Сейчас совсем не понятно что тебе нужно.


миру мир
DeadDayДата: Понедельник, 14 Октября 2013, 09:27 | Сообщение # 9
New game Studio
Сейчас нет на сайте
Есть кнопка, нажал, вывелся результат.


New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
e-lenaДата: Понедельник, 14 Октября 2013, 09:38 | Сообщение # 10
был не раз
Сейчас нет на сайте
Цитата DeadDay ()
Есть кнопка, нажал, вывелся результат.

Тогда проще некуда, при нажатии на кнопку:
1. Получение сервером данных о начале боя
2. Расчет боя
3. Запись результата в БД
4. Отображение результата пользователю


миру мир
DeadDayДата: Понедельник, 14 Октября 2013, 09:48 | Сообщение # 11
New game Studio
Сейчас нет на сайте
Ну вот, в принципе получил ответ, который и хотел.

Добавлено (14.10.2013, 09:48)
---------------------------------------------
Только 1 действие не понил не много.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
e-lenaДата: Понедельник, 14 Октября 2013, 09:57 | Сообщение # 12
был не раз
Сейчас нет на сайте
Цитата DeadDay ()
Только 1 действие не понил не много.

это клик по кнопке или переход по ссылке "Начать бой"


миру мир
DeadDayДата: Понедельник, 14 Октября 2013, 17:11 | Сообщение # 13
New game Studio
Сейчас нет на сайте
А все спасибо.

###
Вообщем поковырялся я с кодом и что то получилось. Но как то работает не очень. Посмотрите пожалуста, может что то испрасить надо, где!?
###

#############
Исходные данные:
#############

###
Сам код:
###

Код

<?php
          
         // Подключаемся к БД...
          
         $host  = "localhost";
         $login  = "DD";
         $pass = "123456";
          
         $connect = mysql_connect ("$host","$login","$pass") or die ("Подключение не удалось!" . mysql_error());
          
         $db = mysql_select_db ("battle" , $connect) or die ("Не удалось выбрать БД!" . mysql_error());
          
         // Устанавливаем кодировку...
          
          mysql_query ("SET NAMES 'utf8'");
          
         //###
          
         $sql = mysql_query("SELECT * FROM user");
         $result =  mysql_fetch_array ($sql);
          
         echo "Имя: " . $result['name'];
         echo "<br>Здоровье: " . $result['p_hp'];
         echo "<br>Мак.урон: ". $result['p_at_max'];
         echo "<br>Мин.урон: " . $result['p_at_min'];
          
         echo "<br><br>";
          
         $sql2 = mysql_query("SELECT * FROM enemy");
         $result2 =  mysql_fetch_array ($sql2);
          
         echo "Имя: " . $result2['e_name'];
         echo "<br>Здоровье: " . $result2['e_hp'];
         echo "<br>Мак.урон: ". $result2['e_at_max'];
         echo "<br>Мин.урон: " . $result2['e_at_min'];
          
         echo "<form acrion = index.php method = post>";
         echo "<br><input type = submit name = submit value = 'Действие'>";
         echo "</form>";
          
         if (isset($_POST['submit'])){
          
                 if ($result['p_hp'] >= 10){
                 $bat = $result['p_hp'] - rand( $result2['e_at_min'] ,  $result2['e_at_max'] );  

              echo "$bat<br>";
         $up = mysql_query ("UPDATE user SET p_hp = '$bat' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error());  
             if ($result['p_hp'] <= 10){
                 echo 'Вы проиграли!!!';
}
     }
      
     if ($result2['e_hp'] >= 10){
                 $bat2 = $result2['e_hp'] - rand( $result['p_at_min'] ,  $result['p_at_max'] );  

              echo "$bat2<br>";
         $up2 = mysql_query ("UPDATE enemy SET e_hp = '$bat2' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error());  
             if ($result2['e_hp'] <= 10){
                 echo 'Вы победили!!!';}}
         }
  ?>



###
Таблица user:
###



###
Таблица enemy:
###



#############
Начальная страница:
#############



####

Теперь при нажатии на кнопку Действие, происходит вот что: Он считае поформуле, обновляет БД. НО!!!! Результат не совпадает.



Нажал ещё раз:



А в БД сохраняются вот что:



Почему так происходит, я не понимаю! Может где то в коде ошибся! Помогите мне с решением этой проблеммы!!!

Заранее спасибо + с меня!!!



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание


Сообщение отредактировал DeadDay - Вторник, 15 Октября 2013, 11:04
AssasinДата: Вторник, 15 Октября 2013, 12:29 | Сообщение # 14
web-coder
Сейчас нет на сайте
Получается следующее:
1. Считываются данные с БД и выводятся на экран
2. Затем происходит расчет формулы, которая уменьшает какие то данные
НО, 1 пункт выполнился раньше второга, поэтому данные у тебя отличаются

Код

<?php
            
          // Подключаемся к БД...
            
          $host  = "localhost";
          $login  = "DD";
          $pass = "123456";
            
          $connect = mysql_connect ("$host","$login","$pass") or die ("Подключение не удалось!" . mysql_error());
            
          $db = mysql_select_db ("battle" , $connect) or die ("Не удалось выбрать БД!" . mysql_error());
            
          // Устанавливаем кодировку...
            
           mysql_query ("SET NAMES 'utf8'");
            
          //###
            
          $sql = mysql_query("SELECT * FROM user");
          $result =  mysql_fetch_array ($sql);
            
           
            
          $sql2 = mysql_query("SELECT * FROM enemy");
          $result2 =  mysql_fetch_array ($sql2);

          $description = '';
            
          if (isset($_POST['submit'])){
            
                  if ($result['p_hp'] >= 10){
                  $bat = $result['p_hp'] - rand( $result2['e_at_min'] ,  $result2['e_at_max'] );   

                  $result['p_hp'] = $bat;

               $description .= "$bat<br>";
          $up = mysql_query ("UPDATE user SET p_hp = '$bat' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error());   
              if ($result['p_hp'] <= 10){
                  $description .= 'Вы проиграли!!!';
}
      }
        
      if ($result2['e_hp'] >= 10){
                  $bat2 = $result2['e_hp'] - rand( $result['p_at_min'] ,  $result['p_at_max'] );   

                  $result2['e_hp'] = $bat2;

               $description .= "$bat2<br>";
          $up2 = mysql_query ("UPDATE enemy SET e_hp = '$bat2' WHERE `id` =1") or die ("Обновить не удалось!<br>" . mysql_error());   
              if ($result2['e_hp'] <= 10){
                  $description .= 'Вы победили!!!';}}
          }

          echo "Имя: " . $result['name'];
          echo "<br>Здоровье: " . $result['p_hp'];
          echo "<br>Мак.урон: ". $result['p_at_max'];
          echo "<br>Мин.урон: " . $result['p_at_min'];
            
          echo "<br><br>";

          echo "Имя: " . $result2['e_name'];
          echo "<br>Здоровье: " . $result2['e_hp'];
          echo "<br>Мак.урон: ". $result2['e_at_max'];
          echo "<br>Мин.урон: " . $result2['e_at_min'];
            
          echo "<form acrion = index.php method = post>";
          echo "<br><input type = submit name = submit value = 'Действие'>";
          echo "</form>";

          echo $description;
   ?>  
DeadDayДата: Вторник, 22 Октября 2013, 10:58 | Сообщение # 15
New game Studio
Сейчас нет на сайте
Блин, спасибо тебе большое. + как и обещал с меня. За комп сяду и поставлю.

Добавлено (22.10.2013, 10:58)
---------------------------------------------
Всем привет.

Есть такой вопрос, на правильность хода работы.

При написании того или иного скрипта, я изначально не использую бд. А применяю простые переменные. Добеваюсь, чтоб скрипт был работоспособным и потом только переделаю для базы.

Сам конечно понимаю, что, я делаю 2–ю работу. Но почему то мне так удобнее.

Вот сообственно от сюда и вопрос: делать так как делаю. Или же все таки делать так как правильно. И приучать себя к этому.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
AssasinДата: Вторник, 22 Октября 2013, 23:40 | Сообщение # 16
web-coder
Сейчас нет на сайте
Если у тебя нету еще готовой структуры для будущей таблицы, то делай как сейчас. Я так понимаю "начальные переменные" это будут будущие поля в будущей таблице.
Но я обычно создаю таблицу и прописываю ей пару полей, которые точно знаю будут в ней, а потом в ходе дела добавляю новые и изменяю старые.
DeadDayДата: Суббота, 02 Ноября 2013, 15:17 | Сообщение # 17
New game Studio
Сейчас нет на сайте
Assasin, да начальные переменные это будующие поля в таблицы!

Добавлено (29.10.2013, 10:12)
---------------------------------------------




Всем привет. Подскажите как лучше сделать бой?!

Добавлено (02.11.2013, 15:17)
---------------------------------------------
Подскажи в чем проблема:
Есть страница, выводится все
нормально. Меняешь в бд
значения, так же все работает
хорошо. Пытаюсь вывести данные,
по ид но он почему то ругается:
NOTICE: Undefined index: id in ...... on
line 38
Вот сама строчка:
$result = mysql_query ("select * from
o_users where id = `".$_session_
[`id`]."`");
А вот что за ерунда не пойму.
Просто вывести это ид, он выводит.
А параметры этого ид не выводит,
ругается.



New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
Yashko3Дата: Суббота, 02 Ноября 2013, 20:39 | Сообщение # 18
Господин Ведущий
Сейчас нет на сайте
попробуй так:
Код
$result = mysql_query ("select * from `o_users` where `id` = '".$_SESSION['id']."'");





старый профиль
php <3
DeadDayДата: Суббота, 02 Ноября 2013, 22:14 | Сообщение # 19
New game Studio
Сейчас нет на сайте
Yashko3, Не помогает!


New Games Studio
---------------------------------------------------------------------------------------
Проекты:
DeadDay - Online
--- Мертвый день: Выживание
Yashko3Дата: Суббота, 02 Ноября 2013, 22:28 | Сообщение # 20
Господин Ведущий
Сейчас нет на сайте
значит сессион айди не определена (пустая)




старый профиль
php <3
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг