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

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

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

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

Ответ
 
Опции темы
Старый 07.05.2012, 09:11   #1
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Масив + цикл + картинка

Не могу разобратся в чем ошибка, код:

program MMaiv;
var Masiv:array [1..4, 1..4] of image;
A, B : image;
x, y, n, m : integer;

begin
x:=0; y:=0;

A:=loadimage('/land0.png');
B:=loadimage('/land1.png');

masiv[1,1] := A;
masiv[1,2] := B;
masiv[1,3] := B;
masiv[1,4] := A;

masiv[2,1] := B;
masiv[2,2] := A;
masiv[2,3] := A;
masiv[2,4] := B;

masiv[3,1] := B;
masiv[3,2] := A;
masiv[3,3] := A;
masiv[3,4] := B;

masiv[4,1] := A;
masiv[4,2] := B;
masiv[4,3] := B;
masiv[4,4] := A;

for n := 1 to 4 do begin

for m := 0 to 4 do begin
drawimage(masiv[n,m],x,y);
  repaint;
	delay(30);
x := x+30;
end;
x:=0;
y := y+30

end;

drawimage(masiv[1,1],0,0);
 
  repaint;
	delay(3000);

end.
Компилируется но при запуске программи белий екран.
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 12:09   #2
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Масив + цикл + картинка

Внимательно посмотри на это:
var Masiv:array [1..4, [1..4] of image;
.................
for m := 0 to 4 do begin
и подумай, в чём ошибка :В
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 12:11   #3
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Масив + цикл + картинка

И таки да, не загружай в массив изображения, делай "ссылки" на них
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 13:19   #4
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Ответ: Масив + цикл + картинка

PassCall а можно поподробние чо за силки?
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 14:06   #5
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Ответ: Масив + цикл + картинка

var
Masiv:array [1..4, 1..4] of integer;
img:array [1..2] of image;
........................................
img[1]:=loadimage('/land0.png');
img[2]:=loadimage('/land1.png');

masiv[1,1] := 1;
masiv[1,2] := 2;
masiv[1,3] := 2;
masiv[1,4] := 1;

for n := 1 to 4 do begin
for m := 1 to 4 do begin
drawimage (img[masiv[n,m]],x,y);

repaint;
delay(30);
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
OSW (09.05.2012)
Старый 07.05.2012, 14:49   #6
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Ответ: Масив + цикл + картинка

Пока получилось с 1-м масивом:

program Masiv;

var Masiv:array [1..4] of integer;
img:array [1..2] of image;
n, m, x, y, k : integer;

begin
x:=0; y:=0;

img[1]:=loadimage('/land0.png');
img[2]:=loadimage('/land1.png');

masiv[1] := 1;
masiv[2] := 2;
masiv[3] := 2;
masiv[4] := 1;

for k := 1 to 4 do begin
for n := 1 to 4 do begin
//for m := 1 to 4 do begin
drawimage (img[masiv[n]],x,y);
x := x+30;
end;
x:= 0;
y:= y+30;
end;
repaint;
delay(30);

end.
Чето я накрутил непонятное:

program Masiv;

var Masiv:array [1..4, 1..4] of integer;
img:array [1..2] of image;
n, m, x, y, k, i, ii, nx: integer;

begin
x:=0; y:=0;
nx:=1;

img[1]:=loadimage('/land0.png');
img[2]:=loadimage('/land1.png');

for i := 1 to 4 do begin
masiv[i,1] := 1;
masiv[i,2] := 2;
masiv[i,3] := 2;
masiv[i,4] := 1;
i:= i + 1;
end;

for ii := 1 to 4 do begin
i:= ii;
for n := 1 to 4 do begin
drawimage (img[masiv[i,n]],x,y);
n:= n+1;
x := x+30;
end;
ii:= ii+1;

x:= 0;
y:= y+30;
end;
repaint;
delay(30);

end.
Уже хоть виводит 4 строчкии 2 столбца (первий land0.png' а втарой land1.png')

Перекинул код с program Masiv в program MMaiv. Грубо говоря изменилось только Masiv --> MMaiv и программа не работает. Опять белий екран. А в program Masiv всеравно работает?

Последний раз редактировалось ViNT, 07.05.2012 в 23:27.
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 15:52   #7
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Масив + цикл + картинка

Если изменилось только program X; то наверняка название программы совпало с названием какой-нибудь переменной.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 19:09   #8
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Ответ: Масив + цикл + картинка

Программа с совпадением переной и именем программи - работает:

program Masiv;

var Masiv:array [1..4, 1..4] of integer;
img:array [1..2] of image;
n, m, x, y, k, i, ii, nx: integer;
А программа что не совпадает - и не работает:

program MMaiv;
var Masiv:array [1..4, 1..4] of integer;
img:array [1..2] of image;
n, m, x, y, k, i, ii, nx: integer;
Виводит просто белий фон екрана.

Незнаю точно но изменил имя програми полностю МMaiv на Maiv и все заработало. Че нельзя использовать в имени програми и проекта две больших букви?

Я не знаю в чем ошибка, помогите пожалуста:

program Maiv;
var
Masiv: array[1..4, 1..4] of integer;
img: array[1..4] of image;
n, m, x, y, k, i, ii, nx: integer;

begin
x := 0;
y := 0;
nx := 1;

img[1] := loadimage('/land0.png');
img[2] := loadimage('/land1.png');
img[3] := loadimage('/land2.png');
img[4] := loadimage('/land3.png');

for i := 1 to 4 do
begin
masiv[i, 1] := 1;
masiv[i, 2] := 2;
masiv[i, 3] := 3;
masiv[i, 4] := 4;
i := i + 1;
end;

for ii := 1 to 4 do
begin
i := ii;
for n := 1 to 4 do
begin
drawimage(img[masiv[i, n]], x, y);
repaint;
delay(3000);
n := n + 1;
x := x + 30;
end;
ii := ii + 1;

x := 0;
y := y + 30;
end;
Виводит замесь ожидаемих катинок с номерами:

1234
1234
1234
1234

вот такие:

13
13

Почему столбец 2, 4 и строки 3, 4 не виводятся вообще?

Последний раз редактировалось ViNT, 07.05.2012 в 23:26.
(Offline)
 
Ответить с цитированием
Старый 07.05.2012, 22:53   #9
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Масив + цикл + картинка

Цикл for подразумевает что переменная i будет сама увеличиваться, по умолчанию на единицу.
Строчка "i := i + 1;" в первом цикле не нужна.
Так же и в других циклах for в программе.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
OSW (08.05.2012)
Старый 08.05.2012, 08:30   #10
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Ответ: Масив + цикл + картинка

Спс FireOwl
(Offline)
 
Ответить с цитированием
Старый 08.05.2012, 13:46   #11
Serg153
Нуждающийся
 
Регистрация: 03.01.2009
Сообщений: 93
Написано 8 полезных сообщений
(для 15 пользователей)
Ответ: Масив + цикл + картинка

2 OSW - маленький совет - тут уже писали - насчёт массивов = Обьявляй их размерность начиная с 0...4
иначе компилятор сам начнёт нумеровать и массивы и ссылки на них с 0, добавляя в указателях операцию -1, минус 1
типа так
  img: array[1..4] of image;
...
for(m_nI = 1; 4 >= m_nI; m_nI++)                                                                               
  m_GcGraphics._drawImagecImageIIIV(
     m_imgar_cImage[m_masivar_ar_I[m_iiI - 1][m_nI - 1] - 1], m_xI, m_yI, 20);
а если бы с 0 начал то код был бы поменьше и выполнялся быстрее:

img: array[0..4] of image;
...
for(m_nI = 1; 4 >= m_nI; m_nI++) {
  m_GcGraphics._drawImagecImageIIIV(
      m_imgar_cImage[m_masivar_ar_I[m_iiI][m_nI]], m_xI, m_yI, 20);
(Offline)
 
Ответить с цитированием
Старый 09.05.2012, 06:51   #12
OSW
AnyKey`щик
 
Регистрация: 20.04.2012
Сообщений: 11
Написано одно полезное сообщение
Ответ: Масив + цикл + картинка

Ура все работает:

program Maiv;
var
Masiv: array[1..4, 1..4] of integer;
img: array[1..4] of image;
n, m, m1, m2, m3, m4, x, y, k, i, ii, nx: integer;

begin
x := 0;
y := 0;
nx := 1;

img[1] := loadimage('/land0.png');
img[2] := loadimage('/land1.png');
img[3] := loadimage('/land2.png');
img[4] := loadimage('/land3.png');


masiv[1, 1] := 1;
masiv[1, 2] := 2;
masiv[1, 3] := 3;
masiv[1, 4] := 4;

masiv[2, 1] := 1;
masiv[2, 2] := 2;
masiv[2, 3] := 3;
masiv[2, 4] := 4;

masiv[3, 1] := 1;
masiv[3, 2] := 2;
masiv[3, 3] := 3;
masiv[3, 4] := 4;

masiv[4, 1] := 1;
masiv[4, 2] := 2;
masiv[4, 3] := 3;
masiv[4, 4] := 4;


for ii := 1 to 4 do
begin
i := ii;
for n := 1 to 4 do
begin
drawimage(img[masiv[i, n]], x, y);
repaint;
delay(3000);

x := x + 30;
end;


x := 0;
y := y + 30;
end;

end.
(Offline)
 
Ответить с цитированием
Старый 09.05.2012, 07:02   #13
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Масив + цикл + картинка

А все таки заполнение массива красивее сделать так:
for i:=1 to 4 do
    for j:=1 to 4 do
        masiv[i,j]:=j;
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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