MIDlet Pascal
Поиск по сайту
Форма входа

Статистика


Яндекс.Метрика

Друзья сайта
IT юмор - развлечения
Заработать в интернете - легко!Просто сиди и кликай.
Воскресенье, 23.09.2018, 01.56.30
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
вопрос №2 - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Midlet Pascal » Вопросы по MidletPascal » вопрос №2 (ааа)
вопрос №2
LincorДата: Понедельник, 25.03.2013, 14.12.32 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Код
procedure save_game;
var root,name,fname:string;
i:integer;
begin
root:=getcatalog(get_roots);
name:='warpeople';
fname:=root+name+'.sav';
delete_file(fname);
file_create(fname);
if open_file(fname)=1 then
  begin
   write_byte(1); write_byte(x); write_byte(y); write_byte(y2); write_byte(povorot); write_byte(speed_x); write_byte(speed_y); write_byte(life); write_byte(score); write_byte(killed);
   write_byte(2); write_byte(plr_weapon); write_byte(ammo);
   for i:=0 to 23 do
   begin
    write_byte(3); write_byte(en[i].typ); write_byte(en[i].x); write_byte(en[i].y); write_byte(en[i].weapon); write_byte(en[i].hp);
   end;
   flush;
  end;
end;

procedure load_game;
var root,name,fname:string;
i,t:integer;
begin
root:=getcatalog(get_roots);
name:='warpeople';
fname:=root+name+'.sav';
if file_exists(fname)=1 then
if open_file(fname)=1 then
  begin
   if t=1 then
   begin
    x:=read_byte; y:=read_byte; y2:=read_byte; povorot:=read_byte; speed_x:=read_byte; speed_y:=read_byte; life:=read_byte; score:=read_byte; killed:=read_byte;
   end;
   if t=2 then
   begin
    plr_weapon:=read_byte; ammo:=read_byte;
   end;
   if t=3 then
   begin
    for i:=0 to 23 do
     begin
      en[i].typ:=read_byte; en[i].x:=read_byte; en[i].y:=read_byte; en[i].weapon:=read_byte; en[i].hp:=read_byte;
     end;
   end;
  end;
end;


почему-то при загрузке все загружаемые переменные равны 0
 
WladymyrДата: Понедельник, 25.03.2013, 15.47.28 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 15
Репутация: 1
Статус: Offline
Они все равны нулю потому что они индивидуальные, тоисть при каждом вызове одной из процедур, они обнуляются smile Сделайте эти переменные глобальными и удалите их из процедур.
 
LincorДата: Понедельник, 25.03.2013, 17.19.23 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
Цитата (Lincor)
var root,name,fname:string; i:integer;
эти?
 
WladymyrДата: Понедельник, 25.03.2013, 17.21.54 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 15
Репутация: 1
Статус: Offline
Цитата (Lincor)
Цитата (Lincor)var root,name,fname:string; i:integer;
эти?

Да.
 
LincorДата: Среда, 27.03.2013, 13.07.57 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
не помогло sad
 
WladymyrДата: Среда, 27.03.2013, 16.03.06 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 15
Репутация: 1
Статус: Offline
код должен выгляддеть примерно так.Если это так, то переменные всё-ровно обнуляются?
Цитата (код)

var root,name,fname:string;
i:integer;

procedure save_game;
begin
root:=getcatalog(get_roots);
name:='warpeople';
fname:=root+name+'.sav';
delete_file(fname);
file_create(fname);
if open_file(fname)=1 then
begin
write_byte(1); write_byte(x); write_byte(y); write_byte(y2); write_byte(povorot); write_byte(speed_x); write_byte(speed_y); write_byte(life); write_byte(score); write_byte(killed);
write_byte(2); write_byte(plr_weapon); write_byte(ammo);
for i:=0 to 23 do
begin
write_byte(3); write_byte(en[i].typ); write_byte(en[i].x); write_byte(en[i].y); write_byte(en[i].weapon); write_byte(en[i].hp);
end;
flush;
end;
end;

procedure load_game;
begin
root:=getcatalog(get_roots);
name:='warpeople';
fname:=root+name+'.sav';
if file_exists(fname)=1 then
if open_file(fname)=1 then
begin
if t=1 then
begin
x:=read_byte; y:=read_byte; y2:=read_byte; povorot:=read_byte; speed_x:=read_byte; speed_y:=read_byte; life:=read_byte; score:=read_byte; killed:=read_byte;
end;
if t=2 then
begin
plr_weapon:=read_byte; ammo:=read_byte;
end;
if t=3 then
begin
for i:=0 to 23 do
begin
en[i].typ:=read_byte; en[i].x:=read_byte; en[i].y:=read_byte; en[i].weapon:=read_byte; en[i].hp:=read_byte;
end;
end;
end;
end;
 
LincorДата: Среда, 27.03.2013, 19.28.42 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 6
Репутация: 0
Статус: Offline
дело было в переменной t: убрал ее, а также запись ее цифр и все прекрасно заработало smile
 
WladymyrДата: Четверг, 28.03.2013, 11.26.38 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 15
Репутация: 1
Статус: Offline
Цитата (Lincor)
дело было в переменной t: убрал ее, а также запись ее цифр и все прекрасно заработало smile

Это хорошо smile но этой переменной я не видел
 
Форум » Midlet Pascal » Вопросы по MidletPascal » вопрос №2 (ааа)
  • Страница 1 из 1
  • 1
Поиск:

Wladymyr © 2018
Создать бесплатный сайт с uCoz