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

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

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Проекты на MidletPascal

Ответ
 
Опции темы
Старый 15.02.2008, 10:34   #31
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: игра по мотивам ККИ "Берсерк"

Живые, то есть. Только вот с идеями плохо. В последнем классе для отрисовки используется отдельный поток, синхронизированный с классом Display, т.е. по идее лучше сделать уже нельзя. Единственное, что могу предположить, это что ты обновляешь экран чаще, чем в принципе может JVM Нокии. Попробуй ввести задержку побольше для тестов.
PS: на моторолах и сонериках все идет красиво.
(Offline)
 
Ответить с цитированием
Старый 17.02.2008, 15:53   #32
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: игра по мотивам ККИ "Берсерк"

delay?

Ладно фиг с этой серией 40) Потом какнить.

Щас вот другая проблема нашлась. Точнее пример мне нужен по работе с файлами ресурса. Задача такая: есть текстовый файл с бзой карт (да я хочу зделать именно так) с примерно таким содержанием:

kolvo_card=3
//первая карта
card_name='Карта 1'
card_portret='card1.jpg'
card_live=3
card_damage=5
//вторая карта
card_name='Карта 2'
card_portret='card2.jpg'
card_live=4
card_damage=2
card_osob=1
//третья карта
card_name='Карта 3'
card_portret='card3.jpg'
card_live=5
card_damage=3
card_regeneration=3
...

и т. д.

а в программе хочется читать при старте программы параметры для карт из этого файла

примерно какнить так

var
card_name:array .. of string;
card_portret:array .. of image
card_live,card_damage,card_osob,card_regeneration: array .. of integer


for i:= 1 to количество карт указаное в файле do
begin
card_portret[i]:=loadimge(из файла)
card_live[i]:=из файлаж
card_damage[i]:=из файла
card_regeneration[i]:= из файла есл оно упомянуто
card_osob[i]:= из файла есл оно упомянуто
end;


Как првильно такое написать чтобы работало)) может есть какие нить примеры??

Последний раз редактировалось aureli0, 18.02.2008 в 00:18.
(Offline)
 
Ответить с цитированием
Старый 20.02.2008, 23:27   #33
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: игра по мотивам ККИ "Берсерк"

Поиск на форуме ничего не дал(( Примерно что то похожее накидал мож кому пригодится:

программа смотрит тестовый файл с таким содержанием:
40;300;500;600;

и получает из файла 4 переменные, которые потом складывает.
var
res:resource;
line,symbol:string;
i,num,p1,p2,p3,p4,summa:integer;
var_array:array [0..3] of string;

begin

res := OpenResource('/222.txt');
line:= ReadLine(res);//считываем строку с переменными из файла ресурса

CloseResource(res);

num:=0;

repeat
for i:= 0 to Length(line) do
begin
if (num<=3) then
begin
symbol:=getchar(line,i);//считываем посимвольно ранее считаную строку
if (symbol<>';') then var_array[num]:=var_array[num]+symbol;//временная переменная складывается из текста строки
DrawText(var_array[num],0,20*num);//выводим процесс обработки
repaint;
delay(100);

if (symbol=';') then num:=num+1;//Если разделитель то переключаемся к следущей элементу массива временных переменных
end;

end;
until num>3;
//обрабатываем получая необходимые переменные из временноо массива переменных

p1:=StringToInteger(var_array[0]);
p2:=StringToInteger(var_array[1]);
p3:=StringToInteger(var_array[2]);
p4:=StringToInteger(var_array[3]);

//считаем сумму вписаных в ресурс значений
summa:=p1+p2+p3+p4;

Setcolor(0,0,0);
DrawText(IntegerToString(summa),0,100);
repaint;
Delay(1000);


end.
(Offline)
 
Ответить с цитированием
Старый 20.02.2008, 23:32   #34
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: игра по мотивам ККИ "Берсерк"

Теперь пытаюсь намутить каким образом определить сколько букв в 1 строчке влезет на экран мобилы. А то перенос текста у меня работает както кривовато-через подгоны. Что можно зделать????
(Offline)
 
Ответить с цитированием
Старый 23.02.2008, 21:21   #35
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: игра по мотивам ККИ "Берсерк"

Вот решил выложить последние исходники по "легендам Руси" на сегодняшний день. Глюкавый. Кривой. Но рабочий. Не знаю что с ними можно зделать. На данный момент я на основе этой "поделки" заново перелопачиваю весь код. И решил занятся реализацией первого сэта игры
Вложения
Тип файла: zip 27.zip (1.01 Мб, 580 просмотров)
(Offline)
 
Ответить с цитированием
Старый 09.05.2009, 13:52   #36
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: игра по мотивам ККИ "Берсерк"

не получается
давно не брался за код, за это время у меня родилась дочка) Совсем не до компа стало. Выкладываю последние наработки. Точно не помню что было сделано, из того что помню - был почищен код, добавлены летающие. База до сих пор берется из отдельного модуля-как сделать чтение базы вне мидлета я так и не понял. Потом произошло еще одно радостное событие-я переехал жить в линукс) решил занятся изучением СИ) и переписываю берсерк уже в линух, используя связки SDL+OpenGL. Начал с нуля - но уже готов полностью рабочий магазин. Как будет чтото цельное - выложу...
Вложения
Тип файла: zip bers.zip (395.5 Кб, 676 просмотров)
(Offline)
 
Ответить с цитированием
Старый 18.05.2009, 22:16   #37
Cliffe Snake
Нуждающийся
 
Аватар для Cliffe Snake
 
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений
(для 12 пользователей)
Ответ: игра по мотивам ККИ "Берсерк"

aureli0, попробуй сделать версию без Lib_game, не в обиду Pilgrim'у, её проблематично использовать в более менее сложных играх.
А на счёт чтения базы могу посоветовать код из своего Сталкера, он конешно требует переделки, но всё же лучше, чем посимвольное чтение))
делал для чтения внутримидлетского xml-файла, но думаю переделать
не сложно будет. Мой вариант считывает любой параметр с текущей строки txt ресурса Res (пример параметра CardName="Мразень", пример считывания name:=reads('CardName'); ), плюс любую строку можно интерпретировать в мидлете как условие или команду(но это надо писать самому).
////////////////////////////////////////////////
/// Требуются 2 глобальных переменных res - для ресурса, и txt - для текущей строки.
//////////////////////////////////////////////////////////////////////////////
Function readI(str:string):integer;  // Считывает int-значение параметра str(напр. 'width', 'cost' и др.)
var t:string;
begin
    t
:=copy(txt,pos(txt,str)+length(str)+2,length(txt));
    
readi:=stringtointeger(copy(t,0,pos(t,'"')));
end;    

Function 
readS(str:string):string// считывает значение параметра str как текст
var t:string;
begin
    t
:=copy(txt,pos(txt,str)+length(str)+2,length(txt));
    
reads:=copy(t,0,pos(t,'"'));
end;    

Procedure skip(n:integer); // пропускает n-1 строк и считывает строку n 
var integer;
begin
    
for i:=1 to n do txt:=readline(res);
end;
///////////////   Поиск строки сначала файла
Procedure refind(str:string);
begin
    closeresource
(res);
    
res:=openresource('/'+mapname+'.tmx');
    
repeat
        txt
:=readline(res);
    
until(pos(txt,str)<>-1) or (txt='</map>');
    if 
txt='</map>' then txt:='"0"';
end;    
///////////////   Поиск строки начиная с текущей.
Procedure find(str:string);
begin
    repeat
        txt
:=readline(res);
    
until(pos(txt,str)<>-1) or (txt='</map>');
    if 
txt='</map>' then txt:='"0"';
end;    
//////////////////////////////////////////////////////
// это пример использования перечисленных функций
///////////////   Загрузка карты mapname
Procedure mapload;
var 
dat,load,otyp stringinteger;
begin
    res
:=openresource('/'+mapname+'.tmx');
    
skip(3);
    
mx:=readi('width'); my:=readi('height');
    
tw:=readi('tilewidth'); th:=readi('tileheight');
    
skip(9);
    
dat:=decode_string(copy(txt,3,length(txt)));
    
i:=0;
    
repeat
        map
[(i)div my+1,(i)mod my+1]:=ord(GetChar(dat,i*4));
        
i:=i+1;
    
until (i=mx*my);
    
skip(4);i:=0;
  
repeat
    i
:=i+1;
    
objname[i]:=reads('name');
    
otype[i]:=reads('type');
    
ox[i]:=readi(' x')-tw;
    
oy[i]:=readi(' y')-th;
    if (
otype[i]='anim'then 
   begin
    skip
(2);
    
repeat
     
if reads('name')='frames' then frm[getnum(objname[i])]:=readi('value');
     if 
reads('name')='load'   then load:=reads('value');
     if 
reads('name')='mode'   then mode[getnum(objname[i])]:=reads('value');
     if 
reads('name')='type'   then otyp:=reads('value');
     
skip(1);
    
until (txt='   </properties>');
    
LoadAnim(load,frm[getnum(objname[i])],getnum(objname[i])); 
    
otype[i]:=otyp;
   
end;  
    
skip(3);
  
until (txt=' </objectgroup>');
omax:=i;
skip(3);
dat:=decode_string(copy(txt,3,length(txt)));
    
i:=0;
    
repeat
        rad
[(i)div my+1,(i)mod my+1]:=ord(GetChar(dat,i*4));
        
i:=i+1;
    
until (i=mx*my);
closeresource(res);
end
вот пример урезанного xml-файла к процедуре mapload:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://mapeditor.org/dtd/1.0/map.dtd">
<map version="1.0" orientation="orthogonal" width="64" height="64" tilewidth="64" tileheight="64">
 <tileset name="LandTiles" firstgid="1" tilewidth="64" tileheight="64">
  <image source="LandTiles3.png"/>
 </tileset>
 <tileset name="RadLevels" firstgid="25" tilewidth="64" tileheight="64">
  <image source="RadTiles.png"/>
 </tileset>
 <layer name="ground" width="64" height="64">
  <data encoding="base64">BAAAAAQAAAA.........EAAAABAAAAA==</data> 
 </layer>
 <objectgroup name="objects" width="0" height="0">
  <object name="truck" type="car" x="2893" y="2327" width="92" height="65">
   <image source="world/truck.png"/>
  </object>
  <object name="truck" type="car" x="1649" y="3973" width="92" height="65">
   <image source="world/truck.png"/>
  </object>
  <object name="truck" type="car" x="1303" y="2303" width="92" height="65">
   <image source="world/truck.png"/>
  </object>
  <object name="truck" type="car" x="1229" y="3189" width="92" height="65">
   <image source="world/truck.png"/>
  </object>
  <object name="sidor1" type="trader" x="94" y="3054" width="125" height="76">
   <image source="world/sidor1.png"/>
  </object>
  <object name="sidor2" type="trader" x="94" y="3054" width="61" height="98">
   <image source="world/sidor2.png"/>
  </object>
  <object name="electra" type="anim" x="1628" y="2545" width="65" height="62">
   <properties>
    <property name="frames" value="4"/>
    <property name="load" value="st"/>
    <property name="mode" value="cycle"/>
    <property name="type" value="anomaly"/>
   </properties>
   <image source="world/electra.png"/>
  </object>
  <object name="electra" type="anomaly" x="1077" y="2587" width="65" height="62">
   <image source="world/electra.png"/>
  </object>
  <object name="electra" type="anomaly" x="882" y="3244" width="65" height="62">
   <image source="world/electra.png"/>
  </object>
    ................
 </objectgroup>
 <layer name="radiation" width="64" height="64" opacity="0.3">
  <data encoding="base64">IgAAACEAAAA...........CIAAAAiAAAAIgAAAA==</data> 
 </layer>
</map>
А вообще попробуй поюзать библу Lib_xml

Последний раз редактировалось Cliffe Snake, 18.05.2009 в 22:23.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
aureli0 (03.06.2009)
Старый 18.05.2009, 23:26   #38
Cliffe Snake
Нуждающийся
 
Аватар для Cliffe Snake
 
Регистрация: 22.09.2008
Сообщений: 74
Написано 8 полезных сообщений
(для 12 пользователей)
Ответ: игра по мотивам ККИ "Берсерк"

В принципе можно будет работать и с твоим примером базы, немного видоизмененным:

<set="Легенды Руси" kolvo_card="3">
//первая карта
name="Карта 1" portret="card1.jpg" live="3" damage="5" type="simple"
//вторая карта
name="Карта 2" portret="card2.jpg" live="4" damage="2" type="rare"
param="osob" value="1"
</card>
//третья карта
name="Карта 3" portret="card3.jpg" live="5" damage="3" type="unique"
param="regeneration" value="3"
param="exp. in attack" value="1"
param="dec dice" value="-1"
</card>
</set>

То есть в строчке с именем карты можно будет хранить стандартные параметры(img карты, цена, hp, дамаг, кол-во шагов, ... и тип карты).
Взависимости от типа карты можно будет подгружать особые параметры, которые хранятся по одному на строчку в формате имя_параметра="regeneration" значение_параметра="3".
Строка </card> означает конец чтения особых параметров карты.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Cliffe Snake за это полезное сообщение:
aureli0 (03.06.2009), Piligrim (26.05.2009)
Старый 03.06.2009, 21:00   #39
aureli0
ПроЭктировщик
 
Регистрация: 19.03.2007
Сообщений: 134
Написано 10 полезных сообщений
(для 20 пользователей)
Re: Ответ: игра по мотивам ККИ "Берсерк"

Сообщение от Cliffe Snake Посмотреть сообщение
В принципе можно будет работать и с твоим примером базы, немного видоизмененным:

<set="Легенды Руси" kolvo_card="3">
//первая карта
name="Карта 1" portret="card1.jpg" live="3" damage="5" type="simple"
//вторая карта
name="Карта 2" portret="card2.jpg" live="4" damage="2" type="rare"
param="osob" value="1"
</card>
//третья карта
name="Карта 3" portret="card3.jpg" live="5" damage="3" type="unique"
param="regeneration" value="3"
param="exp. in attack" value="1"
param="dec dice" value="-1"
</card>
</set>

То есть в строчке с именем карты можно будет хранить стандартные параметры(img карты, цена, hp, дамаг, кол-во шагов, ... и тип карты).
Взависимости от типа карты можно будет подгружать особые параметры, которые хранятся по одному на строчку в формате имя_параметра="regeneration" значение_параметра="3".
Строка </card> означает конец чтения особых параметров карты.
эхх, где ж Ты раньше то был( Год бы тому назад было самое время)) Теперь изучаю СИ. Всеравно большое спасибо за советы, механика в игре врятли изменится с переездом в другуюя ось и язык.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cистема Редактирования Графики GRAF AndruXa Проекты на Blitz3D 17 22.04.2010 13:45
Лабиринт с шариком внутри ( проблемка) klopmaks Blitz3D 29 11.12.2008 04:36
Работа нескольких программ в одной anton_obuhov Основной форум 4 10.09.2008 11:15
А вот и ещё тема по текстурированию ландшk CRASHER Создание текстур 4 16.01.2008 18:10
не могу в Physx поворачивать Joint быстро, помогите! CRASHER Физика 18 12.01.2008 17:55


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


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