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

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

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

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 21.09.2008, 22:51   #1
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Запись в ресурс

Здравствуйте, интересует такой вопрос, есть ли функция записи в ресурс? Аналог readline только наоборот, writeline...ну вы меня поняли =).
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 21.09.2008, 23:47   #2
EVIL_USER
ПроЭктировщик
 
Регистрация: 13.11.2006
Сообщений: 101
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: Запись в ресурс

А каким раком оно сохраняться будет?
Препаковывать то джар никто не станет, он средствами телефона по идее изменяться не должен (а то бы вирусов писали все кому не лень).
Хотя оно конечно может в папке с сейвами сохраниться, но тут уже надо смотреть у каждого конкретного мобильника как оно реализовано.
Но это собственно уже так, лирические отступления.

В общем, пиши в файл.
(Offline)
 
Ответить с цитированием
Старый 22.09.2008, 15:10   #3
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Запись в ресурс

Сообщение от EVIL_USER Посмотреть сообщение
А каким раком оно сохраняться будет?
Препаковывать то джар никто не станет, он средствами телефона по идее изменяться не должен (а то бы вирусов писали все кому не лень).
Хотя оно конечно может в папке с сейвами сохраниться, но тут уже надо смотреть у каждого конкретного мобильника как оно реализовано.
Но это собственно уже так, лирические отступления.

В общем, пиши в файл.
Тоесть создавать файл в телефоне и в него писать? Не очень понял, я пытаюсь реализовать "Рекорды игры". Если можно то код напишите.
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 22.09.2008, 15:45   #4
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Запись в ресурс

Тогда тебе в rms надо писать. Либа есть. Но помочь не могу. Я её не юзал. Вообще ещё с rms не работал ни разу.
(Offline)
 
Ответить с цитированием
Старый 22.09.2008, 18:43   #5
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: Запись в ресурс

Вот как делал я:

Сначала в какой-нибудь процедуре типа init пишешь
ScrW:=GetWidth;
ScrH:=GetHeight;
scores_rs:=OpenRecordStore('scores');
//Если нет Highscores, то заполняем таблицу Романами
if GetRecordStoreSize(scores_rs)=0 then
begin
  for i:=1 to 10 do h:=AddRecordStoreEntry(scores_rs,'Roman$'+IntegerToString((11-i)*5000));
end;
Процедура для записи нового рекорда:
procedure AddHighscore; //Запрос имени игрока для занесения в таблицу рекордов
var
  i,place: integer;
  scores: array[1..10] of integer;
  TextId: integer;
  ok: command;
begin
  for i:=1 to 10 do scores[i]:=StringToInteger(Copy(ReadRecordStoreEntry(scores_rs,i),
          Pos(ReadRecordStoreEntry(scores_rs,i),'$')+1,
          Length(ReadRecordStoreEntry(scores_rs,i)))); //Считываем таблицу из Record store
  if player1.score>scores[10] then //Если место выше 10-го
  begin
    ClearForm;
    ShowForm;
    SetFormTitle('Круто!');
    TextId:=FormAddImage(LoadImage('/ThumbUp.png'));
    TextId:=FormAddTextField('Введите ваше имя:','',5,TF_ANY);
    ok:=CreateCommand('OK',CM_OK,1);
    AddCommand(ok);
    while GetClickedCommand<>ok do Delay(100);
    for i:=10 downto 1 do if player1.score>scores[i] then place:=i; //Вычисляем занятое место
    for i:=9 downto place do //Переносим часть таблицы вниз
      ModifyRecordStoreEntry(scores_rs,ReadRecordStoreEntry(scores_rs,i),i+1);
    //И вписываем имя игрока!
    ModifyRecordStoreEntry(scores_rs,FormGetText(TextId)+'$'+IntegerToString(player1.score),place);
    ShowCanvas;
  end;
  RemoveCommand(ok);
  HighScores; //Показываем рекорды
end;
Процедура для считывания и отображения рекордов:

procedure Highscores; //Рекорды
var
  i:integer;
  WinX,WinY,WinW,WinH: integer; //Координаты "окна" рекордов
  s: string;
  back: command;
begin
  Font(0);
  WinW:=128;
  WinH:=font32.TextHeight*10+6;
  WinX:=(ScrW-WinW) div 2;
  WinY:=(ScrH-WinH) div 2;
  SetColor(200,200,0);
  FillRect(0,0,ScrW,ScrH);
  SetColor(200,200,200);
  FillRoundRect(WinX,WinY,WinW,WinH,6,6);
  SetColor(0,0,0);
  DrawRoundRect(WinX,WinY,WinW,WinH,6,6);
  for i:=1 to 10 do //Рисуем таблицу рекордов
  begin
    s:=ReadRecordStoreEntry(scores_rs,i);
    font32.DrawString(IntegerToString(i)+'. '+Copy(s,0,Pos(s,'$')),
                              WinX+3,WinY+3+(i-1)*font32.TextHeight);
    font32.DrawString(Copy(s,Pos(s,'$')+1,Length(s)),WinX+WinW-3-
                               font32.TextWidth(Copy(s,Pos(s,'$')+1,
                       Length(s))),WinY+3+(i-1)*font32.TextHeight);
  end;
  back:=CreateCommand('Back',CM_CANCEL,1);
  AddCommand(back);
  Repaint;
  while GetClickedCommand<>back do Delay(100);
  RemoveCommand(back);
  Menu;
end;
Если здесь че непонятно, спрашивай.
(Offline)
 
Ответить с цитированием
Старый 22.09.2008, 21:27   #6
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Запись в ресурс

Спасибо большое, оставлю ето на дисерт, еще пробблемы бывают с основным циклом и процедурами, сейчас схематично попробую объяснить.
процедура лого
процедура новой игры
процедура рекордов
процедура помощи
процедура о разработчиках
процедура меню
бегин
процедура лого
процедура меню
енд;
я в каждой процедуре после завершения ее работы пишу вызов процедуры лого чтобы потом попасть в меню, не очень красиво, но днйствинно, проблема в том что я использую графическое меню (Menu32) И их функция selected после выбора например процедуры помощь всегда будет хранить в себе число 2, тоесть при входе в процедуру помощь, жмем назад запускается процедура лого, далее проверяется selected в нем стоит 2 и он запускает процедуру помощи...так бесконечно, как зачистить selected? или как вы работаете с основным циклом чтобы все грамотно было?
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 22.09.2008, 21:55   #7
Romanzes
Разработчик
 
Аватар для Romanzes
 
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений
(для 637 пользователей)
Ответ: Запись в ресурс

Вот, покури исходник:
http://forum.boolean.name/attachment...0&d=1218131066
(Offline)
 
Ответить с цитированием
Старый 23.09.2008, 06:15   #8
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Запись в ресурс

При инициализации Init. Переменная selected тут же обнуляется. На крайний случай есть процедура SetCursor. Так что нечего гнать на библиотеку. Там всё правильно. Это видимо ты selected хранишь в какой-то переменной и забываешь её сбрасывать при создании нового меню.
(Offline)
 
Ответить с цитированием
Старый 24.09.2008, 15:47   #9
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Запись в ресурс

Сообщение от odd Посмотреть сообщение
При инициализации Init. Переменная selected тут же обнуляется. На крайний случай есть процедура SetCursor. Так что нечего гнать на библиотеку. Там всё правильно. Это видимо ты selected хранишь в какой-то переменной и забываешь её сбрасывать при создании нового меню.
никакие переменные для етого не использовал, но то что игра сама начинается ето факт, причина может не в библиотеке, еще не понравилось в menu32 что значение в Selected заносится при наводе на пункт меню, а не при щелчке по нему, усложняет некоторые моменты.
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 06:23   #10
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Запись в ресурс

А, ты про сенсорный экран говоришь... Ладно, я гляну в чем там дело...
Помнится кто-то заокеанский тоже на Lib_sensor жаловался...
(Offline)
 
Ответить с цитированием
Старый 25.09.2008, 20:40   #11
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Запись в ресурс

Причем тут сенсор, просто я поставил условие
repeat
until clicked=4
4 - ето пункт меню выход, решил протестить, просто навел на выход не нажимая и игра завершилась
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 26.09.2008, 06:30   #12
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Запись в ресурс

Библиотека не опрешивает клаву. Это ты должен прописать сам.
Например, так:
repeat
    Delay
(50);
    
key:=KeyToAction(GetKeyClicked);
    if 
key=GA_FIRE then break;
until false;
s:=selected;
if 
s=0 then ....
if 
s=1 then ....
if 
s=2 then .... 

Последний раз редактировалось odd, 27.09.2008 в 06:18.
(Offline)
 
Ответить с цитированием
Старый 26.09.2008, 13:50   #13
Kurdt
ПроЭктировщик
 
Регистрация: 28.03.2007
Сообщений: 194
Написано 7 полезных сообщений
(для 25 пользователей)
Re: Запись в ресурс

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

типа такого
Procedure puskrepeat;
Var i:integer;
Begin
exitpusk:=false;
Repeat

i:=puskmain(i);

until exitpusk;

end;
(Offline)
 
Ответить с цитированием
Старый 27.09.2008, 18:35   #14
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Re: Запись в ресурс

Сообщение от Kurdt Посмотреть сообщение
Юзай в репите одну процедуру, далее в цыкле вызывется другая процедура, после ее окончания снова в цикле срабатует автоматом первая процедура, и ненадо ее вызывать везде... немного фантазии

типа такого
Procedure puskrepeat;
Var i:integer;
Begin
exitpusk:=false;
Repeat

i:=puskmain(i);

until exitpusk;

end;
Как раз вот такой епанутый метод я и использовал, теперь предтавим
repeat
procedure logo
procedure menu
if 1=1 then procedure game
if 1=2 then procedure about
if 1=3 then procedure exit
procedure result
until
включаем игру видим лого, попадаем в меню, там выбираем например "Об игре" прочитали, выходим назад, а что сзади? Сзади по циклу идет result, посмотрели результат непонятного чего и иедм опять смотреть лого, меню, выбираем игру, играем и хотим выйти в меню...но меню нет по циклу, смотрим результат, лого и вот оно меню...посоветуйте что нить по продуманнее.
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Старый 27.09.2008, 18:53   #15
Smarik
AnyKey`щик
 
Аватар для Smarik
 
Регистрация: 15.08.2008
Адрес: Кемерово
Сообщений: 17
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Запись в ресурс

ну чтоб не создавать кучу тем и не превращать форум в помойку, лучше превращу в помойку ету тему.
Как можно свернуть приложение?
Как можно проверить сколько оперативки свободно?
Вообще как работать с железом, есть стандартные функции или какие то библиотеки?
__________________
Каждый человек имеет право на собственное мнение - при условии, что оно совпадает с нашим.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение, и запись в файл rangel Основной форум 2 05.12.2009 14:50
Чтение и запись файлов Spiderman JAVA Micro Edition 8 20.02.2009 13:46
Запись настроек программы в... LUK FAQ 8 17.12.2007 23:45
Запись в текстовый файл JoKeR_13 2D-программирование 1 15.06.2007 15:26
Запись на CD SubZer0 Болтовня 17 07.04.2006 16:35


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


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