|
09.11.2011, 18:22
|
#31
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Да, неплохо бы готовый пример, если не затруднит.
|
(Offline)
|
|
09.11.2011, 18:24
|
#32
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
Минутку...
Вот. Пользуйся.
DEMO_landscape_new.rar
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 19:11
|
#33
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
program lol;
var
i,j,x,y,key,:integer;
S:string;
res:resource;
land_image:array [1..2] of image;
land_array:array [1..30,1..30] of integer;
pers:image;
begin
land_image[1]:=loadimage('/land1.png');
land_image[2]:=loadimage('/land2.png');
for i:=1 to 30 do
for j:=1 to 30 do
land_array [i,j]:=1;
res:=openresource('/map.txt');
for i:=1 to 10 do
begin
S:=readline (res);
land_array[j,i]:=stringtointeger(GetChar(S,j-1));
end;
closeresource (res);
REPEAT
setcolor(255,255,255);
fillrect(0,0,240,320);
for i:=1 to 11 do
for j:=1 to 9 do
begin
drawimage (land_image[land_array[j+,i+]],(j-1+)*30-,(i-1)*30);
end;
drawimage (pers,50,40);
key:=GetKeyPressed;
if keytoaction(key)=GA_UP then
begin
y:=y-1;
end;
if keytoaction(key)=GA_DOWN then
begin
y:=y+1;
end;
if keytoaction(key)=GA_LEFT then
begin
x:=x-1;
end;
if keytoaction(key)=GA_RIGHT then
begin
x:=x+1;
end;
repaint;
delay (20);
UNTIL (GetKeyPressed=KE_KEY0);
end.
|
Немного упростил под себя. Но при компиляции тычет в строку с "var" и на ту, где рисуется белый прямоугольник на весь экран.
|
(Offline)
|
|
09.11.2011, 20:24
|
#34
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
"i,j,x,y,key,:integer;" убери лишнюю запятую - она вводит МидлетПаскаль в заблуждение
"drawimage (land_image[land_array[j+,i+]],(j-1+)*30-,(i-1)*30);" лишние минусы и плюсы. нет такого числа как "5+" или "3-" =)
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 20:34
|
#35
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Ах да, невнимательность =)
Но почему-то всё равно белый экран...
|
(Offline)
|
|
09.11.2011, 20:35
|
#36
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
А ты персонажа в память загрузил?
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 20:36
|
#37
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Конечно.
|
(Offline)
|
|
09.11.2011, 20:37
|
#38
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
А, и правда не загрузил. Я думал, ты про ресурс.
|
(Offline)
|
|
09.11.2011, 20:40
|
#39
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Да даже с персом виснет
|
(Offline)
|
|
09.11.2011, 20:45
|
#40
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
Регистр соблюден?
"Pers.png" и "pers.png" это два разных файла
И вставь вот это
for i:=1 to 30 do
for j:=1 to 30 do
land_array[i,j]:=1;
перед S:=readline (res);
Так как по умолчанию значения этого массива ноль, то движок пытается вывести картинку ландшафта под номером ноль. А у нас есть только 1 и 2.
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 20:47
|
#41
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Так точно, соблюден.
|
(Offline)
|
|
09.11.2011, 20:54
|
#42
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
а код вставил?
секунду, а зачем в коде вот это (выделено жирным)?
program lol;
var
i,j,x,y,key,:integer;
S:string;
res:resource;
land_image:array [1..2] of image;
land_array:array [1..30,1..30] of integer;
pers:image;
begin
land_image[1]:=loadimage('/land1.png');
land_image[2]:=loadimage('/land2.png');
for i:=1 to 30 do
for j:=1 to 30 do
land_array [i,j]:=1;
res:=openresource('/map.txt');
for i:=1 to 10 do
begin
S:=readline (res);
land_array[j,i]:=stringtointeger(GetChar(S,j-1));
end;
closeresource (res);
REPEAT
setcolor(255,255,255);
fillrect(0,0,240,320);
for i:=1 to 11 do
for j:=1 to 9 do
begin
drawimage (land_image[land_array[j+,i+]],(j-1+)*30-,(i-1)*30);
end;
drawimage (pers,50,40);
key:=GetKeyPressed;
if keytoaction(key)=GA_UP then
begin
y:=y-1;
end;
if keytoaction(key)=GA_DOWN then
begin
y:=y+1;
end;
if keytoaction(key)=GA_LEFT then
begin
x:=x-1;
end;
if keytoaction(key)=GA_RIGHT then
begin
x:=x+1;
end;
repaint;
delay (20);
UNTIL (GetKeyPressed=KE_KEY0);
end.
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 20:59
|
#43
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
Чтото ты намудрил.
Должно быть так
for i:=1 to 10 do
begin
S:=readline (res);
for j:=1 to 10 do
land_array[j,i]:=stringtointeger(GetChar(S,j-1));
end;
closeresource (res);
То, что красным выделено, ты пропустил
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
09.11.2011, 21:12
|
#44
|
Оператор ЭВМ
Регистрация: 01.11.2011
Сообщений: 35
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Помогите исправить ошибку
Исправил, но всё равно белый экран =(
|
(Offline)
|
|
09.11.2011, 21:15
|
#45
|
Разработчик
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений (для 319 пользователей)
|
Ответ: Помогите исправить ошибку
Скинь короче мне свой проект, счас посмотрю, в чем дело
__________________
Мечта программиста: запрограммировать процесс программирования.
Всё гениальное - просто.
http://passcall.ucoz.com
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:48.
|