Среда, 24 Апреля 2024, 00:23

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » уроки по app game kit (предлагаю делать уроки)
уроки по app game kit
нужны они вообще кому то?
1. да [ 98 ] [62.82%]
2. нет [ 11 ] [7.05%]
3. а че это за двиг? [ 47 ] [30.13%]
Всего ответов: 156
arrow25Дата: Воскресенье, 12 Февраля 2012, 14:10 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
если кому то они будут надо пишите в этой теме)
будем вместе соображать)

и так начнем), качаем *(у кого не скачено демо версия) запускаем выбираем скачать можно тут
если вы хоть раз юзали бейсико-подобный язык(например pure бейсик)), или вообще знаете что такое программирование то в первом уроке у вас проблем не будет точно

предлагаю просто повторить один из уроков по xna для си шарпа (c#) как вообще загрузить спрайт( изображение) и заставить его двигаться.

для начала создадим новый проект нажатием в меню new projeсt, или на загрузке меню приветствия(без разницы) см. скрин



перед вами появится окно выбора шаблона(его скринить не буду))
выбираем ну...... например agk portait project, честно сказать я сам даже не знаю в чем разница между всеми этими шаблонами, думаю что в платформах и разрешении(кто в курсе скажите))
среда этого движка подготовит нам пару файлов main.ags, и setup.ags.

начнем с разбора setup.agc
исходный код его

в нем хранятся всего три параметра

тут я ваще думаю не нужно комментировать
ну да ладно обсудим)
первый параметр, или переменная titile это то что будет отображаться в заголовке приложения
далее идет параметр, или переменная width это ширина экрана девайса, и height это высота девайса.(стандартный такой телефон современный)))

и параметр fullscreen отвечает за то как наше приложение будет выглядеть(хз зачем это для телефона ведь мы уже указали разрешение экрана))) (знатоки объясните)) вообщем если туда вместо нуля поставить 1 то на компе оно запустится в полно экранном режиме.

все что перед словом rem это комментарии в стиле бейсика)
раз пошла такая пьянка сразу скажу что комментарии можно писать и другими способами
например:
всем языкам известный си подобный его еще называют


тут сперва идет коммент а потом не понятная функция), и цикл с заколебавшим всех начинающих программистов словом))
че эта функция делает я толком объяснить не могу(так как сам плохо понял), ну попробуйте сами поменять значение дробной например на 22 , и запустите проект она вам покажет не полную часть этих двух слов, думаю зачем она нужна понятно?) если нет идем в справку переводим читаем)

ну... глубоко вдохнув начнем писать нашу первую игру) по мотивам одноименного рассказа про xna только не много по круче)

для начала не чего менять не будем и загрузим спрайт и отобразим его на экране с настройками которые подготовила нам agk, за одно и поймем нафига та функция в самом начале).

сохраним проект (по умолчанию он хранится там где мы его создали в самом начале) (сорри об этом я не писал посчитал это не нужной процедурой) )

берем любой спрайт я возьму этот
и кидаем его в папку media среда сделала её за вас, если это не так то создаем в ручную эту папку где лежит наша игра, то есть где главный файл main



пишем функцию которая грузит спрайты
Code
Ball1 = LoadImage("ball1.png")


сразу хочу сказать что тут нет такого строго типа как например в шарпе), тут можно писать встроенные функции как вам захочется, тоесть можно было написать эту функцию например так
Code
//LoAdImAgE("ball1.png")

обратите внимание на то как мы загрузили спрайт, в переменной ball сейчас хранится id этого спрайта, давайте посмотрим на него)

пишем:
Code
print (ball1)


для тех кто пока не понимает весь код)
Code
rem
rem AGK Application
rem

rem Portrait App
SetDisplayAspect( 0.66 )
loadimage("ball1.png")
rem A Wizard Did It!
do
                             Print("hello world")
                             print (ball1)
                             Sync()
loop


после слов "hello world " нам показало 10001 должно быть)) wacko это и есть id спрайта.
если загрузить еще один спрайт в другую переменную, и вывести на экран то уже покажет цифру 10002, проверим? cool
пишем сразу после того где грузили первый спрайт.
Code
ball2 = loadimage(ball1.png)

и в главном цикле сразу после функции вывода id первого спрайта пишем:

Code
print (ball2)


для ленивых полный код)
Code
rem
rem AGK Application
rem

rem Portrait App
SetDisplayAspect( 0.66 )
ball1 = loadimage("ball1.png")
ball2 = loadimage ("ball1.png")
rem A Wizard Did It!
do
                       Print("hello world")
                       print (ball1)
                       print (ball2)
                       Sync()
loop

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

а теперь момент истины))
пробуем нарисовать этот мяч*(хз че там у вас у меня мяч)
сразу после загрузки спрайта пишем
Code
createsprite(ball1)// создаем объект спрайта

в главном цикле пишем

Code

//не забудьте удалить долбанутые слова типо привет мир), и всю нашу писанину с идентификаторами
setspriteposition(ball1,35,35)


как обычно весь код:
Code
rem
rem AGK Application
rem

rem Portrait App
SetDisplayAspect( 0.66 )
ball1 = loadimage("ball1.png")
createsprite(ball1)
rem A Wizard Did It!
do

setspriteposition(ball1,35,35)
                      Sync()
loop

функция setspriteposition(id,x,y) позиционирует спрайт с указанным id в координатах (х , y)
опля спрайт то увидели?)
а теперь пробуйте менять дробную самой первой функции), и вы точно наверное поймете зачем она нужна, поменяйте её так например 0.10), да и так и оставьте норм размер.

продолжим....
теперь удалим функцию SetDisplayAspect( ) и вставим эту) за место неё setvirtualresolution(320,480)
это функция больше подходит для телефонов, по экспериментируйте с ней меняя разрешение.
//на данном этапе нам уже понадобятся переменные для того чтоб знать где ваше наш мяч в данный момент находится)

//пишем до главного цикла
Code

//координаты x,y
x as integer
y as integer

//скорость
ispeedX = 5
ispeedY = 5
CountClick as integer


чего мы сделали?
объявили переменные целого типа, x и y нам известны только при старте программы, но нам нужно чтоб мяч двигался, по этому его координаты мы пока только объявили.
и объявили переменную CountClick она у нас будет отвечать за количество кликов по нашему мячу)
весь код по традиции))
Code
setvirtualresolution(320,480)
ball1 = loadimage("ball1.png")//загрузили спрайт
createsprite(ball1)//создали спрайт

//координаты x,y
x as integer
y as integer

//скорость
ispeedX = 5
ispeedY = 5
CountClick as integer

do

                       Sync()
loop

пора запускать наш мячик)

пишем в главном цикле:

Code

setspriteposition(ball1,x,y)
x = x + ispeedx
y = y + ispeedy

тут мы просто в главном цикле к позиции спрайта добавляем скорость), и мяч постоянно движется, но пока он просто улетает за экран и его не видно потом sad сделаем так чтоб он отскакивал сперва от
нижнего края экрана, пока самым примитивным образом)

тут есть один момент) который нужно знать, всегда если мы загружаем спрайт функцией LoadImage() то начальные координаты спрайта считаются 0,0 то есть самый левый верхний угол
существует еще функция загрузки спрайта которая загружает спрайт, у которого начальные координаты начинаются от центра, это удобно например если нужно вращать его( пример колесо), не помню название функции)), как вспомню пропишу сюда))

и тут началась логика))
Code

if (x < 0 ) then ispeedx = abs(ispeedx)
if (y < 0 ) then ispeedy = abs(ispeedy)
if x > (GetDevicewidth() - getspritewidth(ball1)) then ispeedx =- abs(ispeedx)
if y > (GetDeviceheight() - getspriteheight(ball1)) then ispeedy =- abs(ispeedy)


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

по давней традиции полный код))

Code
setvirtualresolution(320,480)
ball1 = loadimage("ball1.png")//загрузили спрайт
createsprite(ball1)//создали спрайт

//координаты x,y
x as integer
y as integer

//скорость
ispeedX = 5
ispeedY = 5
CountClick as integer

do

setspriteposition(ball1,x,y)
x = x + ispeedx
y = y + ispeedy

//отскок мяча от края экрана
if (x < 0 ) then ispeedx = abs(ispeedx)
if (y < 0 ) then ispeedy = abs(ispeedy)
if x > (GetDevicewidth() - getspritewidth(ball1)) then ispeedx =- abs(ispeedx)
if y > (GetDeviceheight() - getspriteheight(ball1)) then ispeedy =- abs(ispeedy)

                         Sync()
loop


скомпилируйте и за пустите игру) мяч будет отскакивать от стенок, причем мы это сделали довольно примитивным методом)

пару слов о функциях которые использовались в двух проверках) smile

если вы знаете хоть не много англ язык то сами должны понять что это за функции)
для тех у кого с этим проблемосы попробую объяснить,
GetDevicewidth() возвращает ширину экрана
getspritewidth(id) возвращает ширину спрайта, id спрайта параметр функции
ну и похожие две функции соответственно возвращают высоту спрайта, и экрана

то есть проверка по оси х(например) выглядит так:
если наш спрайт по оси х(не забываем у нас спрайт позиционирован так что там стоят координаты переменных х , и y)больше чем ширина экрана - ширина самого спрайта, (это трудно понять для начала но если хорошо по думать то все станет ясно)))), ведь наш спрайт начинается с координат 0,0 smile

настал черед нашей уже наверное забытой переменной) которая отвечает у нас за кол-во кликов)
по нашему мячику, но нам нужна будет еще одна переменная.

назовем её IspID wink кстати первая буква i означает тип переменной, в данном случае это целое число, это совсем не обязательно ставить букву "i" перед каждой переменной я это делаю для удобства, для того чтобы знать какого типа переменная, до главного цикла её объявим сразу за переменной CountClick

Code
if ( GetPointerPressed ( ) = 1 ) then IspID = GetSpriteHit ( GetPointerX ( ), GetPointerY ( ) )


разберем эти функции и вообще че это такое))

функция GetPointerPressed ( ) возвращает 0 если не нажали на экран, или 1 если нажали(true,false ей аналог)
GetPointerX ( ) возвращает координаты по оси х того места на девайсе где ткнули пальцем))), ну и та же функция для оси y
то есть эта проверка на то что:
если нажали на экран то записываем в переменную IspID id спрайта

Code
if  (getspriteimageid(ball1)) = (IspID)
                    CountClick= CountClick+1
                    setspritecolor(ball1,random(1,255),random(1,255),random(1,255),100)
                    IspID=0

endif


тут все еще проще)если id спрайта совпадает с id спрайтом этого же спрайта))))
если они совпадают то меняем цвет функцией setspritecolor(id,цвет,цвет,цвет,прозрачность), в которых прописаны случайные числа от 1 до 255
и обнуляем переменную IspIDдля того чтоб наш мяч не зациклился на рандом цвете))
полный код:
Code

setvirtualresolution(320,480)
               ball1 = loadimage("ball1.png")//загрузили спрайт
createsprite(ball1)//создали спрайт

//координаты x,y
x as integer
y as integer

//скорость
ispeedX = 5
ispeedY = 5
CountClick as integer
IspID as integer

do

setspriteposition(ball1,x,y)
x = x + ispeedx
y = y + ispeedy

//отскок мяча от края экрана
if (x < 0 ) then ispeedx = abs(ispeedx)
if (y < 0 ) then ispeedy = abs(ispeedy)
if x > (GetDevicewidth() - getspritewidth(ball1)) then ispeedx =- abs(ispeedx)
if y > (GetDeviceheight() - getspriteheight(ball1)) then ispeedy =- abs(ispeedy)

//считаем клики
if ( GetPointerPressed ( ) = 1 ) then IspID = GetSpriteHit ( GetPointerX ( ), GetPointerY ( ) )

if  (getspriteimageid(ball1)) = (IspID)
                 CountClick= CountClick+1
                 setspritecolor(ball1,random(1,255),random(1,255),random(1,255),100)
                 IspID=0

endif
//ну и просто выводим количество кликов по спрайту(у нас же есть переменная которая считает наши клики по спрайту)

print ("click")
print(CountClick)
                 Sync()
loop

для загрузки перед игрой можно использовать картинку она должна наызватся так AGKSplash.png не обязательно png но название должно быть таким
для фона нужно иметь картинку совпадающую желательно с размерами экрана, и загружать нужно её самую первую например так
Code
CreateSprite ( LoadImage ( "bg.jpg" ) )

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

для того чтоб использовать звук например при клике на спрайт, нужно его сперва загрузить
до главного цикла загрузить сам звук, например сразу после объявления всех переменных
Code
fx = Loadsound( "BLIP1.WAV" )


И затем в нужном месте его вставить, например там где мы нажимаем на спрайт
Code
if  (getspriteimageid(ball1)) = (IspID)
     CountClick= CountClick+1
     setspritecolor(ball1,random(1,255),random(1,255),random(1,255),255)
     IspID=0
//добавить эту строку
PlaySound( fx )

с праздником всех женского пола)))


Сообщение отредактировал arrow25 - Четверг, 12 Июля 2012, 05:45
allxumukДата: Воскресенье, 12 Февраля 2012, 14:21 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote (arrow25)
как высчитать процент(например )попаданий, то есть есть одно число и есть еще одно, заранее они просто не известны(например сколько раз я ткнул на определенный спрайт и с сколько раз я ткнул не на него, т.е мимо)??)

В процессе игры подсчитываешь общее количество кликов и количество кликов по спрайту. В конце, делишь количество кликов по спрайту, на общее количество кликов и умножаешь на 100.

Вообще вопросы нужно задавать в отдельных темах, а конкретно этот вопрос нужно задавать гуглу, потому что должно быть стыдно.

По поводу уроков по AGK, то они однозначно нужны и кому-нибудь пригодятся, но уроки нужно оформлять так, чтобы было удобно читать.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
arrow25Дата: Четверг, 08 Марта 2012, 07:20 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
спасибо за ответ, по поводу уроков учту), просто это первый урок в моей жизни который я написал, скорей всего я его до оформлю.
по поводу стыдно): мне ни разу не стыдно спросить про это, я даже не стыжусь говорить о том что мое образование всего 8 классов обычной школы.
про google конечно понятно, что лучше спросить у него
но я же спрашиваю именно про игровой процесс), зачем тогда вообще этот форум и сайт есть?

Добавлено (08.03.2012, 07:20)
---------------------------------------------
апну тему, так как до оформил её) smile

Сообщение отредактировал arrow25 - Четверг, 08 Марта 2012, 04:37
allxumukДата: Четверг, 08 Марта 2012, 08:54 | Сообщение # 4
старожил
Сейчас нет на сайте
Вот это уже другое дело.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
arrow25Дата: Воскресенье, 11 Марта 2012, 00:31 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
да я сам в шоке), сча еще думаю добавить звук и какой то логический конец с алгоритмом который ты мне подсказал
алхимик у тя случаем он не установлен?) а то чето звук не могу воспроизвести,при клике на спрайт, ошибку выдает((
или допилить этот урок), так то отскок от стен можно одной функцией сделать)), ну по старинке думаю лучше будет разобрать код че там ке чему
кто бы с переводом справки помог было бы ваше суперски)())

Добавлено (11.03.2012, 00:31)
---------------------------------------------
нашел интересное видео по физике
http://www.youtube.com/watch?v=I03qn5ROhu0&feature=player_embedded

исходник видео
Code
rem Preben Eriksen, Playing with AGK physics.

SetVirtualResolution ( 800 , 480 )
SetOrientationAllowed ( 1, 1, 1, 1 )

centx = GetDeviceWidth ( ) / 2
centy = GetDeviceHeight ( ) / 2

global myspriteindex = 1
global width,height
width = GetDeviceWidth ( )
height = GetDeviceHeight ( )

dim mysprites[ 1000 ]

global startrecord = 0
global maxrecord = 500
global recordindex = 0
dim recordxy[ (maxrecord + 1) * 2 ] as integer
global tmp as string

rem A Wizard Did It!
for i = 1 to maxrecord
         makesprite()
next

SetPhysicsGravity ( 0, 200 )
//SetPhysicsDebugOn ( )
SetSyncRate( 60, 0 )

playagk()

AddVirtualButton( 1, 50, 120, 100 )
SetVirtualButtonColor( 1, 0, 255, 0 )
SetVirtualButtonText( 1, "Record" )

AddVirtualButton( 3, 50, 240, 100 )
SetVirtualButtonColor( 3, 0, 255, 0 )
SetVirtualButtonText( 3, "Joint" )

AddVirtualButton( 2, 50, 360, 100 )
SetVirtualButtonColor( 2, 0, 255, 0 )
SetVirtualButtonText( 2, "save" )

ang# = 0
joint = 0

do

if ( GetVirtualButtonReleased( 2 ) = 1)
         fileid = OpenToWrite ( "record.txt", 0 )
         for i = 0 to recordindex
           tmp = "a["+Str(i*2+0)+"]="+Str( recordxy[i*2+0] )
           WriteString ( fileid, tmp + ";" )
           tmp = "a["+Str(i*2+1)+"]="+Str( recordxy[i*2+1] )
           WriteString ( fileid, tmp + ";" )
         next
         WriteString ( fileid, " " )
         CloseFile ( fileid )
endif

if ( GetVirtualButtonReleased( 3 ) = 1  )
       if joint = 1
         joint = 0
         SetVirtualButtonColor( 3, 0, 255, 0 )
       else
         joint = 1
         SetVirtualButtonColor( 3, 255, 0, 0 )
       endif
endif
if ( GetVirtualButtonReleased( 1 ) = 1 or startrecord = 1 )

      if GetVirtualButtonReleased( 1 ) = 1 and startrecord = 1
          startrecord = 0
          SetVirtualButtonColor( 1, 0, 255, 0 )
          SetVirtualButtonText( 1, "Record" )
          for i = 1 to maxrecord
          SetSpritePhysicsOn ( mysprites [ i ] , 2 )
          next
      else

          SetVirtualButtonColor( 1, 255, 0, 0 )
          SetVirtualButtonText( 1, "Stop" )
          if startrecord = 0
           recordindex = 1
          endif
          startrecord = 1

       if ( GetPointerState ( ) = 1  )
          oldx# = x#
          oldy# = y#
          x# = GetPointerX ( )
          y# = GetPointerY ( )
          SetSpritePosition (  mysprites [ recordindex ] , x# , y# )
          recordxy[ recordindex * 2 + 0 ] = x#
          recordxy[ recordindex * 2 + 1 ] = y#
          if recordindex > 1
          DeleteJoint( mysprites [ recordindex ] )
          if joint = 1
            CreateWeldJoint( mysprites [ recordindex ], mysprites [ recordindex ], mysprites [ recordindex - 1], x#, y#, 0 )
          endif
          endif
          SetSpritePhysicsOff ( mysprites [ recordindex ] )

          recordindex = recordindex + 1
          if recordindex >= maxrecord
            recordindex = 1
          endif
       endif
      endif

endif

      fps = ScreenFPS ( )
      Print ( fps )
      Sync()
loop

function makesprite()
         mysprites [ myspriteindex ] = createSprite ( 0 )
      setSpriteColor ( mysprites [ myspriteindex ] , random ( 60 , 155 ) , random ( 60 , 155 ) , random ( 60 , 155 ) , 255 )
      setSpriteSize ( mysprites [ myspriteindex ] , 14 , 14 )
      setSpriteAngle ( mysprites [ myspriteindex ] , 0 )
      SetSpritePosition( mysprites [ myspriteindex ], 1000 , 1000 )
      SetSpritePhysicsOn ( mysprites [ myspriteindex ] , 2 )
         myspriteindex = myspriteindex + 1
endfunction

function playagk()
dim a [ maxrecord * 2 ] as integer

// draw agk
spritestart = 0
maxblocks = 953
a[0]=0; a[1]=0; a[2]=260; a[3]=247; a[4]=260; a[5]=247; a[6]=260; a[955]=0;
for l = 0 to 800

for i = 1 to ((maxblocks-1)/2)
      SetSpritePosition (  mysprites [ i+spritestart ] , a[i*2+0] + (sin(i+l)*(800-l)) ,a[i*2+1] + (cos(i+l)*(800-l)) )
      SetSpritePhysicsOff ( mysprites [ i+spritestart ] )
next i
      Sync()
next l

//
for i = 1 to ((maxblocks-1)/2)
      SetSpritePosition (  mysprites [ i+spritestart ] , a[i*2+0] ,a[i*2+1] )
      SetSpritePhysicsOff ( mysprites [ i+spritestart ] )
// Sync()
next
// pause
for i = 0 to 30*1
Sync()
next
//enable physics.
for i = 1 to ((maxblocks-1)/2)
SetSpritePhysicsOn ( mysprites [ i+spritestart ] , 2 )
Sync()
next
// pause
for i = 0 to 30*6
Sync()
next
//
spritestart = 0
// fireworks
maxblocks = 224
a[0]=0; a[1]=0; a[2]=433; a[3]=474; a[4]=433; a[5]=470; a[6]=433; a[225]=50;

for i = 1 to ((maxblocks-1)/2)
      SetSpritePosition (  mysprites [ i ] , a[i*2+0] ,a[i*2+1] )
      SetSpritePhysicsOff ( mysprites [ i ] )
      Sync()
next
//enable physics.
for i = 1 to maxblocks
SetSpritePhysicsOn ( mysprites [ i ] , 2 )
next
for i = 0 to 30*4
Sync()
next

spritestart = 0
maxblocks = 322
a[0]=0; a[1]=0; a[2]=412; a[3]=136; a[4]=410; a[5]=136; a[318]=421; a[319]=166; a[320]=425; a[321]=163; a[322]=388; a[323]=161;

for i = 1 to ((maxblocks-1)/2)
      SetSpritePosition (  mysprites [ i+spritestart ] , a[i*2+0] ,a[i*2+1] )
      SetSpritePhysicsOff ( mysprites [ i+spritestart ] )
      Sync()
next
// pause
for i = 0 to 30*2
Sync()
next
//enable physics.
for i = 1 to maxblocks
SetSpritePhysicsOn ( mysprites [ i+spritestart ] , 2 )
next
// pause
for i = 0 to 30*2
Sync()
next

endfunction


Сообщение отредактировал arrow25 - Четверг, 08 Марта 2012, 10:09
Kefir87Дата: Воскресенье, 11 Марта 2012, 01:40 | Сообщение # 6
участник
Сейчас нет на сайте
Перевожу видео http://www.youtube.com/watch?v=Mr21vCiQ3HY, видеоурок по AGK
Если есть веб-дизайнер-энтузиаст, который состряпает сайт на любом движке с приятным дизайном, буду рад сотрудничеству (домен и хостинг оплачу).


Сообщение отредактировал Kefir87 - Воскресенье, 11 Марта 2012, 02:01
allxumukДата: Воскресенье, 11 Марта 2012, 08:44 | Сообщение # 7
старожил
Сейчас нет на сайте
Quote (arrow25)
алхимик у тя случаем он не установлен?) а то чето звук не могу воспроизвести,при клике на спрайт, ошибку выдает((

Инсталятор где-то на винте лежит, вечером посмотрю.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
GavolotДата: Воскресенье, 11 Марта 2012, 09:47 | Сообщение # 8
Последователь Тени
Сейчас нет на сайте
Quote
и цикл с заебавшим начинающих программистов словом))

Убери, а то заминусуют зря. Материться нельзя))


В общем что-то делаю, но пока не пойму ни как :)
Тень - выражение основной сущности человека.
arrow25Дата: Понедельник, 12 Марта 2012, 19:42 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (allxumuk)
Инсталятор где-то на винте лежит, вечером посмотрю.

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

Quote (Gavolot)
Убери, а то заминусуют зря. Материться нельзя))

убрал) smile


Сообщение отредактировал arrow25 - Понедельник, 12 Марта 2012, 19:48
ReSeRДата: Четверг, 15 Марта 2012, 17:53 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
Вот он движок моей мечты xD...Это язык более понятен. Спасибо за урок. Подскажите а он полностью платный? на Android я не смогу портировать игру?

Добавлено (15.03.2012, 17:24)
---------------------------------------------
Попробую этот движок.

Добавлено (15.03.2012, 17:53)
---------------------------------------------
Жду Продолжения!!!! cry cry cry


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
arrow25Дата: Пятница, 16 Марта 2012, 22:20 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Quote (ReSeR)
Вот он движок моей мечты xD...Это язык более понятен. Спасибо за урок. Подскажите а он полностью платный? на Android я не смогу портировать игру?

к горькому сожалению он платен((, инди версия этого движка стоит 100+ с чем то американской валюты), на андройд экспортировать можно, но только в полной версии(.

Добавлено (16.03.2012, 22:20)
---------------------------------------------
дальнейшие уроки скорей всего будут проходить так:

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

Сообщение отредактировал arrow25 - Пятница, 16 Марта 2012, 22:15
ReSeRДата: Пятница, 16 Марта 2012, 22:34 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Quote (arrow25)
к горькому сожалению он платен((, инди версия этого движка стоит 100+ с чем то американской валюты), на андройд экспортировать можно, но только в полной версии(.


Тоесть вы создаете игры просто в самом движке и не куда их не портируете?


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
arrow25Дата: Пятница, 16 Марта 2012, 22:46 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
Quote (ReSeR)
Тоесть вы создаете игры просто в самом движке и не куда их не портируете?

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


Сообщение отредактировал arrow25 - Пятница, 16 Марта 2012, 22:49
ReSeRДата: Пятница, 16 Марта 2012, 22:48 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Понятно. Не чего не осталось бесплатного в этом мире xD А кряка на эти движки наверно скорее всего не будет xD

Добавлено (16.03.2012, 22:48)
---------------------------------------------
Понятно. Не чего не осталось бесплатного в этом мире xD А кряка на эти движки наверно скорее всего не будет xD


FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
arrow25Дата: Пятница, 16 Марта 2012, 23:26 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
если есть знакомый крякер)), пусть напишет

Сообщение отредактировал arrow25 - Пятница, 16 Марта 2012, 23:26
ReSeRДата: Суббота, 17 Марта 2012, 12:03 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
Ну тут как я понял Триал ты не крякнеш. При покупки они представляют тебе новую версию на скачку.

FastRoad[PC][Android](Забыто)
COSMO 3D[PC][Android](Забыто)
SnowBall[PC][Android](Замороженно)
arrow25Дата: Четверг, 22 Марта 2012, 20:51 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
да кому надо тот купит её и так, так то на этом движке мне кажется можно реализовать в 2d можно все что угодно были бы мысли и мозги), функций там умотатся
СамоделкинДата: Вторник, 17 Апреля 2012, 19:00 | Сообщение # 18
участник
Сейчас нет на сайте
Новую тему плодить не хочется. -
Я так и не понял по сабжу. Поясните, кто знает.
1) Сам AGK вообще никаких готовых проетов и не собирает? (как например это делает юнити).
Для каждой платформы нужно ставить набор тулзов (IDE+SDK и тд) и в них самих все делать? Т.е. самому ручками все собирать и тестировать и править в сторонних инструментах?

2) В триале принципиально не работает broadcasting (запуск проектов на девайсах по wi-fi) или это только у меня?)
(По триалу вообще никаких выводов не сделать, кроме того что BASIC предельно прост и его осилит вообще любой.)
allxumukДата: Вторник, 17 Апреля 2012, 20:11 | Сообщение # 19
старожил
Сейчас нет на сайте
Самоделкин, это тема с уроками и вопросами по ним. Для отдельных вопросов заведи новую тему.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
СамоделкинДата: Среда, 18 Апреля 2012, 18:46 | Сообщение # 20
участник
Сейчас нет на сайте
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » уроки по app game kit (предлагаю делать уроки)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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