Четверг, 14 Ноября 2024, 10:19

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
небольшой проектик - программист, можно и художник.
ApuoHДата: Понедельник, 17 Марта 2014, 13:46 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Собственно танчики:




исходники в принципе могу оставить открытыми.
анимации и картинки сам порисую.
часть программного кода тоже, но к сожалению в отдельных вопросам программирования не сведущ
потому с кем-то в команде. при желании можно и импортировать игру на андройд.

желательно в actionscript 3.0
классы понимаю поверхностно.

Собственно то что должно получиться:



тут нет газона, воды, льда, бетонной стены - картинки 24х24px


Сообщение отредактировал ApuoH - Понедельник, 17 Марта 2014, 16:00
AstralangelДата: Понедельник, 17 Марта 2014, 14:29 | Сообщение # 2
STF Games
Сейчас нет на сайте
Цитата ApuoH ()
при желании можно и импортировать игру на андройд.

Нет, не стоит. Лучше попробовать сделать все самому, так как такой проект не будет успешен ни в каком проявлении, но для опыта, самое оно.
PS: https://play.google.com/store/search?q=%D0%A2%D0%B0%D0%BD%D1%87%D0%B8%D0%BA%D0%B8


Весь мир театр, все люди в нем актеры и каждый не одну играет роль (с) Шекспир
ApuoHДата: Понедельник, 17 Марта 2014, 14:45 | Сообщение # 3
почетный гость
Сейчас нет на сайте
есть некоторые ньюансы.
как например притормаживание графики при поворотах.

реализовано в классе с помощью rotation. Учитывая что графика весит минимум.
Конечно можно было сделать наподобие tank.gotoAndStop(1); или tank.gotoAndStop(2); и т.д.
Переключая нас по отдельным кадрам анимации. Не знаю лучше от этого будет или нет.

Код

public function every_frame(event:Event)
   {
    switch (key_press)
    {
     case 37 :
      tank.x -=  speed;
      tank.rotation = -90;
      break;

     case 38 :
      tank.y -=  speed;
      tank.rotation = 0;
      break;

     case 39 :
      tank.x +=  speed;
      tank.rotation = 90;
      break;

     case 40 :
      tank.y +=  speed;
      tank.rotation = 180;
      break;
    }
   }
VickaДата: Понедельник, 17 Марта 2014, 15:03 | Сообщение # 4
Another ART
Сейчас нет на сайте
Цитата ApuoH ()
как например притормаживание графики при поворотах.

ты имеешь ввиду прокрутку анимации?


ApuoHДата: Понедельник, 17 Марта 2014, 15:58 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Цитата Neia ()
ты имеешь ввиду прокрутку анимации?

имеется ввиду когда нажимается клавиша. Происходит запрос данного события, что клавиша нажата и мы поворачиваем наш танк в нужную сторону.
если нажимает опять ту же клавишу он продолжит движение в том же направлении.
вот когда быстро двигать танк по полю и происходит это торможение.
SR000Дата: Понедельник, 24 Марта 2014, 10:49 | Сообщение # 6
был не раз
Сейчас нет на сайте
В чем игру делаешь? Графика я так понял векторная, зачем? Делай растровый холст с танками развернутыми во все положения + туда же отдельной строчкой вставь кирпичики и все значки интерфейса. Про мувиклипы вообще забудь, это ересь. Работай с bitmapData.copyPixels
Go_RamДата: Понедельник, 24 Марта 2014, 20:02 | Сообщение # 7
частый гость
Сейчас нет на сайте
Как будет работать ИИ?

ApuoHДата: Вторник, 25 Марта 2014, 01:31 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Цитата SR000 ()
В чем игру делаешь? Графика я так понял векторная, зачем? Делай растровый холст с танками развернутыми во все положения + туда же отдельной строчкой вставь кирпичики и все значки интерфейса. Про мувиклипы вообще забудь, это ересь. Работай с bitmapData.copyPixels

игру во flasg - AS3.0 графика обычный фотошоп.

Цитата Go_Ram ()
Как будет работать ИИ?

будет работать по принципу если видет цель и растояние соблюдено идет к цели.
конечная цель наш герб его и будем охранять.
Go_RamДата: Вторник, 25 Марта 2014, 09:24 | Сообщение # 9
частый гость
Сейчас нет на сайте
Цитата
будет работать по принципу если видет цель и растояние соблюдено идет к цели.


А так будут ездить и стрелять как в танчиках на денди, в случайном порядке?
И если будет рядом цель, то двигаться к цели.
еще хорошо бы сделать если по прямой видимости на расстоянии например 6 блоков сзади танк противника то тоже разворачиваться, так как лгко будет сзади убивать танки smile


SR000Дата: Вторник, 25 Марта 2014, 12:57 | Сообщение # 10
был не раз
Сейчас нет на сайте
Тогда проблема с дерганным движением одна, и решается легко, следи за логикой:
1) У танка есть 2 переменных, в одной записана сторона движения, во второй булево значение - едет он, или не едет.
2) Нужно создать 3 слушателя в классе, там где будут созданы все танки: нажатие клавиатуры, отпуск клавиатуры, смена кадра
3) При нажатии клавиатуры проверять нажатую клавишу, и если это одна из стрелок, то передавать танку 2 переменных: направление и танк едет.
4) При отпуске клавиатуры, проверять - едет ли танк? если да, то проверить соответствует ли отпущенная клавиша направлению танка, если да - то передать в танк 1 переменную - танк не едет.
5) В хандлере смены кадра вызывать метод update() танка игрока.
6) В классе танка в update() делать проверку, едет ли танк? если да то двигать его в зависимости от направления.
Танк должен ездить плавно
ApuoHДата: Среда, 26 Марта 2014, 06:48 | Сообщение # 11
почетный гость
Сейчас нет на сайте
сова вместо орла)



или так



или так


Добавлено (26.03.2014, 06:48)
---------------------------------------------
сюда мы его посадим, точнее ее



Сообщение отредактировал ApuoH - Среда, 26 Марта 2014, 07:06
SR000Дата: Четверг, 27 Марта 2014, 23:15 | Сообщение # 12
был не раз
Сейчас нет на сайте
Ну что, когда демку запилишь?
ApuoHДата: Пятница, 04 Апреля 2014, 19:21 | Сообщение # 13
почетный гость
Сейчас нет на сайте
Цитата SR000 ()
Ну что, когда демку запилишь?

еще пока не начинал. сайтом занялся, выполняю как тест.
так одному программеру написал если гуд совместно поделаем.

Добавлено (04.04.2014, 19:21)
---------------------------------------------
вот что получается, но это пока в плане графики.
программную часть взялся один с участников форума.


Сообщение отредактировал ApuoH - Суббота, 29 Марта 2014, 04:24
b_earДата: Пятница, 04 Апреля 2014, 21:47 | Сообщение # 14
Покорители космоса
Сейчас нет на сайте
как я всегда говорю, в любом деле главное начать)) успехов в проекте!

ApuoHДата: Суббота, 05 Апреля 2014, 03:15 | Сообщение # 15
почетный гость
Сейчас нет на сайте
тестируем взрыв.


Цитата b_eat ()
как я всегда говорю, в любом деле главное начать)) успехов в проекте!

спс
aallaДата: Суббота, 05 Апреля 2014, 04:00 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
эм.. а на haxe не проще было писать сразу? Отличий мало, зато платформ много.
ApuoHДата: Воскресенье, 06 Апреля 2014, 00:06 | Сообщение # 17
почетный гость
Сейчас нет на сайте
Цитата aalla ()
эм.. а на haxe не проще было писать сразу? Отличий мало, зато платформ много.

может быть. Но я незнаю.

Вообщем программист оказался очень занятым. Так что кто хочет по кодить велком. В принципе и сам могу, но в кадрах.
aallaДата: Воскресенье, 06 Апреля 2014, 04:22 | Сообщение # 18
постоянный участник
Сейчас нет на сайте
бери сам в руки flashpunk и вперед)
ApuoHДата: Воскресенье, 06 Апреля 2014, 21:08 | Сообщение # 19
почетный гость
Сейчас нет на сайте
Цитата aalla ()
бери сам в руки flashpunk и вперед)

я имел ввиду правильный код, а не собирать игру с кусков скриптов который потом тяжко будет править. happy

Добавлено (06.04.2014, 21:08)
---------------------------------------------
вот тут добавляем танк на сцену, а также описаны функции управления.
как видим код получается громоздким. Хотя тут даже и половины не описано.

Код

package new_proect

{
  import flash.display.*;
  import flash.events.*;
  public class Main extends Sprite
  {
   // make variable to store key state
   var kUp = false;
   var kDown = false;
   var kLeft = false;
   var kRight = false;
   var speed_t = 5;
   var tank = new Hero  ;

   public function Main()
   {
    // constructor code
    tank.x = 225;
    tank.y = 200;
    addChild(tank);
    ////////////////

    stage.addEventListener(KeyboardEvent.KEY_DOWN, kD);
    stage.addEventListener(KeyboardEvent.KEY_UP, kU);
    function kD(k:KeyboardEvent)
    {
     if (k.keyCode == 37)
     {
      kLeft = true;
      kUp = false;
      kDown = false;
      kRight = false;
     }
     if (k.keyCode == 39)
     {
      kRight = true;
      kUp = false;
      kDown = false;
      kLeft = false;
     }
     if (k.keyCode == 38)
     {
      kUp = true;
      kDown = false;
      kLeft = false;
      kRight = false;
     }
     if (k.keyCode == 40)
     {
      kDown = true;
      kUp = false;
      kLeft = false;
      kRight = false;
     }
    }

    function kU(k:KeyboardEvent)
    {
     if (k.keyCode == 37)
     {
      kLeft = false;
     }
     if (k.keyCode == 39)
     {
      kRight = false;
     }
     if (k.keyCode == 38)
     {
      kUp = false;
     }
     if (k.keyCode == 40)
     {
      kDown = false;
     }
    }

    //функция перемещения
    stage.addEventListener(Event.ENTER_FRAME, dvig);
    function dvig(e:Event)
    {
     if (kLeft)
     {
      tank.x -=  speed_t;
      tank.rotation = 270;
     }

     if (kRight)
     {
      tank.x +=  speed_t;
      tank.rotation = 90;
     }

     if (kUp)
     {
      tank.y -=  speed_t;
      tank.rotation = 0;
     }

     if (kDown)
     {
      tank.y +=  speed_t;
      tank.rotation = 180;
     }
    }

   }

  }

}
MadDoctorДата: Воскресенье, 06 Апреля 2014, 22:07 | Сообщение # 20
почетный гость
Сейчас нет на сайте
Цитата ApuoH ()
я имел ввиду правильный код, а не собирать игру с кусков скриптов который потом тяжко будет править.

а причем тут это и flashpunk? кадры - ниочем. flashpunk очень легкий, я незная as3, прочитав справку по flashpunk и посмотрев пару примеров, написал игру за 2 дня (1 день знакомился с as3 и fp, второй день писал). я бы помог тебе, ничего сложного в танчиках не вижу, но зачем оно? на флеше танчиков нету чтоли? да и графика простая, стандартная, вообщем таких игр куча, если только для опыта.

Цитата ApuoH ()
вот тут добавляем танк на сцену, а также описаны функции управления.
как видим код получается громоздким. Хотя тут даже и половины не описано.

пишешь как индусский программист, не обижайся, но так.
в каждом if по 4 изменений переменных, и вообще много условий, ГКод выходит. при помощи flashpunk ты бы создал отдельный entity и сделал бы в нем управление в 4-8 строк. а потом одной строкой добавил бы его на уровень.

так что советую flashpunk. это не куски скриптов, которые тяжко править. это фреймворк. импортировал и забыл про него. он спецом сделан для игр. т.е никаких листенеров для клавы не нужно, просто проверяешь нажатие кнопки в update функции и все. стоит отметить удобную работу с мирами и entity. код получается легким, понятным.


Сообщение отредактировал MadDoctor - Воскресенье, 06 Апреля 2014, 22:10
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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