Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: programmer  
Помогите пожалуйста с игрой.
KolyanuSДата: Воскресенье, 19.12.2010, 17:08 | Сообщение # 1
Группа: Удаленные





Не могу понять почему когда я запускаю этот мидлет он сразу же выключается. Я взял этот пример с интернета вставил в прогу а он сразу после запуска выключается. Может дело в том что у меня настроено тип и версия мидлета 2.0
Program ksproga;
var
chel:image; // Переменная для хранения самого объекта
X,Y:integer; // Координаты объекта
Key:integer; // Код нажатой кнопки
begin
// Загружаем картинки
chel:=LoadImage('/chel.png');

// Задаем начальные координаты объекта
X:=50;
Y:=50;

// Цикл до нажатия на центр джойстика
while (Key<>GA_FIRE) do
begin
Выводим изображения и обязательно ставим небольшую паузу
DrawImage(chel,X,Y);
Delay(100);
repaint;

// Обрабатываем нажатия кнопок и меняем координаты объекта
Key:=KeyToAction(getKeyPressed);
if (Key=GA_LEFT) then X:=X-3;
if (Key=GA_RIGHT) then X:=X+3;
if (Key=GA_UP) then Y:=Y-3;
if (Key=GA_DOWN) then Y:=Y+3;
end;
end.

Сообщение отредактировал KolyanuS - Воскресенье, 19.12.2010, 17:11
 
12121Дата: Воскресенье, 19.12.2010, 17:26 | Сообщение # 2
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
А картинку какую нибудь по имени chel.png добавил?
 
KolyanuSДата: Воскресенье, 19.12.2010, 17:56 | Сообщение # 3
Группа: Удаленные





да добавлял
 
121212Дата: Воскресенье, 19.12.2010, 18:11 | Сообщение # 4
Программист
Группа: Проверенные
Сообщений: 268
Награды: 7
Репутация: « 14 »
Статус: Offline
уверен? biggrin
 
12121Дата: Воскресенье, 19.12.2010, 18:21 | Сообщение # 5
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
Надо удалить или за комментировать этот комментарий -
Выводим изображения и обязательно ставим небольшую паузу
 
KolyanuSДата: Воскресенье, 19.12.2010, 20:25 | Сообщение # 6
Группа: Удаленные





Точно блин я недавно заметил это :D. Тото смотрю у меня при компиляции 100 непоняток. А теперь новый вопрос. У меня этот chel ходит но оставляет за собой след. Как сделать чтоб не оставлял?
 
12121Дата: Воскресенье, 19.12.2010, 21:42 | Сообщение # 7
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
видимо исходная картинка имела по 3 пустых пикселя со всех сторон и стирать ничего не надо было. а так просто рисуем прямоугольник
Code

Program ksproga;  
var  
chel:image; // Переменная для хранения самого объекта  
X,Y:integer; // Координаты объекта  
Key:integer; // Код нажатой кнопки  
begin  
// Загружаем картинки  
chel:=LoadImage('/icon.png');  

// Задаем начальные координаты объекта  
X:=50;  
Y:=50;  

// Цикл до нажатия на центр джойстика  
while (Key<>GA_FIRE) do  
begin  
//Выводим изображения и обязательно ставим небольшую паузу
setColor(255,255,255);
fillRect(0,0,getWidth, getHeight);  
DrawImage(chel,X,Y);  
repaint;  
Delay(100);  

// Обрабатываем нажатия кнопок и меняем координаты объекта  
Key:=KeyToAction(getKeyPressed);  
if (Key=GA_LEFT) then X:=X-3;  
if (Key=GA_RIGHT) then X:=X+3;  
if (Key=GA_UP) then Y:=Y-3;  
if (Key=GA_DOWN) then Y:=Y+3;  
end;  
end.
 
KolyanuSДата: Понедельник, 20.12.2010, 17:43 | Сообщение # 8
Группа: Удаленные





12121, Спасибо smile
 
KolyanuSДата: Вторник, 21.12.2010, 19:18 | Сообщение # 9
Группа: Удаленные





Как сделать столкновение с объектом stena. Если что я делаю лабиринт. [code] Program ksproga;
var
stena:image;
chel:image; // Переменная для хранения самой тарелки
X,Y:integer; // Координаты тарелки
Key:integer; // Код нажатой кнопки
begin
// Загружаем картинки
chel:=LoadImage('/chel.png');
stena:=LoadImage('/chel.png');

// Задаем начальные координаты тарелки
X:=0;
Y:=0;
// Цикл до нажатия на центр джойстика
while (Key<>GA_FIRE) do
begin
setColor(255,255,255);
fillRect(0,0,getWidth, getHeight);
DrawImage(chel,X,Y);
DrawImage(stena,100,100);
repaint;
Delay(100);
// Обрабатываем нажатия кнопок и меняем координаты тарелки
Key:=KeyToAction(getKeyPressed);
if (Key=GA_LEFT) then X:=X-(getImageHeight(chel));
if (Key=GA_RIGHT) then X:=X+(getImageHeight(chel));
if (Key=GA_UP) then Y:=Y-(getImageHeight(chel));
if (Key=GA_DOWN) then Y:=Y+(getImageHeight(chel));

end;
end.

 
12121Дата: Среда, 22.12.2010, 15:23 | Сообщение # 10
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
Может тебе проще использовать эту либу ?
http://mobilepascal.ru/load/54-1-0-193
 
12121Дата: Четверг, 23.12.2010, 15:48 | Сообщение # 11
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
можно так но проще через массив
Code

Program Schetchik;
var
stena:image;
chel:image; // Переменная для хранения самой тарелки
X,Y,stolk:integer; // Координаты тарелки
Key:integer; // Код нажатой кнопки

// проверяем попадает ли точка x1, y1  в прямоугольник x,y,width,height
function Stolkn(x,y,width,height,  x1,y1: integer): integer;  
   begin  
   if (x1>=x) and (x1<=x+width) and (y1>=y) and (y1<=y+height) then Stolkn:=1; else Stolkn:=0;
  end;

begin
// Загружаем картинки
chel:=LoadImage('/icon.png');
stena:=LoadImage('/icon.png');

// Задаем начальные координаты тарелки
X:=0;
Y:=0;
// Цикл до нажатия на центр джойстика
while (Key<>GA_FIRE) do
begin
setColor(255,255,255);
fillRect(0,0,getWidth, getHeight);
DrawImage(chel,X,Y);
DrawImage(stena,100,100);

// проверяем на столкновение угловые точки.   если картинки разного размера может нужно проверять и другие точки
stolk:=0;
stolk:=Stolkn(100,100,getImageWidth(stena),getImageHeight(stena),X,Y);
stolk:=stolk+Stolkn(100,100,getImageWidth(stena),getImageHeight(stena),X+getImageWidth(chel),Y);
stolk:=stolk+Stolkn(100,100,getImageWidth(stena),getImageHeight(stena),X,Y+getImageHeight(chel));
stolk:=stolk+Stolkn(100,100,getImageWidth(stena),getImageHeight(stena),X+getImageWidth(chel),Y+getImageHeight(chel));

setColor(255,0,0);
if (stolk>0) then DrawText('Столкновение !',0,0);

repaint;
Delay(100);
// Обрабатываем нажатия кнопок и меняем координаты тарелки
Key:=KeyToAction(getKeyPressed);
if (Key=GA_LEFT) then X:=X-(getImageHeight(chel));
if (Key=GA_RIGHT) then X:=X+(getImageHeight(chel));
if (Key=GA_UP) then Y:=Y-(getImageHeight(chel));
if (Key=GA_DOWN) then Y:=Y+(getImageHeight(chel));

end;
end.
 
12121Дата: Четверг, 23.12.2010, 15:50 | Сообщение # 12
Программист
Группа: Проверенные
Сообщений: 357
Награды: 4
Репутация: « 290 »
Статус: Offline
stolk:=0; эта строчка лишняя
 
  • Страница 1 из 1
  • 1
Поиск: