Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 09.12.2009, 17:22   #1
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Интересный глюк

Я начал изучать ИИ. Сделал 3 типа существ. Пока только один наделен полным набором И , остольные тупо стоят на месте. Самое странное то что если создавать больше существ 3 типа то у 1ого типа все происходит быстрее. Т.е. он быстрее дохнит, голадает , устает и так далее. Чем больше третьих тем быстрее первый. ( нету никаких прямых намеков в коде на подобное)
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 17:30   #2
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Интересный глюк

Вот вам типичный пример природного отбора.

На самом деле наверное у тебя аи прописаный через множество проходов If,и в их организации мог быть косяк...если нет,тогда незнаю в чем проблема.
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 17:45   #3
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Интересный глюк

нету никаких прямых намеков в коде на подобное
ога, мы видем, нету намёков таких
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 18:10   #4
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Интересный глюк

В смысле в организации был косяк? у меня нету if create man3 then man1 faster. И вообще 1 и 3 связывает только ф-я развернуть если дистанция такова.
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 18:11   #5
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,833 пользователей)
Ответ: Интересный глюк

Сядь нормально.....выпрямь спину.....правую руку поставь на монитор,и сосредоточся на своем коде...Я попробую телепатически считать его и увидеть в чем косяк.
(Offline)
 
Ответить с цитированием
Эти 14 пользователя(ей) сказали Спасибо Dzirt за это полезное сообщение:
Android (09.12.2009), Arton (18.04.2010), baton4ik (15.04.2010), BlackDragon (09.12.2009), Crayzi (15.01.2010), Dream (09.12.2009), G.A.D (09.12.2009), Horror (09.12.2009), KOPCAP (11.10.2010), L.D.M.T. (10.12.2009), newman (10.12.2009), Nex (15.12.2009), Randomize (09.12.2009), Taugeshtu (09.12.2009)
Старый 09.12.2009, 19:01   #6
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Интересный глюк

ты сам этого захотел
Graphics3D 1280,1024,32,2
SetBuffer BackBuffer()

SeedRnd MilliSecs()

Global camPitch#, camYaw#, camDist#, mxs#, mys#, mzs#
cam = CreateCamera()
CameraRange cam,1,10000
eye = CreateSphere()
EntityAlpha eye,0.7
PositionEntity eye,256,0,256

Type cubozavr
Field HP
Field hungry#
Field entity
Field fatigue#
Field speed#
Field keks
Field a
End Type

Type cilozavr
Field HP
Field hungry#
Field entity
Field fatigue#
Field speed#
End Type

Type Bush
Field HP#
Field entity
End Type




font = LoadFont( "arial cyr",24 )
SetFont font











CreateBush(150,150)
CreateCilozavr(266,266)
CreateCubozavr(256,256)

Repeat


If KeyDown(17) MoveEntity eye,0,0,.2
If KeyDown(30) TurnEntity eye,0,2,0
If KeyDown(32) TurnEntity eye,0,-2,0


mxs = MouseXSpeed()
mys = MouseYSpeed()
mzs = MouseZSpeed()
RotateCamOver(cam, eye)


If KeyHit(2) Then
CreateCubozavr(Rnd(0,512),Rnd(0,512))
EndIf

If KeyHit(3) Then
CreateCilozavr(Rnd(0,512),Rnd(0,512))
EndIf

If KeyHit(4) Then
CreateBush(Rnd(0,512),Rnd(0,512))
EndIf


UpdateCilozavr()

z = z + 1



UpdateWorld
RenderWorld


Color 0,0,25



Text 5,20,"Цифра 1 - создать куб : Цифра 2 - создать цилиндр"
Text 5,40,"Отдалять камеру колесиком, вразать зажтием ПКМ"
Text 5,60,"Используйте W A D(клавиши)"+ z





DeleteBush()
UpdateCubozavr()
vFPS=MilliSecs()
If vFPS-vLastFPS>1000
vShowFPS=vCurFPS
vLastFPS=vFPS
vCurFPS=0
Else
vCurFPS=vCurFPS+1
End If
Text 5,30,"FPS: "+vShowFPS


Flip(1)

Until KeyHit(1)
End





Function RotateCamOver(cam, entity)
If MouseDown(2) Then
camPitch# = camPitch + (mys/4)
camYaw# = camYaw - (mxs/4)
EndIf
camDist# = camDist# + (mzs/1)
If camDist <= 1 Then camDist = 1
PositionEntity cam, EntityX(entity,1), EntityY(entity,1), EntityZ(entity,1), 1
RotateEntity cam, camPitch, camYaw, 0
MoveEntity cam, 0, 0, -camDist
End Function

Function CreateCubozavr(x,z)

Local p.cubozavr = New cubozavr
p\entity = CreateCube()
p\hp = 100
p\hungry# = 0
p\fatigue# = 0
p\speed# = 0.05
p\keks = 0
p\a = -1
PositionEntity p\entity,x,0,z
End Function

Function UpdateCubozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
p\hungry# = p\hungry# + 0.0025
If p\hungry<20 Then EntityColor p\entity,0,255,0
If p\hungry>20 And p\hungry<80 Then EntityColor p\entity,0,0,255
If p\hungry>80 Then EntityColor p\entity,255,0,0


MoveEntity p\entity,0,0,p\speed# :
p\fatigue# = p\fatigue# + 0.01:

If a = 0 Then
p\keks = p\keks + 1 :
EndIf

If p\keks>10 Then
p\keks = 0
EndIf

If p\keks = 10 Then
TurnEntity p\entity,0,Rnd(-5,5),0,0
EndIf





If p\hungry<0 Then
p\hungry = 0
EndIf

If p\fatigue# > 10 And p\fatigue# <20 Then
p\speed# =0.04
EndIf
If p\fatigue# > 20 And p\fatigue# <30 Then
p\speed# =0.035
EndIf
If p\fatigue# > 30 And p\fatigue# <40 Then
p\speed# =0.03
EndIf
If p\fatigue# > 40 And p\fatigue# <50 Then
p\speed# =0.025
EndIf
If p\fatigue# > 50 And p\fatigue# <60 Then
p\speed# =0.02
EndIf
If p\fatigue# > 80 And p\fatigue# <90 Then
p\speed# =0.01
EndIf

If p\fatigue#>99 Then
p\speed# =0.0 : p\fatigue# = p\fatigue#+0.015
EndIf

If p\fatigue#>299 Then
p\fatigue# = 0
EndIf

UpdateBushCubozavrAndCilozavr()

Next
Next
End Function






Function CreateCilozavr(xx,z)
Local x.cilozavr = New cilozavr
x\entity = CreateCylinder()
x\hp = 100
x\hungry# = 0
PositionEntity x\entity,xx,0,z

End Function

Function UpdateCilozavr()
For x.cilozavr = Each cilozavr
x\hungry# = x\hungry# + 0.007
If x\hungry<20 Then EntityColor x\entity,0,255,0
If x\hungry>20 And x\hungry<80 Then EntityColor x\entity,0,0,255
If x\hungry>80 Then EntityColor x\entity,255,0,0
Next
End Function

Function CreateBush(x,z)
Local h.Bush = New Bush
h\entity = CreateCone()
h\hp# = 100
PositionEntity h\entity,x,0,z
EntityColor h\entity,20,200,0
RotateEntity h\entity,180,0,0
ScaleEntity h\entity,2,2,2
End Function

Function DeleteBush()
For h.bush = Each bush
Text 500,800,""+h\HP#
If h\HP# < 1 Then
FreeEntity h\entity : Delete h
EndIf


Next
End Function

Function UpdateBushCubozavrAndCilozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
For h.Bush = Each bush

If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf

If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf

If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf



If p\hungry > 20 And p\hungry<80 And EntityDistance(p\entity,x\entity)>30 Then
UpdateBushCubozavr3()
EndIf

If p\hungry < 20 And p\hungry>0 And EntityDistance(p\entity,x\entity)>30 Then
UpdateBushCubozavr2()
EndIf

If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - ((0.021)*2.5) : h\HP# = h\HP# - 0.1
EndIf
Next
Next
Next
End Function

Function UpdateBushCubozavr2()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<20 Then
PointEntity p\entity,h\entity
EndIf

If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - 0.00
EndIf
Next
Next
End Function

Function UpdateBushCubozavr3()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<35 Then
PointEntity p\entity,h\entity
EndIf
Next
Next
End Function

Function UpdateBushCubozavr4()
For p.cubozavr = Each cubozavr
For h.Bush = Each Bush
If EntityDistance(p\entity,h\entity)<60 Then
PointEntity p\entity,h\entity
EndIf
Next
Next
End Function
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 19:04   #7
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Интересный глюк

ты забыл сказать "у ну бл* помогли мне!!!"
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (15.12.2009)
Старый 09.12.2009, 19:07   #8
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Интересный глюк

Function UpdateCubozavr()
For p.cubozavr = Each cubozavr
For x.cilozavr = Each cilozavr
p\hungry# = p\hungry# + 0.0025
это гениально....
когда научитесь думать и читать код, а не тупо пастить
П.С. самый лучший говнокод который я когда-либо видел , я бы даже сказал отборный
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
Harter (14.12.2009), Nex (15.12.2009), shpak (10.12.2009), Taugeshtu (09.12.2009)
Старый 09.12.2009, 19:29   #9
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Интересный глюк

вуху
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 20:05   #10
Reks888
Дэвелопер
 
Аватар для Reks888
 
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений
(для 1,985 пользователей)
Ответ: Интересный глюк

Насчет багов в коде
If EntityDistance(p\entity,h\entity)<2 Then
p\hungry = p\hungry - 0.00
EndIf
Next
Next
End Function
если тварь ест кустик то голод не увеличивается ты крут)

If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf

If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf

If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf
Извини, а за что "a" отвечает, нигде в коде найти не могу
__________________
>type C:\MyProj\*
www.sypiac.weebly.com
>
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 20:07   #11
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Интересный глюк

If EntityDistance(p\entity,x\entity)<30 Then
p\a = p\a + 1
EndIf

If EntityDistance(p\entity,x\entity)>30 Then
p\a = 0
EndIf

If p\a = 7 And EntityDistance(p\entity,x\entity)<30 Then
PointEntity(p\entity,x\entity) : TurnEntity p\entity, 0,-180,0
EndIf
сюда не смотрите... (это устарелый код)
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 20:08   #12
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Интересный глюк

это если обьект кушает у него набирается "АА" и потом он сходить и сделает "АА". реализм ёпт
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
Arton (18.04.2010), Crayzi (05.03.2010), Nex (15.12.2009)
Старый 09.12.2009, 20:35   #13
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Интересный глюк

это если обьект кушает у него набирается "АА" и потом он сходить и сделает "АА". реализм ёпт
ахахаха... а за что отвечает:
Field keks
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (15.12.2009)
Старый 09.12.2009, 20:40   #14
Dream
быдло
 
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений
(для 1,489 пользователей)
Ответ: Интересный глюк

это если дэвид блейн: "Печеньки!!!"
(Offline)
 
Ответить с цитированием
Старый 09.12.2009, 22:36   #15
is.SarCasm
Бывалый
 
Аватар для is.SarCasm
 
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений
(для 428 пользователей)
Ответ: Интересный глюк

короче нам всем впадло разгадывать загадку ускорение жизни кубика. Лучше полахать со смешного кекса. А еще воон с той и той строчки. Ну раз уже понесса флуд хотел спросить:
p\hungry# = p\hungry# + 0.0025
по4 это гениально? Причем тут копипаст...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересный вопросик AndruXa Blitz3D 12 13.12.2010 23:56
Интересный вопрос... GlobalShar 3D-программирование 12 04.12.2007 21:05
Интересный FTP pax Полезные ссылки 5 28.06.2007 19:09
Интересный спам! ingko Болтовня 8 23.01.2007 19:29
интересный Ftp jimon Болтовня 0 12.03.2006 17:42


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com