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

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

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

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 21.02.2007, 16:57   #1
Xupypr
AnyKey`щик
 
Регистрация: 25.06.2006
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Xml парсер

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

 
<?xml version="1.0" ?>
<base>
<entity type="monstr">
<class>name="soldier"</class>
<model>file="monstr\soldier\tris.md2"</model>
<skin>file="monstr\soldier\skin.pcx"</skin>
<frame>
 <attack1>firstkey="0" secondkey="11"</attack1>
 <attack2>firstkey="11" secondkey="29"</attack2>
 <attack3>firstkey="29" secondkey="38"</attack3>
 <attack4>firstkey="38" secondkey="44"</attack4>
 <pain1>firstkey="44" secondkey="49"</pain1>
 <pain2>firstkey="49" secondkey="54"</pain2>
 <pain3>firstkey="54" secondkey="61"</pain3>
 <pain4>firstkey="61" secondkey="79"</pain4>
 <pain5>firstkey="79" secondkey="96"</pain5>
 <run>firstkey="99" secondkey="105"</run>
 <pain6>firstkey="126" secondkey="145"</pain6>
 <idle1>firstkey="146" secondkey="176"</idle1>
 <idle2>firstkey="175" secondkey="214"</idle2>
 <step>firstkey="215" secondkey="223"</step>
 <idle3>firstkey="224" secondkey="247"</idle3>
 <die1>firstkey="271" secondkey="279"</die1>
 <die2>firstkey="308" secondkey="342"</die2>
 <die3>firstkey="343" secondkey="387"</die3>
 <die4>firstkey="441" secondkey="464"</die4>
</frame>
<chardata> life="80" speed="0.2" angspeed="0.5" arange="200" dammin="5" dammax="15" reloadtime="500" resfire="50" resbullet="70" resplasma="90" resfreez="1" ressuperg="10"</chardata>
<dropitem> count="4" item1="bullet2" chance1="10" item2="weapon2" chance2="5" item3="weapon3" chance3="2" item4="bullet3" chance4="3"</dropitem>
</entity>
<entity inv="armor">
 <class name="bullet2"/>
 <model="inv\bullet2\bullet2.b3d"/>
 <skin="inv\bullet2\bullet2.jpg"/>
 <sell="5"/>
 <weight="1"/>
</entity>
</base>
в самом блитце код правильный 100%
(Offline)
 
Ответить с цитированием
Старый 22.02.2007, 11:10   #2
Xupypr
AnyKey`щик
 
Регистрация: 25.06.2006
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Xml парсер

вот я тут немного переделал, но все равно в блитце тормозится на строчке count=xmlnodechildcount(worldnode) и пишет Object does not exist. компилятор останавливается на этой же функции xmlnodechildcount
 
<?xml version="1.0" ?>
<base>
<entity type="monstr">
<class name="soldier"/>
<model file="monstr\soldier\tris.md2"/>
<skin file="monstr\soldier\skin.pcx"/>
<frame>
 <attack1 firstkey="0" secondkey="11"/>
 <attack2 firstkey="11" secondkey="29"/>
 <attack3 firstkey="29" secondkey="38"/>
 <attack4 firstkey="38" secondkey="44"/>
 <pain1 firstkey="44" secondkey="49"/>
 <pain2 firstkey="49" secondkey="54"/>
 <pain3 firstkey="54" secondkey="61"/>
 <pain4 firstkey="61" secondkey="79"/>
 <pain5 firstkey="79" secondkey="96"/>
 <run firstkey="99" secondkey="105"/>
 <pain6 firstkey="126" secondkey="145"/>
 <idle1 firstkey="146" secondkey="176"/>
 <idle2 firstkey="175" secondkey="214"/>
 <step firstkey="215" secondkey="223"/>
 <idle3 firstkey="224" secondkey="247"/>
 <die1 firstkey="271" secondkey="279"/>
 <die2 firstkey="308" secondkey="342"/>
 <die3 firstkey="343" secondkey="387"/>
 <die4 firstkey="441" secondkey="464"/>
</frame>
<chardata life="80" speed="0.2" angspeed="0.5" arange="200" dammin="5" dammax="15" reloadtime="500" resfire="50" resbullet="70" resplasma="90" resfreez="1" ressuperg="10"/>
<dropitem count="4" item1="bullet2" chance1="10" item2="weapon2" chance2="5" item3="weapon3" chance3="2" item4="bullet3" chance4="3"/>
</entity>
<entity inv="armor">
<class name="bullet2"/>
<model file="inv\bullet2\bullet2.b3d"/>
<skin file="inv\bullet2\bullet2.jpg"/>
<sell money="5"/>
<weight weight="1"/>
</entity>
</base>
помагите плизз, 2 дня сижу не пойму в чем тут дело.
(Offline)
 
Ответить с цитированием
Старый 24.02.2007, 00:13   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: База игры в XML

worldnode это что у тебя? Ты должен найти сперва определённую ветвь, затем искать у неё чайлды.
(Offline)
 
Ответить с цитированием
Старый 27.02.2007, 17:08   #4
Xupypr
AnyKey`щик
 
Регистрация: 25.06.2006
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Re: База игры в XML

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

 
worldnode = xmlNodeFind("base", rootnode) 
;Get the handle of the world node
count = xmlNodeChildCount(worldnode) ;Get the world node's child count
Stop
For i = 1 To count ;Loop through each child node of the world node
entitynode = xmlNodeChild(worldnode, i) ;Get the child node
If xmlNodeNameGet(entitynode) = "entity" Then ;Check if it's an entity
t$ = xmlNodeAttributeValueGet(entitynode, "type")
;Get the entity type
End If
 
If t = "monstr" Then
class = xmlnodefind("class",entitynode)
monstr.monstr = New monstr
monstr\name$ = xmlNodeAttributeValueGet(class, "name")
model = xmlnodefind("model",entitynode)
monstr\model$ = xmlNodeAttributeValueGet(model, "file")
skin = xmlnodefind("skin",entitynode)
...
 
dropitem = xmlnodefind("dropitem",entitynode)
count = xmlNodeAttributeValueGet(dropitem, "count")
 
For j=count To 1 Step -1
monstr\dropitems.dropitem = New dropitem
monstr\dropitems\name$ = xmlNodeAttributeValueGet(dropitem, "item"+Str$(j))
monstr\dropitems\chance = xmlNodeAttributeValueGet(dropitem, "chance"+Str$(j))
Next
 
End If
 
Next
Администраторы, зачем мои сообщения в тему переделали? Я писал в топике LIB, че теперь это делает в 2 д проганье?
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 02:16   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: База игры в XML

Нельзя искать в корневой ветви.
Сделай так:

<?xml version="1.0" ?>
<base>
<objects>
<entity type="monstr">
<class name="soldier"/>
<model file="monstr\soldier\tris.md2"/>
<skin file="monstr\soldier\skin.pcx"/>
<frame>
<attack1 firstkey="0" secondkey="11"/>
<attack2 firstkey="11" secondkey="29"/>
<attack3 firstkey="29" secondkey="38"/>
<attack4 firstkey="38" secondkey="44"/>
<pain1 firstkey="44" secondkey="49"/>
<pain2 firstkey="49" secondkey="54"/>
<pain3 firstkey="54" secondkey="61"/>
<pain4 firstkey="61" secondkey="79"/>
<pain5 firstkey="79" secondkey="96"/>
<run firstkey="99" secondkey="105"/>
<pain6 firstkey="126" secondkey="145"/>
<idle1 firstkey="146" secondkey="176"/>
<idle2 firstkey="175" secondkey="214"/>
<step firstkey="215" secondkey="223"/>
<idle3 firstkey="224" secondkey="247"/>
<die1 firstkey="271" secondkey="279"/>
<die2 firstkey="308" secondkey="342"/>
<die3 firstkey="343" secondkey="387"/>
<die4 firstkey="441" secondkey="464"/>
</frame>
<chardata life="80" speed="0.2" angspeed="0.5" arange="200" dammin="5" dammax="15" reloadtime="500" resfire="50" resbullet="70" resplasma="90" resfreez="1" ressuperg="10"/>
<dropitem count="4" item1="bullet2" chance1="10" item2="weapon2" chance2="5" item3="weapon3" chance3="2" item4="bullet3" chance4="3"/>
</entity>
<entity inv="armor">
<class name="bullet2"/>
<model file="inv\bullet2\bullet2.b3d"/>
<skin file="inv\bullet2\bullet2.jpg"/>
<sell money="5"/>
<weight weight="1"/>
</entity>
</objects>
</base>
И код:
worldnode = xmlNodeFind("base", worldnode)
objectsnode = xmlNodeFind("objects", worldnode)
;Get the handle of the world node
count = xmlNodeChildCount(objectsnode) ;Get the world node's child count
Stop
For i = 1 To count ;Loop through each child node of the world node
entitynode = xmlNodeChild(objectsnode, i) ;Get the child node
If xmlNodeNameGet(objectsnode) = "entity" Then ;Check if it's an entity
t$ = xmlNodeAttributeValueGet(entitynode, "type")
;Get the entity type
End If

If t = "monstr" Then
class = xmlnodefind("class",entitynode)
monstr.monstr = New monstr
monstr\name$ = xmlNodeAttributeValueGet(class, "name")
model = xmlnodefind("model",entitynode)
monstr\model$ = xmlNodeAttributeValueGet(model, "file")
skin = xmlnodefind("skin",entitynode)
...

dropitem = xmlnodefind("dropitem",entitynode)
count = xmlNodeAttributeValueGet(dropitem, "count")

For j=count To 1 Step -1
monstr\dropitems.dropitem = New dropitem
monstr\dropitems\name$ = xmlNodeAttributeValueGet(dropitem, "item"+Str$(j))
monstr\dropitems\chance = xmlNodeAttributeValueGet(dropitem, "chance"+Str$(j))
Next

End If

Next
Перенесли потомучто это не относится к разработке библиотек, и не к 3д графике, поэтому в 2д. Подобной тематики темы в 2д. Всё правельно. ТЕмболее вопрос не относительно функционированию библиотеки, или её багов, ну и подобного, вопрос относительно ситуации, а то что используется библиотека это второстепенно. Надеюсь администрация, поэтому перенесла.
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 12:35   #6
Xupypr
AnyKey`щик
 
Регистрация: 25.06.2006
Сообщений: 15
Написано 0 полезных сообщений
(для 0 пользователей)
Re: База игры в XML

Мока, большое спасибо.
(Offline)
 
Ответить с цитированием
Старый 28.02.2007, 23:58   #7
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: База игры в XML

Всегда рад помочь, если что обращайся ещё.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игры на VB Dezman.Proger Visual Basic 20 13.11.2009 21:56
2 игры GRIG Проекты на MidletPascal 5 13.03.2009 01:12
База данных Книг Leito Проекты C++ 3 20.11.2007 16:46
Blitz3D,SQl база URL Xoxol27 Blitz3D 3 22.02.2007 19:03


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


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