Помогите пожалуйста с игрой.
|
|
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
| А картинку какую нибудь по имени chel.png добавил?
|
|
| |
KolyanuS | Дата: Воскресенье, 19.12.2010, 17:56 | Сообщение # 3 |
Группа: Удаленные
| да добавлял
|
|
| |
121212 | Дата: Воскресенье, 19.12.2010, 18:11 | Сообщение # 4 |
Программист
Группа: Проверенные
Сообщений: 268
Награды: 7
Репутация:
« 14 »
Статус: Offline
| уверен?
|
|
| |
12121 | Дата: Воскресенье, 19.12.2010, 18:21 | Сообщение # 5 |
Программист
Группа: Проверенные
Сообщений: 357
| Надо удалить или за комментировать этот комментарий - Выводим изображения и обязательно ставим небольшую паузу
|
|
| |
KolyanuS | Дата: Воскресенье, 19.12.2010, 20:25 | Сообщение # 6 |
Группа: Удаленные
| Точно блин я недавно заметил это :D. Тото смотрю у меня при компиляции 100 непоняток. А теперь новый вопрос. У меня этот chel ходит но оставляет за собой след. Как сделать чтоб не оставлял?
|
|
| |
12121 | Дата: Воскресенье, 19.12.2010, 21:42 | Сообщение # 7 |
Программист
Группа: Проверенные
Сообщений: 357
| видимо исходная картинка имела по 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, Спасибо
|
|
| |
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
| Может тебе проще использовать эту либу ? http://mobilepascal.ru/load/54-1-0-193
|
|
| |
12121 | Дата: Четверг, 23.12.2010, 15:48 | Сообщение # 11 |
Программист
Группа: Проверенные
Сообщений: 357
| можно так но проще через массив 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
| stolk:=0; эта строчка лишняя
|
|
| |