forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Помощь мне люди (http://forum.boolean.name/showthread.php?t=16253)

Elastic 30.01.2012 23:15

Помощь мне люди
 
Помогите мне ребят,я новичок,любитель,и есть очень клевая задумка,на счет игры,и пытаюсь по кусочкам собирать,экспериментирую со всякими исходниками,и никак не могу понять,как мне сделать следующее...
Довести курсор до определенной точки координаты,то высветить определенный текст.?мучался оч долго,есть даже исходник,но там ошибка,и не могу понять в чем дело,..покажите плиз пример моего запроса,если надо будет я выложу неисправный исходник...

ViNT 30.01.2012 23:47

Ответ: Помощь мне люди
 
Код:

repeat
 k:=GetKeyPressed;
 e:=KeyToAction(k)
 if e = GA_UP then
  y:=y-1;
 if e = GA_DOWN then
  y:=y+1;
 if e = GA_RIGHT then
  x:=x+1;
 if e = GA_LEFT then
  x:=x-1;
 DrawImage(cusror,x,y);
 if (x=TX)and(y=TY) then //TX, TY - координаты цели
  DrawText('text',0,0);
 repaint;
 Delay(100);
until k = KE_KEY0;

Как-то так.
В чем сложность заключается?

UPD: Про задержку забыл

Elastic 31.01.2012 00:27

Ответ: Помощь мне люди
 
Спасибо,это мне известно,но мне нужно похожее,-
Если х=а1 ,то высветить определенный текст в углу экрана..я не знаю как это обьяснить...блин..

ViNT 31.01.2012 00:40

Ответ: Помощь мне люди
 
В чем отличие результата выполнения этого кода от требуемого результата?

Elastic 31.01.2012 00:42

У меня много кода,этот там есть,но там ошибки,паскаль не компилит..ошибку,я знаю что там ошибка,но не знаю как ее решить...попробую выложить исходник

Я удалил исходник оказывается,ладно,попробую еще раз но по другому,спасибо за помощь,я еще сюда вернусь:)midletpascal жжет:)

*********** где ошибка!?помогите,ничего не отображается

ViNT 31.01.2012 02:38

Ответ: Помощь мне люди
 
Что за левая ссылка? Спам что ли? или не в курсе, что можно прикреплять файлы к сообщению?

Elastic 31.01.2012 11:33

Вложений: 1
Вложение 16079

Охх.извините,не знал как,с телефона сижу,с
Так вот,все норм,но не отображается,поправьте код плиз кто нить и про комментируйте,а то я уже выбился из сил...очен прошу..

Просто белый экран,не знаю,пытался ,искал,изменял,но не могу найти ответ,не отображаются картинки на экране эмулятора и телефона..помогите разобраться...пост выше с вкладкой 'paint",.

ViNT 31.01.2012 13:35

Ответ: Помощь мне люди
 
Если выкинуть drawimage(space,0,0); в начале программы, белого экрана не будет (иначе происходит попытка отрисовки незагруженного изображения).
Почему дальше не работает - точно сказать не могу, не работал с этой библиотекой, но возможно потому, что не загружена карта.

Elastic 31.01.2012 14:34

Ответ: Помощь мне люди
 
Уже убрал,но все равно белый экран,это не повлияло на исправление...ладно.спасибо,попробую без библиотеки аркада...спасибо еще раз..

Amigo888 31.01.2012 16:23

Ответ: Помощь мне люди
 
Вложений: 1
Elastic как я понял ти хотел сделать что то похожие на описание звезд созвездий? Если я правильно понял, то вот тебе пример

Elastic 31.01.2012 17:46

Подскажите,а как сделать-в любую сторону передвигаешь картинку,а анимация одна и та же,без переворота?не могу сообразить...

Амиго!:)красавчик:)спасибо тебе чувак!прям в точку!

Amigo888 31.01.2012 18:35

Ответ: Помощь мне люди
 
Не очень понятно что имеешь ввиду

добавь 2 переменой x1 и y1. Добавь картинку и присвой ей координаты x1 y1. Потом в цикле repeat Напиши например: If key=KE_KEY6 then x1:=x1+3;

это в право на лево x1:=x1-3

Elastic 31.01.2012 19:15

Вложений: 2
Вложение 16092
где проблема? не могу понять.....не компилиться...
эммм...на счет анимации, я хотел чтоб было типа вот так Вложение 16093 но чтоб можно было передвигать...не могу реализовать....хелп ми...

Цитата:

Сообщение от ViNT (Сообщение 218188)
Код:

repeat
 k:=GetKeyPressed;
 e:=KeyToAction(k)
 if e = GA_UP then
  y:=y-1;
 if e = GA_DOWN then
  y:=y+1;
 if e = GA_RIGHT then
  x:=x+1;
 if e = GA_LEFT then
  x:=x-1;
 DrawImage(cusror,x,y);
 if (x=TX)and(y=TY) then //TX, TY - координаты цели
  DrawText('text',0,0);
 repaint;
 Delay(100);
until k = KE_KEY0;

Как-то так.
В чем сложность заключается?

UPD: Про задержку забыл



все именно так винт, сорри, просто с телефона не все открылось...

все)))спасибо...разобрался)))

но как бы мне сделать анимацию курсора?

Amigo888 31.01.2012 19:42

Ответ: Помощь мне люди
 
тебе суда http://forum.boolean.name/showthread.php?t=7816


насчет ошибки в процедуре хз с эндами нахимичил, вот подправил:

Код:

procedure xz;
begin
if(x>50)and(y>50)and(x<60)and(y<60)then
begin
setcolor(255,255,255);
fillRoundRect(140,25,91,20,5,5);//закрашенный прямоугольник с куглыми углами
SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_SMALL);//шрифт
setcolor(0,0,0);
drawtext('Система:ReVol',142,25);//х,у прямоугольника в котором будет текст
end;
if(x>78)and(y>90)and(x<88)and(y<100)then
begin
setcolor(255,255,255);
fillroundrect(140,25,91,20,5,5);
SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_SMALL);//шрифт
setcolor(0,0,0);
drawtext('Система:MiTer',142,25);
end;
end;


Elastic 31.01.2012 20:15

Ответ: Помощь мне люди
 
нет,я там не понимаю, мне бы примерчик типа как в игре ArcadeDemo-Золотоискатель, она тут где то было...эхх...все так сложно....

Amigo888 31.01.2012 20:15

Ответ: Помощь мне люди
 
Программирование оно не очень сложно если ты вникаешь, понимаешь что делаешь.

Elastic 31.01.2012 20:19

Ответ: Помощь мне люди
 
зато занимательно))ладно....как бы мне с анимировать по кадрово курсор....типа той картинки, которую я выложил на прошлой страничке...

но чем больше курсор, тем кривее отображает координаты.то есть, наводишь на точку Х=5, оно не отображает, а если направить курсор на точку 8,то оно будет отображать как Х=5...фигня...

reumep 31.01.2012 20:30

Ответ: Помощь мне люди
 
я MP не знаю, но такая ситуация по идее должны быть из-за неправильной точки привязки

ViNT 31.01.2012 20:36

Ответ: Помощь мне люди
 
В таком варианте учитываются координаты левого верхнего угла изображения. Чтобы выводить координаты центра, координаты отрисовки надо сдвигать на половину размера изображения, то есть DrawImage(cursor,x-GetImageWidth(cursor) div 2, y-GetImageHeight(cursor) div 2);, естественно, сдвиг координат лучше просчитать заранее и подставлять уже вычисленные значения.

Elastic 31.01.2012 21:14

Ответ: Помощь мне люди
 
как выводить?нужно что то обьявить,какие то процедуры там...а то ошибку выбивает,не компилиться...

а и еще ребят, возможно ли добавить немного кинетического(инерция кажется), если я не ошибаюсь, чтоб передвинул курсор,а он плавно начал двигаться, и плавно закончил передвижение?..возможно?то как если да....

хм....такое ощущение будто специально никто не отвечает "ДА", так как мне потом надо будет еще и обьяснять как это все делать...

reumep 01.02.2012 09:48

Ответ: Помощь мне люди
 
Цитата:

Сообщение от Elastic (Сообщение 218340)
хм....такое ощущение будто специально никто не отвечает "ДА", так как мне потом надо будет еще и обьяснять как это все делать...

ДА

ViNT 01.02.2012 13:16

Ответ: Помощь мне люди
 
Цитата:

Сообщение от Elastic (Сообщение 218304)
как выводить?нужно что то обьявить,какие то процедуры там...а то ошибку выбивает,не компилиться...

Имеется в виду сравнение координат, то есть, чтобы условие срабатывало тогда, когда над точкой находится центр курсора, а не угол. Надо писать как-то так:
Код:

var
 Sx, Sy:integer;
 Sx:=GetImageWidth(cursor) div 2;
 Sy:=GetImageHeight(cursor) div 2;
 TX:=TX-Sx;
 TY:=TY-Sy
 repeat
  ...
  if((x=TX)and(y=TY)) then
  DrawText(...);


Elastic 01.02.2012 13:54

Цитата:

Сообщение от ViNT (Сообщение 218363)
Имеется в виду сравнение координат, то есть, чтобы условие срабатывало тогда, когда над точкой находится центр курсора, а не угол. Надо писать как-то так:
Код:

var
 Sx, Sy:integer;//объявляем , но что такое Sx Sy ?
 Sx:=GetImageWidth(cursor) div 2;
 Sy:=GetImageHeight(cursor) div 2;//что такое div 2, и надо ли ее объявлять в Var div2:integer?
 TX:=TX-Sx;//?
 TY:=TY-Sy//?
 repeat// повтор
  ...
  if((x=TX)and(y=TY)) then
  DrawText(...);//текст


спасибо, но ты не мог бы сделать описание каждой строчки, а то я не понимаю что где...

и еще ребят, как сделать мультиэкран?иили как там она, чтоб на все экраны подходило, какие коды программы?

ViNT 01.02.2012 14:06

Ответ: Помощь мне люди
 
Sx и Sy, это значения сдвига координат, не обходимого для того, чтобы учитывалось положение центра курсора.
div 2 это не переменная, а целочисленное деление на 2 (делим длину изображения пополам, чтобы найти центр).
TX и TY - координаты цели, из изначально заданных координат вычитаем сдвиги, чтобы учесть смещение центра.

По поводу инерции - сделать возможно, но довольно сложно. Можно делать либо достоверную физическую модель (с расчетом координат по физическим формулам), можно попробовать более простой вариант с таймером - как только клавиша отпущена, запускаем таймер, который уменьшает значение шага координат от некоторого значения до нуля, таким образом, после отпускания кнопки объект плавно остановится. Но и тут надо думать, как реализовать.

Elastic 01.02.2012 16:12

Ответ: Помощь мне люди
 
thanks,but that not really for me.....

ок...а как на счет мультиэкранной версии программы?как сделать так, чтоб моя программа или же играа подходила на большенство телефонов?

ViNT 01.02.2012 16:22

Ответ: Помощь мне люди
 
Цитата:

Сообщение от Elastic (Сообщение 218378)
ок...а как на счет мультиэкранной версии программы?как сделать так, чтоб моя программа или же играа подходила на большенство телефонов?

Пересчитывать координаты объектов исходя из размеров экрана. С изображениями сложнее - если графики немного - использовать несколько копий изображения с разным разрешением под разные разрешения экрана. Но лучше просто делать отдельные сборки под популярные разрешения (пересчитывать координаты все равно придется, но набор графики будет один) сборки будут отличаться только разрешением изображений.

Amigo888 01.02.2012 16:52

Ответ: Помощь мне люди
 
вот это тоже вариант http://forum.boolean.name/showthread.php?t=14455

Elastic 01.02.2012 23:30

Ответ: Помощь мне люди
 
воу...капц...знач буду под большинство...спасибо


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot