forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на MidletPascal (http://forum.boolean.name/forumdisplay.php?f=88)
-   -   CaveCraft (http://forum.boolean.name/showthread.php?t=17573)

DeaDCore 28.11.2012 16:29

CaveCraft
 
CaveCraft это очередной 2D Minecraft для сотовых телефонов с J2ME.

Что есть:
-Ломание и установка блоков
-Дроп
-Инвентарь
-Генерация пещер
-Новая система блоков
-Предметы
-Крафт
-Инструменты
-Сундуки
-Меню
-Новый генератор мира
-Рабочий ТНТ
-Исправление багов(частично)
-Осадки(пока только дождь)
-Анимация игрока
-Не твёрдые блоки
-Лестницы
-Вода(без физики)
-Сохранения
-Больше крафта и рабочий верстак
-Креатив
-Освещение
-Выбор зерна мира


Что будет в ближайшее время:
-Физика воды

Если хотите случайный мир - оставьте текстовое поле пустым или равным нулю.

Освещение включается в настройках.

Рекомендуемые разрешения экрана 176x208 - 240x320 но будет работать и на других.

Управление:
Джойстик или 2,4,5,6,8
* и # - выбор блока
0 - режим редактирования/перемещения
1 - инвентарь/крафт(0 выйти)
3 - поставить блок в режиме редактирования, выбросить предмет из инвентаря или использовать выделеный блок
9 - меню/игра

Скачать можно на сайте игры.

DeaDCore 28.11.2012 16:31

Ответ: CaveCraft
 
ViNT, можешь починить библиотеку jsr75i? Очень нужно, сохранение работает только один раз.

ViNT 29.11.2012 01:53

Ответ: CaveCraft
 
Цитата:

Сообщение от DeaDCore (Сообщение 245098)
ViNT, можешь починить библиотеку jsr75i? Очень нужно, сохранение работает только один раз.

А чем RMS не устраивает? Данных много?

Вообще, дело скорее всего не в библиотеке, в любом случае, лучше написать я не смогу. Как вариант, можно попробовать Lib_jsr75.

ABTOMAT 29.11.2012 02:33

Ответ: CaveCraft
 
Чего нет:
- Скриншоты

DeaDCore 29.11.2012 09:35

Ответ: CaveCraft
 
Цитата:

Сообщение от ViNT (Сообщение 245164)
А чем RMS не устраивает? Данных много?

~75 кб одно сохранение, а ещё потом хочу сделать возможность загружать несколько миров.
Цитата:

Сообщение от ViNT (Сообщение 245164)
Вообще, дело скорее всего не в библиотеке, в любом случае, лучше написать я не смогу. Как вариант, можно попробовать Lib_jsr75.

А в чём же тогда?
Цитата:

Сообщение от ABTOMAT (Сообщение 245167)
Чего нет:
- Скриншоты

Исправлюсь

ViNT 29.11.2012 10:40

Ответ: CaveCraft
 
Цитата:

Сообщение от DeaDCore (Сообщение 245190)
~75 кб одно сохранение, а ещё потом хочу сделать возможность загружать несколько миров.

А в чём же тогда?

Тесты проводились на телефонах разных производителей? На эмуляторе WTK та же ситуация? В какую папку сохраняются данные?

DeaDCore 29.11.2012 12:03

Ответ: CaveCraft
 
Цитата:

Сообщение от ViNT (Сообщение 245191)
Тесты проводились на телефонах разных производителей?

Да, только один человек говорил что сохранения не зависают.
Цитата:

Сообщение от ViNT (Сообщение 245191)
На эмуляторе WTK та же ситуация?

Не знаю куда сохраняется в WTK
Цитата:

Сообщение от ViNT (Сообщение 245191)
В какую папку сохраняются данные?

Всё сохраняется на выбранный раздел(пр. E:/world.sav).

ViNT 29.11.2012 16:09

Ответ: CaveCraft
 
Действительно, Lib_jsr75i почему-то работает некорректно. Решение - использовать Lib_jsr75. Она нормально сохраняет и потом корректно загружает и пересохраняет повторно, по крайней мере в WTK.

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

DeaDCore 29.11.2012 17:59

Ответ: CaveCraft
 
Цитата:

Сообщение от ViNT (Сообщение 245202)
Решение - использовать Lib_jsr75. Она нормально сохраняет и потом корректно загружает и пересохраняет повторно, по крайней мере в WTK.

А где можно скачать последнюю версию? Здесь на форуме не нашёл. Находил где то в интернетах но там нет записи байта.

Цитата:

Сообщение от ViNT (Сообщение 245202)
И все-таки, сохранять данные в корень диска категорически не рекомендую, на некоторых телефонах могут быть проблемы с файлами, записанными в корне.

Да, знаю. Просто нет универсальной папки для этого.

ViNT 29.11.2012 20:26

Ответ: CaveCraft
 
Вложений: 1
Допилил функции побайтной записи/чтения в свою библиотеку.
Документацию править пока влом, так что опишу здесь.
Для работы нужны функции:
Код:

function file_open(path):integer;
Открыть файл path
Возвращает: 1-успешно, 0- ошибка.
path в виде root/folder/file.ext

function open_outstream:integer
Открыть поток записи.
Обязательно вызывать перед началом побайтной записи данных.
Возвращает: 1-успешно, 0- ошибка.

function open_instream:integer
Открыть поток чтения.
Обязательно вызывать перед началом побайтного чтения данных.
Возвращает: 1-успешно, 0- ошибка.

function file_write_byte(data:integer):integer;
Запись байта data в файл.
Возвращает: 1-успешно, 0- ошибка.

function file_read_byte:integer;
Чтение байта из файла.
Возвращает: прочитанный байт или  0, если ошибка.

function stream_sz:integer;
Возвращает: прочитанный байт или  0, если ошибка.
Вызывать только после open_instream.

function file_close:integer;
Запись буфера вывода и закрытие файла. Без этого данные не будут записаны в файл.
Возвращает: 1-успешно, 0- ошибка.

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

procedure onerror(src,msg:string);
begin

end;

В нее ссыпаются все ошибки библиотеки.
src - краткий индекс функции, выдавшей ошибку,
msg - сообщение системы (Excaption.toString).

Другие функции соответствуют версии 3.1 (за исключением функций *_s, их убрал).

Тестировал на таком куске кода:
Код:

program jsr75ex4test;
uses jsr75ex4;

const
 path = 'root1/test.dat';

var
 i:integer;
 r:integer;
 y:integer;
 sz:integer;
 
 cmOk:command;
 
procedure onerror(src,msg:string);
begin
 showform;
 cmOK:=CreateCommand('OK',CM_OK,1);
 ShowAlert(src,msg, LoadImage('/icon.png'),ALERT_ERROR);
 delay(20000);
 Showcanvas;
end;

begin
        r:=jsr75ex4.file_open(path);
        r:=open_outstream;
        for i:= 1 to 20 do
          r:=file_write_byte(i);
        r:=file_close;
        DrawText('Done',0,0);
        y:=10;
        repaint;
       
        r:=file_open(path);
        r:=open_instream;
        sz:=stream_sz;
        DrawText(''+sz,0,y);
        repaint;
        y:=y+10;
        for i:=1 to sz do
        begin
                r:=file_read_byte;
                DrawText(''+r,0,y);
                repaint;
                y:=y+10;
  end;
  r:=file_close;
  DrawText('closed',0,y);
  repaint;
        delay(10000);       
       
end.


DeaDCore 06.03.2013 19:24

Ответ: CaveCraft
 
Вложений: 1
Выкладываю последнюю версию(BETA 3 FIX 2).

P.S. Почему нельзя редактировать шапку темы?


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

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