forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Blitz3D (http://forum.boolean.name/forumdisplay.php?f=14)
-   -   Bomberman_Standard_Edition (http://forum.boolean.name/showthread.php?t=79)

Fant 18.03.2006 20:26

Цитата:

Originally posted by axel186@18.3.2006, 15:39
не уверен, но может надо сделать spd#=5 или скока там надо...

Так не получится! Игрок должен двигаться не быстро, а плавно...

jimon 18.03.2006 22:07

в твоем методе перемещения нельзя задать точное перемещение на определеную позицию (чето не то сказал)

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

Fant 18.03.2006 22:30

Цитата:

Originally posted by jimon@18.3.2006, 21:07
в твоем методе перемещения нельзя задать точное перемещение на определеную позицию (чето не то сказал)

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

Если честно, но ничего не понятно (почти)

То есть я должен при нажатии "вперед" передвигать игрока на "фиксированную" координату... ?

tormoz 19.03.2006 00:20

Цитата:

KEY_MOVE_LEFT = KeyHit(75)
KEY_MOVE_UP = KeyHit(72)
KEY_MOVE_RIGHT = KeyHit(77)
KEY_MOVE_DOWN = KeyHit(76)

If* KEY_MOVE_UP=1 AND mov=0
For i=1 To step_player
* mov=10 ; чем выше число, тем больше плавность движения
Next
EndIf

If mov>0
* MoveEntity player\obj,0,0,spd#
* mov=mov-1
End If

*

step_player количество клеток
spd подбери, чтобы при step_player=1 игрок двигался на одну клетку

Если и сейчас непоймешь, то ничем помочь больше не могу :)

Обрати внимание на KEY_MOVE_UP = KeyHit(72)

Fant 24.03.2006 21:19

Цитата:

Originally posted by tormoz@18.3.2006, 23:20
Цитата:

KEY_MOVE_LEFT = KeyHit(75)
KEY_MOVE_UP = KeyHit(72)
KEY_MOVE_RIGHT = KeyHit(77)
KEY_MOVE_DOWN = KeyHit(76)

If* KEY_MOVE_UP=1 AND mov=0
For i=1 To step_player
* mov=10 ; чем выше число, тем больше плавность движения
Next
EndIf

If mov>0
* MoveEntity player\obj,0,0,spd#
* mov=mov-1
End If

**

step_player количество клеток
spd подбери, чтобы при step_player=1 игрок двигался на одну клетку

Если и сейчас непоймешь, то ничем помочь больше не могу :)

Обрати внимание на KEY_MOVE_UP = KeyHit(72)


Все никак не доберусь что бы напечатать:
Не идет так,tormoz, моя мечта это keyDown а при keyhit устанешь ее клацать. Насчет мягкости - ничего твой вариант, но хотелось бы "мягче", а mov в твоем коде отвечает не за мягкость, а за количество пройденных клеток (разумеется чем >mov тем > пройдено и нем мягче! Но это не совсем то, что мне нужно!

Есть ли еще варианты как можно сделать мягкое передвижение игрока на 1 клетку с использованием keydown ?

tormoz 25.03.2006 01:24

Ты хочешь и рыбку съесть и на трамвае уехать :)

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

Maxus 25.03.2006 17:15

А не проще по вектору перемешать объек из клетки в клетку?

Fant 26.03.2006 14:06

Цитата:

Originally posted by Maxus@25.3.2006, 16:15
А не проще по вектору перемешать объек из клетки в клетку?

Может и проще,но я не знаю как! Покажите пример и я может по вектору буду!

Fant 31.03.2006 01:52

Вообщем сделал я кое-как передвижение!

Очень прошу оценить его!

И...это лучшее, что я придумал!!! Помогите мне пожалуйста сделать код лучше, так как этот код почему-то очень много ФПС жрет!!!

Я отметил место, где работал, как ";НЕХОРОШИЙ КОД+++++++++++++++++++++++="


Ну а баг, о котором я писал выше, я никак не могу исправить...это уже как бич...никак! ничего не могу сделать!!!!!!! :'((

tormoz 31.03.2006 04:53

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

Fant 31.03.2006 11:05

Цитата:

Originally posted by tormoz@31.3.2006, 2:53
Если ты думаешь, что кто то будет комплектовать твой код ресурсами. то ты обольщаешься :)
выкладывай все полностью. либо правь код так. чтобы он запускался без ресурсов

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

Вот ссылка:
http://community.boolean.name/index.php?ac...ype=post&id=826
Здесь как раз я ресурсы выложил! Вы скачиваете ресурсы (там же код) и просто на старый код кидаете новый! И...
Прикиньте хотя бы, почему у меня ужасное падение ФПС...наверное много расчетов?
Но не мог же ФПС упасть из-за новых двух глобальных...не знаю вообщем.

tormoz 31.03.2006 18:21

Все отлично работает
фпс 210
количество текста уменьши, может у тебя видюха его не любит (дрова старые)

Fant 31.03.2006 20:34

То есть движение сделано на отлично? Или что-то нужно доработать?
Подскажите, может его стоит "оптимизировать"? (если нужно, разумеется)
Если нужно оптимизировать, то хотя бы покажите как лучше!

Вообщем одни "?" :@

Но проект-то стоять не должен ;-)

tormoz 01.04.2006 01:54

движение нормальное.
камера отвратительная
клавиши управления сделай стандартные (стрелки и всда)
И начинай делать графику. То что есть - ваще непонятно. нафиг столько ресурсов ?
Я процедурно бы лучше внешний вид сделал. :)
Главное - вид камеры сделай.

Fant 01.04.2006 12:47

2Tormoz
Делать я все буду вечером, но я не совсем понял:
1)Камеру я старался делать. Вы точно все возможности использовали? 1,2,3,7,9 на дополнительной клаве, колесико мыши, левая и правая кнопка мыши. - если все использовали, то подскажите что мне там редактировать-то хоть, а то по-моему камера - super!
2) Клавиши это 3 секунды делов...я их изменю, базара нет) Но погоды это не сделает, все-равно в проекте будет "меню изменения клавиш" Но как уже сказал сделаем!
3)Графику? Исключено...делал я как-то графику и в максе, и в фотошопе плагинами мутил и понял, что худо выходит) насчет графики у меня созрел хитрый план! Я сеструху сдам учиться (она сама хочет) Corel Draw (4 недели курс) и потом на 3DMAx (если она успешно закончит Corel Draw) и будет графика, а пока НУЖЕН ХУДОЖНИК! (или ХУДОЖНИЦА) если вы таких знаете, посоветуйте их мне! Я с радостью свяжусь и может "сработаемся"
4)Ресуры это чисто для "примера", но теперь я понимаю, что их нужно "урезать" и делать как можно больше средставми блиц (что бы проетк меньше весил, и средства блиц не так уж и плохи, так что можно сделать "даже очень ничего")
5) Я процедурно бы лучше внешний вид сделал. - я очень рад что мне помогает и дает советы такой опытный кодер :super: (просьба дать хотя бы 1 пример, как процедурно сделать крисиво кнопку в меню (или/и фон) + прибамбасы (например что бы кнопка светилась и прыгала ;-), когда на нее навели мышь)
6) Насчет "много ресурсов" ... ну согрешил!((( буду их "урезать"
7) В вот вид камеры тут я уже просто не знаю! посоветуйте! Мне так легче, когда меня кто-то направляет!

И...хочу выразить благодарность за Ваш интерес к моему скромному проекту! ;)

tormoz 01.04.2006 20:34

По меню:
создай квад:

Код:

Function CreatePlane_m(File$,fl)
Local texture,scx#,scy#

 mesh=CreateMesh()
 surf=CreateSurface(mesh)

  AddVertex surf,-1,1,0,0,0:AddVertex surf,1,1,0,1,0
  AddVertex surf,1,-1,0,1,1:AddVertex surf,-1,-1,0,0,1
       
        AddTriangle surf,0,1,2:AddTriangle surf,0,2,3
        UpdateNormals mesh
        texture=LoadTexture ( File$,fl)
        img=LoadImage(File$)
       
        scx#=ImageWidth (img)
        scy#=ImageHeight (img)
       
        ScaleMesh  mesh,scx/256,scy/256,1
        EntityTexture mesh,texture
        FreeTexture texture
        FreeImage img
        Return mesh
End Function

Потом помести перед камерой, и делай с ним что хочешь.

Например:
Код:


Function CreateMenu()
menu_stat=0
menu_tip$=""
CameraProjMode cam,0

;-------------Camera---------------
cam_m=CreateCamera()
CameraZoom cam_m,1.4
CameraRange cam_m,.5,100
MoveEntity cam_m,0,0,-5

light_m = CreateLight()
;--------------------------
cursor=LoadImage("menu\cursor.png")
ScaleImage cursor,fx,fx
menu_tip$="glav"
  ;--------------glav-------------------------
  LoadMenu_m("play.png","glav","play","play",0,1)
  LoadMenu_m("options.png","glav","options","options",0,.5)
  LoadMenu_m("credits.png","glav","credits","glav",0,0)
  LoadMenu_m("exit.png","glav","exit","exit",0,-.5)

и тд


Function LoadMenu_m(img$,tip$,mip$,sip$,x#,y#)
 m.menu=New menu
 m\tip$=tip$
 m\mip$=mip$
  m\sip$=sip$
 m\en= CreatePlane_m("menu\"+img$,2)
 m\x=x
 m\y=y
 PositionEntity m\en,m\x,m\y,0
 NameEntity m\en,Handle(m)
 Return m\en
End Function

Function UpdateMenu()
 ;===============================================================================
While Not menu_stat<>0

Delay 1
 ;-------------
        Repeat
 elapsed = MilliSecs () - Time
        Until elapsed       
        ticks = elapsed / period       
        tween# = Float (elapsed Mod period) / Float (period)       
For framelimit = 1 To ticks
        If framelimit = ticks CaptureWorld
        Time = Time + period
  UpdateWorld
 
  ;---------------------------------------------------------------------------
        MHIT=MouseHit(1)
        MHIT2=MouseHit(2)
        MDOW=MouseDown(1)
        mox=MouseX()
        moy=MouseY()
        mxs#=MouseXSpeed()
        mys#=MouseYSpeed()
;----------------------------------
ent=CameraPick (cam_m,mox,moy)

;--------------------------------------
For m.menu=Each menu
If m\stateD=0
 PositionEntity m\en,m\x+m\xs,m\y+m\ys,0
 RotateEntity m\en,m\ts,m\rs,0


 m\xs=m\xs+m\xa
 m\xa=m\xa+(m\x-EntityX(m\en))*0.04
m\xa=m\xa*.9
m\xs=m\xs*.9999

m\ys=m\ys+m\ya
 m\ya=m\ya+(m\y-EntityY(m\en))*0.04
m\ya=m\ya*.9
m\ys=m\ys*.9999

m\rs=m\rs+m\ra
 m\ra=m\ra+(-EntityYaw(m\en))*0.04
m\ra=m\ra*.9
m\rs=m\rs*.9999

m\ts=m\ts+m\ta
 m\ta=m\ta+(-EntityPitch(m\en))*0.04
m\ta=m\ta*.9
m\ts=m\ts*.9999

If m\en=ent
 m\xs=m\xs+mxs*0.0004
 m\ys=m\ys+mys*0.0004
 m\rs=m\rs+mxs*0.04
 m\ts=m\ts+mys*0.2

If mhit
 
  If m\mip$="video"
  wig=GraphicsWidth()
  EndIf
;==================
 ;If m\mip$<>"apple" And m\mip$<>"left_a" And m\mip$<>"right_a" And m\mip$<>"left_m" And m\mip$<>"right_m"
  menu_tip$=m\sip$
 ;EndIf
  ;------------video-----------------
  If m\tip$="video" And m\mip$<>"options"And m\mip$<>"apple"
  wig= m\mip$
  Else

  If m\mip$="apple"
        Select wig
        Case 1024
          hei=768
        Case 800
          hei=600
        Case 640
          hei=480
        End Select
    Save_cfg()
        menu_stat=1 
  EndIf
 
  EndIf
 ;------------------audio---------------
  If m\tip$="audio"
  If m\mip$="left_a"
      If l_audio>0 l_audio=l_audio-10 
    EndIf
    If m\mip$="right_a"
    If l_audio<100 l_audio=l_audio+10   
  EndIf
  If m\mip$="left_m"
      If l_music>0 l_music=l_music-10 
    EndIf
    If m\mip$="right_m"
    If l_music<100 l_music=l_music+10   
  EndIf
  EndIf
;------------------effect---------------
  If m\tip$="effect"
   
    If m\mip$="options"
      Save_cfg()
    Else
        effect=m\mip$
    EndIf
    EndIf
;-------------------------play-----------------
  If menu_tip$="play"
  If m\mip$="1" Or m\mip$="2" Or m\mip$="3"
    mode_game=mode_game+1
    If mode_game>3 mode_game=1
  EndIf
  EndIf 
;---------------------------------------------
 
  stateMenu()
;------------------select-------------
  If menu_tip$="exit"
  menu_stat=10
  EndIf
;--------------play---------
  If menu_tip$="play"
  ;menu_stat=4
  EndIf
;------------------------------------
EndIf

EndIf

Else
 RotateEntity m\en,m\stateD,0,0
EndIf

  If m\stateD>m\state  m\stateD=m\stateD-10
  If m\stateD<m\state  m\stateD=m\stateD+10


Next       
;----------------------------------       
Next
RenderWorld
 DrawImage cursor,mox,moy

Flip 0
Wend
End Function

Примерно так.
кнопки реагируют на мышку и переворачиваются при клике

Камера должна быть без регулировок сразу на месте.
Минимум управления делай. Юзеры на таких играх не будут искать клавиш и тд.
подними камеру повыше, чтобы было видно все поле (или 2\3 хотя бы)
Сделай повороты камеры плавней.
Процедурную графику лучше не юзай, учись моделить и текстурить в максе - на такую простую графику научишся за пару дней.
Используй несколько материалов на кубиках: например деревянный ящик обшитый полосами из металла. При взрыве пусть разлетается щепками

tormoz 01.04.2006 20:37

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

Fant 02.04.2006 01:28

Вообщем коды те нехорошие! Не знаю что с ними делать...и не работают они...

Камеру подправил: правая кнопа мыши - менять режим ;)
Управление изменил: на курсор ;)

Что еще там стоит доработать?

Не знаю что делать с багом: :wallbash:
Если нажать на "создать приз" (f1-f7) то будет нехорошо (игра зависнет)
Если включить режим "случайно расставлять кубики, тоже виснет
Однако если загружать готовую карту, то призы успешно добавляются!

С графикой я еще ничего не менял, это пожождет, так что ресурсы (старые) пока еще нужно оставить

А насколько лучше все делать процедурно!? Что мне это даст!? Больше ФПС?
или только экономия места...?

Fant 02.04.2006 01:28

Вложений: 1
Вообщем коды те нехорошие! Не знаю что с ними делать...и не работают они...

Камеру подправил: правая кнопа мыши - менять режим ;)
Управление изменил: на курсор ;)

Что еще там стоит доработать?

Не знаю что делать с багом: :wallbash:
Если нажать на "создать приз" (f1-f7) то будет нехорошо (игра зависнет)
Если включить режим "случайно расставлять кубики, тоже виснет
Однако если загружать готовую карту, то призы успешно добавляются!

С графикой я еще ничего не менял, это пожождет, так что ресурсы (старые) пока еще нужно оставить

А насколько лучше все делать процедурно!? Что мне это даст!? Больше ФПС?
или только экономия места...?

tormoz 02.04.2006 04:32

Цитата:

Originally posted by Fant@1.4.2006, 23:28
Вообщем коды те нехорошие! Не знаю что с ними делать...и не работают они...

Код вырезан из рабочего меню. Чтобы ты понял принцип построения динамических кнопок
Цитата:

Камеру подправил: правая кнопа мыши - менять режим ;)
Управление изменил: на курсор ;)
Что еще там стоит доработать?

Камеру размести НАД полем, чтобы был хороший обзор.
Сейчас играть просто невозможно- ничего не видно
Или так и задумывалось ? :blink:

Цитата:

Не знаю что делать с багом: :wallbash:
Если нажать на "создать приз" (f1-f7) то будет нехорошо (игра зависнет)
Если включить режим "случайно расставлять кубики, тоже виснет
Однако если загружать готовую карту, то призы успешно добавляются!

Виснет в этом цикле:

;будем выбирать позицию до тех пор, пока
;не выберем ту, где находится пробиваемый кубик
;и нет другого бонуса
While Not (masPrep(x_rnd, z_rnd) = 1 And masBonuses(x_rnd, z_rnd) = 0)
x_rnd = Rand (CFieldWidth)
z_rnd = Rand (CFieldHeight)
Wend

Видимо не находит пробиваемый кубик :))
Цитата:

С графикой я еще ничего не менял, это пожождет, так что ресурсы (старые) пока еще нужно оставить

А насколько лучше все делать процедурно!? Что мне это даст!? Больше ФПС?
или только экономия места...?

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

Fant 02.04.2006 11:07

Про камеру:

:bad:
Как ничего не видно?

5! (пять) режимов камеры!
1. от первого лица
2. вид немного издалека (от 3 лица)
3. вид подальше (от 3 лица)
4. вид сверху (о котором вы говорили)
5. вид сбоку

Переключать ПРАВОЙ кнопкой мыши!

Теперь почему вы говорите, что ничего не видно!? Я не понимаю в чем проблема!

Про меню:

Не понял я...попробую еще разобраться, но мне бы попроще код...

Про баг

Я догадался, что теоретически не находит, но как это исправить?

Про процедуру:

Тогда если захочу морочиться - буду, а если нет, то найду художника(цу)

tormoz 02.04.2006 18:06

Цитата:

Originally posted by Fant@2.4.2006, 9:07
Про камеру:

:bad:
Как ничего не видно?

5! (пять) режимов камеры!
1. от первого лица
2. вид немного издалека (от 3 лица)
3. вид подальше (от 3 лица)
4. вид сверху (о котором вы говорили)
5. вид сбоку

Переключать ПРАВОЙ кнопкой мыши!


Теперь почему вы говорите, что ничего не видно!? Я не понимаю в чем проблема!

У меня переключает только на вид от первого и от третьего
Убери всю эту фигню - она хороша для хардкорщиков.
Помни, что ты делаешь игру для тупых жирных американских беби и для их мамочек.
Оставь один вид, но чтобы было видно все !

Цитата:

Про меню:

Не понял я...попробую еще разобраться, но мне бы попроще код...

Про баг

Я догадался, что теоретически не находит, но как это исправить?

Ищи не рандомом, а перебором всех полей подряд и в конце обязательно проверяй результат - нашел или нет.
Цитата:

Про процедуру:

Тогда если захочу морочиться - буду, а если нет, то найду художника(цу)

Нафиг тебе художник ?
Надергай текстур из любой понравившейся игры

Fant 02.04.2006 18:36

Вложений: 1
Камеру я по быстренькому сделал! Я решил оставить такой вот вид (код вложил! так что посмотрите пожалуйста)

Помни, что ты делаешь игру для тупых жирных американских беби и для их мамочек. :super: усек!

Насчет ошибки понял...буду сидеть и думать...

Вот дергать ничего не буду!!! ВСЕ БУДЕТ МОЕ! без нарушения авторских прав! B) Я так решил!

Короче если камера на 5+ то пока не уберу баг дело не продвинется! Все нужно делать поэтапно...а то вообще запутаюсь!

impersonalis 02.04.2006 20:15

Ресурсы не качаются =/

Fant 02.04.2006 22:01

Вложений: 1
Вот так новость. Выкладываю исходник+ресурсы.

2impersonalis
Хорошо, что вы заглянули в мой пост! А то тяжко весь код одному тянуть! Поможете осветить какой-нибудь сложый вопрос? С багом например!

jimon 02.04.2006 22:31

хватит выкладывать столько ресурсов :) jpg compress...

tormoz 02.04.2006 22:31

Все равно не то.
Скачай пару платформеров и посмотри как сделана камера.
Управление неудобное. При фиксированной камере лучше стрелками вправо\влево не поворачивать, а двигать.
Мины слишком быстро взрываются - отойти не успеваешь.

impersonalis 02.04.2006 23:48

Что-то аттачи еле отдаются. Выкачиватеся только DMaster`ом

impersonalis 03.04.2006 00:09

из-за этого миленького условия цикла:
Код:

;и нет другого бонуса
        While Not (masPrep(x_rnd, z_rnd) = 1 And masBonuses(x_rnd, z_rnd) = 0)
 x_rnd = Rand (CFieldWidth)
 z_rnd = Rand (CFieldHeight)
        Wend

у меня комп намертво повис. (никогда не буду запускать проги без debug`а)

Fant 03.04.2006 14:56

Ясненько, и тчо мне с этим нехорошим кодом делать!? Не удалять же!...

tormoz 03.04.2006 18:33

Я тебе написал что делать
см выше

Fant 03.04.2006 18:38

Цитата:

Originally posted by jimon@2.4.2006, 20:31
хватит выкладывать столько ресурсов :) jpg compress...

Я их выложил потому, что impersonalis сказал, что они не качаются.

2Tormoz... :)
Подумаю насчет того, что делать с кодом! Подумаю!

Fant 03.04.2006 20:10

Цитата:

Originally posted by tormoz@2.4.2006, 20:31
Все равно не то.
Скачай пару платформеров и посмотри как сделана камера.
Управление неудобное. При фиксированной камере лучше стрелками вправо\влево не поворачивать, а двигать.
Мины слишком быстро взрываются - отойти не успеваешь.

А как сделать камеру, что бы было "то" Подскажите пожалуйста! (по возможности подробнее, а то я вас не понимаю до конца и мы уже 2 дня мусолим камеру)
А как сделать "то" управление? Все должно быть относительно камеры! Скажите как лучше сделать "камеру и управление", а то так не хорошо! Вы говорите, что так не так и так не так! Вот скажите теперь мне, как сделать "так" ;)

[code]
While Not (masPrep(x_rnd, z_rnd) = 1 And masBonuses(x_rnd, z_rnd) = 0)
x_rnd = Rand (CFieldWidth)
z_rnd = Rand (CFieldHeight)
Wend
[\code]

Значит если не через рандом, то командой наверное For i=0 to ... этим воспользоваться? А то я что-то недопонял с этим кодом никак...и что искать тоже не понял. Как именно проверять это ((CFieldWidth) (CFieldHeight) - ведь это нужно проверять!?

И...раз уж в том посте не пишут, то спрошу тут. Как процедурно нарисовать например кубик "пробиваемый", то есть вместо файла tpr1.bmp будет нарисовано уже средстваи блиц. Я только не знаю как это!? Кто-нибудь может подсказать?

tpr1.bmp - один из файлов в ресурсах игры (текстурка кубика)

tormoz 03.04.2006 22:08

Пошли вопросы из серии "как мне сделать игру" :)

камера: делай как ХОЧЕШЬ. я тебе сказал, что неудобно. Как удобно - посмотри сам в играх-платформерах (твоя игра к этому жанру относится)

По поводу бонусов и прочего- если твой код не работает. то что ? меняй его. Я за тебя писать функции не буду. Думай сам. Там минимум 3 решения проблемы. В том то и заключается программирование. что ты сам все придумываешь. как тебе организовать логику игры.

Если ты не можешь сообразить с процедурными текстурами - то извини, просто не юзай их.
Пару месяцев назад я тоже в них нефига не понимал вообще.
Скачал примеры с БлитцЕтс и разобрался.
Почитал статьи на геймдев. Помучался сам с кодом.
Ну как тебе объяснить в одном посте информацию, которую сам впитывал неделю почти ?

Fant 03.04.2006 22:37

Пошли вопросы из серии "как мне сделать игру"
- я сломался и мне нужна помощь именно кодом.

камера: делай как ХОЧЕШЬ. я тебе сказал, что неудобно. Как удобно - посмотри сам в играх-платформерах (твоя игра к этому жанру относится)

- так нельзя!!! Критика, критика, а теперь НЕЗНАЮ!!!! ТАК НЕХОРОШО!!!


По поводу глюка...поймите, что я далеко не программист, я учусь совсем не на программирование, просто мне оно нравится и я увлекаюсь, а прошу помочь функцию подправить потому, что у меня уйдет очень-очень много времени на все это!!!

-с процедурным созданием все что нужно было, я узнал...все.

Просто помогите мне с багом! Если вы знаете 3 решения, то почему не подскажете!?

tormoz 04.04.2006 01:16

Извини, код писать мне некогда - своих 2 проекта.
Да и не научишся ты сам никогда.

Первое решение ты сам нашел: For ... Next - перебор всех ячеек. Вот и реализуй его.
Камеру - сам думай. если не хочешь смотреть. как у других.
Чтобы был хороший обзор игрового поля- вот главный критерий.

Кстати, код в игре довольно грамотно в общем написан - если это не ты делал. то кто ?
Если ты писал, то почему на элементарных вещах спотыкаешься ?

Fant 04.04.2006 17:56

Цитата:

Originally posted by tormoz@3.4.2006, 23:16
Извини, код писать мне некогда - своих 2 проекта.
Да и не научишся ты сам никогда.

Первое решение ты сам нашел: For ... Next - перебор всех ячеек. Вот и реализуй его.
Камеру - сам думай. если не хочешь смотреть. как у других.
Чтобы был хороший обзор игрового поля- вот главный критерий.

Кстати, код в игре довольно грамотно в общем написан - если это не ты делал. то кто ?
Если ты писал, то почему на элементарных вещах спотыкаешься ?

Начало писал я, но потом 90% писал Жека - кубики и все о них это его работа. Редактор уровня - его, основы камеры и старое управление тож его, он мне давал основы (показывал как и что) а я потом дописывал или редактировал то, что уже имеется

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

С камерой постараюсь.

А вот насчет ячеек я просто не понял ЧТО перебирать!? Что именно? Какие ячейки!?

Код как будет время буду редактировать так, что бы убирать ресурсы и заменять из кодом...

tormoz 04.04.2006 19:27

Ячейки карты, в которые ты ставишь кубики

Fant 05.04.2006 01:08

Я в этом разделе на какое-то время не смогу новое выкладывать

1) Я еще не решил проблему с багом
2) Не сделал текстуры средставами блиц
3) Когда я сделал игрока таким же размером, как и размер кубика, то обнаружил некоторые погрешности в точности расстановки кубиков и ограждений на поле (то есть пока все не будет точно успокаиваться рано)

Вот когда эти 3 вопроса освещу выложу код!

:unsure: мне жаль, что я сразу не подумал все сделать средствами блиц, обидно, что Вам (всем кто качал) пришлось качать больше, чем "можно было бы сделать" ... короче моя тупость! И в будущем буду умнее!

Еще раз спасибо всем, кто мне помогал!

p.s. если кто-нибудь решит помочь мне кодом с багом, то я буду очень благодарен, а погрешность и "переделку ресурсов" я конечно на себя беру!
* И если кому-нибудь интересен мой проект, милости прошу! Потому, что одному тянуть сложно и как-то скучно! (но все-же слава богу мне хоть всегда и регулярно отвечают, что поддерживает меня морально)

Вот такие дела тут...с бомбером этим...

Fant 07.04.2006 22:13

из всех проблем остался баг, но над ним работают...

А у меня новая трудность. Вот решил все делать с математической точностью...

Объяснение:

Я сделал так, что бы при нажатии кнопки игрок перемещался на 10 единиц. Переделала всю систему управления. И если ничего не касаться, а сразу войти внутрь кубиков, то игрок успешно путешествует внутри!

Проблема:

Если пойти игроком и "коллидется" с пробиваемым(синим) кубиком, то появятся погрешность в .001 и игрок уже не пройдет через кубики...не знаю что с этим делатЬ!!!!
(кстати, коллии со стенкой тож глюк такой дают...

И еще одно! Я тестировал сейчас. Без пробиваемых кубиков путешествовал среди "непробиваемых" глюка не было. То есть 1) баг не из-за кривого расчета перемешений. 2) Непробиваемые кубики четко расставлены.

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

Посмотрите как работает у вас? Можете ли вы мне что-нибудь посоветовать что бы избавиться от этого баг?

И еще! Прошу проверить мою игру! Походите там на поле (или просто запустите, пару секунд пройдитесь, бомбочку (левой кнопкой мыши) поставьте и минут на 10 продержите игру включеной. У вас нет падения ФПС?
А то я не увернен, компьютер у меня тормозит или игра.

Жека 09.04.2006 15:06

Отрывок из книги Стюарта Мак Роберта "Руки титана"

"...многие культуристы оправдывают свои
действия неизменным - и необоснованным! - принципом: "чем больше, тем
лучше." "Я безумно хочу нарастить мускулы! Если я буду целый день, до
упора торчать в спортзале, в конце концов своего добьюсь! К тому же, я
не такой, как все! Я - особенный! И если не расслаблюсь, не оступлюсь,
обязательно получу свое!" Боже, как высокопарно! А главное - глубоко
ошибочно.
Культуристы, будьте реалистами! Ни горячее желание, ни запредельный
фанатизм не способны привести к росту мышц. Ни вера в успех, ни обост-
ренная интуиция, ни настойчивость - ничто не заменит правильной методики
тренинга
!
В предыдущей главе я рассказал вам, что первопричиной роста мышц яв-
ляется стресс высокоинтенсивного тренинга. Но это еще не все. Одна из
особенностей физиологии человека заключается в лимитированной способнос-
ти к восстановлению - ваши силы не бесконечны. Поэтому стрессовые наг-
рузки, точнее, объем тренировок, необходимо тщательно дозировать
. Всему,
как говорится, есть предел - в том числе и биохимическим ресурсам орга-
низма.
Понимание принципа интенсивности - только первый шаг на пути постиже-
ния правильной теории тренинга. А второй шаг, повторю, - ясное осознание
того, что восстановительные способности организма весьма ограничены.
Лишь уяснив это, начинаешь понимать, почему необходимо строго контроли-
ровать объем и частоту тренировок. В самом деле, мера нагрузки - такой
же по значению фактор мышечного роста, как и интенсивность. Вы одинаково
блокируете свой прогресс, если недобираете или перебираете с нагрузкой
.
Этому вопросу в бодибилдинге никогда не уделяли должного внимания. И
все потому, что когда-то Уайдер сказал: "Чем больше, тем лучше". Руко-
водствуясь этим "советом", миллионы культуристов по всему миру доводят
себя до крайне опасных степеней перетренированности, не получая взамен
почти никакого роста мышц.
Вопрос связи восстановительных возможностей организма с объемом и
частотой тренировок в современном бодибилдинге почти не обсуждается. А
почему? Дело в том, что такое обсуждение неизбежно приведет к выводу:
принятые сегодня нагрузки с точки зрения их объема и количества сетов
(до 20 на мышцу) являются полным бредом, ибо каждое новое повторение в
сете и каждый новый сет сокращают последующую восстановительную способ-
ность организма.
С каждым последующим сетом растрачивается все больше и больше ограни-
ченных биохимических ресурсов. А это значит, что для сверхкомпенсации,
т.е. для наращивания мускулатуры, практически ничего не остается. Вот
вам простое объяснение тому, почему культурист, истово следующий много-
сетовой системе, после краткого периода начального прогресса обязательно
впадает в пожизненный застой.
Итак, тренируясь, вы расходуете свои биохимические ресурсы, и чем
больше вы их расходуете, тем больше приходиться возмещать. Отсюда еще
один логический вывод: оптимальный результат достигается минимальным, в
рамках необходимого, числом упражнений
. Сообразили? Чем больше упражне-
ний вы делаете, тем ниже потенциал послетренировочного мышечного роста!

О частоте тренировок

Многие культуристы даже не задумываются, что процесс роста "массы"
состоит из двух равнозначных элементов: действия и бездействия, трениро-
вок и отдыха. Сама по себе тренировка лишь приводит механизм в действие,
а растет мускулатура именно на отдыхе. Если, конечно, этого отдыха хва-
тает."

Fant 09.04.2006 20:15

А зачем все это?

Fant 10.04.2006 22:39

Баги решились до одурения просто! вот вопрос!!!

Я знаю, что он 100000 обсуждался, но я не помню где! Но спрашиваю еще раз

:@

Как сделать так, что бы ФПС был меньше или равен ну...а сколько вы посоветуете!? Я думаю 80 самое то!

как так сделать!7


Уод без багов пока не выкладываю, а то пока что ничего нового!

impersonalis 10.04.2006 22:46

Потсавить ограничитель ФПС:
как только ФПС превыило допустимую отметку - искусственный простой.
Имхо, лучше скорость выполнения расчитывать по ФПС, а не обрубать их - ноэто - имхо.

Fant 11.04.2006 00:38

лучше скорость выполнения расчитывать по ФПС 8)

Расскажите как это сделать! Поподробнее пожалуйста! И если можно, то где можно достать примеры на эту тему? (если получится и у вас есть такой пример) вложите его пожалуйста что бы я посмотрел! Я-то представляю, что это что-то с главным циклом делать надо, но видимо еще "не достаточно хорошо"

Вообщем поподробнее хотелось бы!

tormoz 11.04.2006 00:56

Тут смотри

impersonalis 11.04.2006 01:13

Тормоз прав - tween# парметр удобен, но на первых парах , имхо, сложновато?

Ну и как-то привык я делать по-другому. :)

Fant 11.04.2006 14:51

Код:

Graphics3D 800,600,32,1
SetBuffer BackBuffer()
 
Cam=CreateCamera()
MoveEntity Cam,0,5,-20
 
For q=1 To 8
 Light=CreateLight(2)
 LightColor Light,Rnd(255),Rnd(255),Rnd(255)
 LightRange Light,10
 MoveEntity Light,Rnd(40)-20,Rnd(40)-10,Rnd(40)-20
Next
 
Type Spheres
 Field Model
End Type
 
SetFont LoadFont("Arial",14)
 
For NSph=1 To 10
 Sph.Spheres=New Spheres
 Sph\Model=CreateSphere(8)
 EntityColor sph\Model,Rnd(255),Rnd(255),Rnd(255)
 TurnEntity sph\Model,0,Rnd(360),0
Next
 
 
 
 
Global RenderTime#
Global Rendered#
 
;MAIN LOOP
While Not KeyHit(1)
 RenderTime=MilliSecs()
 
 
;UPDATE UNITS ON 25hz
 If MilliSecs()-LastUpdateUnits>=40 Then 
  ;<=update units code here
 ;UPDATE SPHERES
 For Sph.Spheres=Each Spheres
 MoveEntity Sph\Model,0,0,0.4
 TurnEntity Sph\Model,-4,0,0
 For q=1 To rndf#
 Next
 Next
;----------------------------- 
 LastUpdateUnits=MilliSecs()
 UpdateWorld() 
 EndIf
 
If KeyDown(28)
 rndf#=20000
Else
 rndf=1000
EndIf
 
;UPDATE CAMERA ON 50hz
 If MilliSecs()-LastUpdateCamera>20 Then 
  ;<=update camera code here
 LastUpdateCamera=MilliSecs()
 If Rendered>0 Then Rendered=Rendered-1 
 EndIf
;RENDRING 
 If Rendered<=0 Then 
 RenderWorld() 
 RenderTime=MilliSecs()-RenderTime
 RenderTime=(RenderTime+LastRenderTime)/2
 
;FPS COUNTER- NOT NEADED, JUST FOR INFORMATION
 FPS=FPS+1
 If MilliSecs()>MS+1000 Then
 MS=MilliSecs()
 MaxFPS=FPS
 FPS=0
 EndIf
 
 Text 10,10,"speed: "+100000/rndf +"%"
 Text 10,50,"FPS: "+MaxFPS
 
 Flip 0 
 Rendered=RenderTime/10
 LastRenderTime=RenderTime
 EndIf 
 
Wend
End

Тогда этот код буду "прикручивать" к игре.

То есть этим методом ФПС контролировать!

Спасибо за ответ!!!

Fant 12.04.2006 00:32

Я вроде бы как бы и использовал этот код, но меня кое-что смутило...
;UPDATE UNITS ON 25hz
;UPDATE CAMERA ON 50hz

А разница?

Я не совсем понял весь код! Прошу хоть немного побольше комментариев, а так в принципе я его интегировал...

Но не могу успокоиться, пока вот не пойму деталей ЭТОГО кода!

Разъясните пожалуйста: что происходит в цикле? Какие основные моменты играют роль при "торможении процесса" ?

Просто добавьте больше комментариев в код, иначе я просто опасаюсь, что сделал неправильно...

tormoz 12.04.2006 02:06

А ты не опасайся - ты делай ;)
Экспериментируй :)
Некогда писать такую кучу комментов...

Fant 12.04.2006 13:45

Я и сделал, и у меня стабильно было 46 ФПС....но я не мог себе объянить как это работает...
Да исделал я просто...
Просто код "скопировал" и вставил"...ну разумеется убрал у себя лишние update world и renderworld...ну и чуток подправил) :))

Ну хоть примерно то можно знать что там за что отвечает?

tormoz 12.04.2006 16:11

Елки палки, там всего то пяток переменных - обычные примитивные счетчики.
Что там комментировать ?

надеюсь ты вместо
;UPDATE SPHERES
For Sph.Spheres=Each Spheres
MoveEntity Sph\Model,0,0,0.4
TurnEntity Sph\Model,-4,0,0
For q=1 To rndf#
Next
Next

вставил свой код ? :)

Fant 12.04.2006 19:10

Цитата:

Originally posted by tormoz@12.4.2006, 14:11
Елки палки, там всего то пяток переменных - обычные примитивные счетчики.
Что там комментировать ?

надеюсь ты вместо
;UPDATE SPHERES
For Sph.Spheres=Each Spheres
MoveEntity Sph\Model,0,0,0.4
TurnEntity Sph\Model,-4,0,0
For q=1 To rndf#
Next
Next

вставил свой код ? :)


ого!

Так вместо:

For Sph.Spheres=Each Spheres
MoveEntity Sph\Model,0,0,0.4
TurnEntity Sph\Model,-4,0,0

Я вставляю все обновляемые функции + text и так далее.... 8)

и заканчиваю

For q=1 To rndf#
Next
Next

....да?

tormoz 13.04.2006 00:15

всю 3д графику ставь туда.

2д графика (текст например) ставь после рендерворлд

Fant 14.04.2006 11:54

Сделал я все с ФПС...
тепеьр всегда от 60 до 62

Но с передвижением дурдом...казалось, что оно сделано на "ура", так нет....у меня там зависимость от времени...передвижения, так вот...если увеличить скорость, то игрок будет "летать"...короче откатываемся назад...опять буду систему переделывать, когда тестировал и игрок взял приз скорости, то все передвижение "летит к чертям" :'((

Короче сделаю :o''

Fant 16.04.2006 10:03

А как узнать сколько "точек" прошел игрок?
не по формуле же (из физики) ...

А если по формуле, то...

Вообщем что бы удачно сделать управление, нужно знать сколько точек проходит игрок? (ведь скорость бывает разная) (поэтому та, прдидущая система передвижения, потерпела крах)
!

tormoz 16.04.2006 18:47

Создай переменную - счетчик прохождения точек

Fant 16.04.2006 19:35

Очень смешно :)

Я знаю.

Как создать эту переменную? Вернее спросить как создать СЧЕТЧИК?

Fant 16.04.2006 20:06

:'((

Запарился уже с этим "плавным перемещением"

В жизни бы не подумал, что это ТАК сложно!

tormoz 17.04.2006 02:34

счетчик:

Код:

Global count_step


If (игрок прошел чего то там, чего тебе надо)
 count_step=count_step+1
 If count_step= чего то там чего тебе надо
  Происходит то, что ты задумал
 EndIf
EndIf


Fant 23.04.2006 11:16

Сделал передвижение.

Над ИИ работают (нет пока прогресса)
Над меню тоже работают...


Как лучше реализовать переход от одного уровня к другому?
(в том плане как грузить новые карты, что очищать, что подгружать)

Константин 23.05.2006 07:47

Вот, обновлённый редактор для бомбера скуралесил, и загрузку новую для карт новых. + новые деверлуперские текстурки для новых кубиков: точки игроков и монстров. Благодарность impersonalis (с) за предоставленный способ деления строки на куски.

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

Иванов К.Ю.
E-mail: [email protected]
ICQ:249957963

pax 23.05.2006 19:04

Цитата:

Originally posted by Константин@23.5.2006, 6:47
закачать сюды немогу, прав нету. обращатся на маил или на аську:

Что значит прав нету? Ты либо упакуй в rar или zip, либо ты тогда незарегистрированным был... странно... небыло еще такого на форуме...

Константин 08.06.2006 22:38

Вложений: 4
типа редактор, но нужен для него Framework 2.0 и выше.


Часовой пояс GMT +4, время: 04:52.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot