Вопрос по С++


гильдия Мудрецы (Элита)[69667] гильдия Бойцы (Элита)[72535] Чижик Информация
Назад к темам раздела.
2009-05-05 22:08:37 гильдия Мудрецы (Элита)[69667] гильдия Бойцы (Элита)[72535] Чижик Информация
программа апроксимирует точки, рисует график, вопщем эт не важно, надо сделать чтобы курсор стоял в середине экрана, в графическом режиме, по нажатию стрелок перемещался, сколько-то пикселей шаг, и чтобы в углу выводились координаты курсора. вопщем вопрос в том, как сделать чтобы по нажатию кнопок курсор перемещался :)
 
2009-05-05 22:09:23 гильдия Бойцы (Грандмастер)[33816] гильдия Алхимики (Мастер)[8765] гильдия Королевские Лабоходы (Ученик)[490] KillerSystem Информация
букв много(
 
2009-05-05 22:15:02 гильдия Мудрецы (Элита)[69667] гильдия Бойцы (Элита)[72535] Чижик Информация
KillerSystem
не тебе писал *(
 
2009-05-05 22:43:58 гильдия Мудрецы (Элита)[75554] гильдия Бойцы (Грандмастер)[13250] Кровавый_ворон Информация
а какая оплата будет за прогу?)
 
2009-05-06 09:20:41 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
Чижик
среда разработки какая?
 
2009-05-06 15:18:12 гильдия Мудрецы (Элита)[69667] гильдия Бойцы (Элита)[72535] Чижик Информация
MrHide
BC 3.1
Кровавый_ворон
да мне не прогу надо, прогу написал ) я тока не знаю, как сделать, чтобы курсор по экранчику бегал по нажатии стрелок ))
 
2009-05-06 16:37:39 гильдия Собиратели (Ученик)[275] полишка Информация
сначала прочит надо...
 
2009-05-06 17:26:42 гильдия Мудрецы (Ученик)[156] гильдия Собиратели (Мастер)[9061] MedMax Информация
полишка
это спрашивают у адекватных людей.ты к ним не относишся :р
 
2009-05-06 19:38:54 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
Чижик
сейчас на работе очень занят
вечером напишу как сделать
 
2009-05-06 19:49:13 гильдия Столичные Шахтеры (Элита)[167881] гильдия Бойцы (Адепт)[548] Орда Орков (Пялельщик - Ржавый набалдажник) PAYNE Информация
Чижик
https://www.fantasyland.ru/cgi/f_show_thread.php?id=278811&n=2&rid=11
https://msdn.microsoft.com/en-us/library/ms648394(VS.85).aspx
 
2009-05-06 21:54:07 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
Чижик писал(а):
как сделать чтобы по нажатию кнопок курсор перемещался :)

Чижик писал(а):
BC 3.1

значит смотри:
функция int getch(void); - вводит с клавиатуры один символ, при этом на экране введенный символ не отображается (по сути возвращает код нажатой клавиши)
в общем ловишь клавишу, дальше проверяешь его код и в зависимости от этого выполняешь действия
коды некоторых клавиш:
72 - стрелка вверх
75 - стрелка влево
77 - стрелка вправо
80 - стрелка вниз
27 - клавиша Esc
13 - клавиша Enter

для иллюстрации небольшой примерчик. Прога двигает точку (кружок) по экрану стрелками клавиатуры, Esc - выход, Enter - меняет цвет кружка. Все комментировал, правда на английском, чтобы проблем с кодировкой не возникло (мой английский иногда специфичен, если вдруг что не понятно спрашивай)
Цитата:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;

/* initialize graphics mode */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %sn", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
//====================================================================
//There is my code starting here...
//for example I am moving the point, which is the circle
char ch='!';//variable for catch the key pressed
//variables for the current coordinates:
int m_X=(int)(getmaxx()/2);
int m_Y=(int)(getmaxy()/2);
int i=0;//counter of loop
int m_Color=getcolor();//variable for current color
int m_Step=20;//step of moving (in pixels)
for(;;)//infinite loop
{
for(i=0;i<5;i++)circle(m_X,m_Y,i);
ch=getch();//catch the key pressed
switch(ch)
{
//®Ўа Ў влў Ґ¬ бв५ЄЁ
case 72:/*up array*/
if(m_Y>=m_Step)//check coordinates for range
{//if correct
m_Color=getcolor();//save current color
setcolor(0);//set black color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//clear old point
m_Y-=m_Step;//change coordinate
setcolor(m_Color);//set new color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//draw new point
}
break;
case 75:/*left array*/
if(m_X>=m_Step)//check coordinates for range
{//if correct
m_Color=getcolor();//save current color
setcolor(0);//set black color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//clear old point
m_X-=m_Step;//change coordinate
setcolor(m_Color);//set new color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//draw new point
}
break;
case 77:/*right array*/
if(m_X<=getmaxx())//check coordinates for range
{//if correct
m_Color=getcolor();//save current color
setcolor(0);//set black color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//clear old point
m_X+=m_Step;//change coordinate
setcolor(m_Color);//set new color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//draw new point
}
break;
case 80:/*down array*/
if(m_Y<=getmaxy())//check coordinates for range
{//if correct
m_Color=getcolor();//save current color
setcolor(0);//set black color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//clear old point
m_Y+=m_Step;//change coordinate
setcolor(m_Color);//set new color
for(i=0;i<5;i++)circle(m_X,m_Y,i);//draw new point
}
break;
//catch Enter (if useful)
case 13:/*Enter*/
/*make anything*/
//change color more random
setcolor(random(15)+1);
break;
case 27://catch Esc key
closegraph();
exit(1);//exit to the operatuon system
default:
/*make anything*/
break;
}

}
//end of my code
//====================================================================

/* clean up */
// getch();
// closegraph();
// return 0;
}


 
2009-05-06 22:07:06 гильдия Столичные Шахтеры (Элита)[167881] гильдия Бойцы (Адепт)[548] Орда Орков (Пялельщик - Ржавый набалдажник) PAYNE Информация
Вопрос про консоль что ли
Прикладные програмки со всякими графиками нынче под консоль пишут вообще? Некрофилы
 
2009-05-06 22:10:05 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
PAYNE
MrHide писал(а):
среда разработки какая?

Чижик писал(а):
BC 3.1

естесно под форточки малешко по другому надо, хотя идея таже перехватить мессадж от клавы определить какая клавиша и обработать
 
2009-05-06 22:11:23 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
PAYNE писал(а):
Прикладные програмки со всякими графиками нынче под консоль пишут вообще? Некрофилы

лабораторка, наверное....
я когда детей учу тоже под консоль задания даю...
для того чтобы научиться программировать лучше начинать с консоли
 
2009-05-07 08:47:36 гильдия Столичные Шахтеры (Элита)[167881] гильдия Бойцы (Адепт)[548] Орда Орков (Пялельщик - Ржавый набалдажник) PAYNE Информация
Да это понятно =) Отлаживать тоже в консольке порой более удобно.
 
2009-05-07 16:52:40 гильдия Мудрецы (Элита)[69667] гильдия Бойцы (Элита)[72535] Чижик Информация
можно было и в VS и в Builder, мне так удобнее было :)
спасибо, щас доделаю :))
 
2009-05-07 21:24:28 гильдия Столичные Шахтеры (Элита)[131682] гильдия Алхимики (Элита)[194744] MrHide Информация
Чижик
да не за что, главное, чтобы на пользу пошло =)
 
2009-05-09 00:37:07 гильдия Столичные Шахтеры (Грандмастер)[19769] гильдия Столичные Кузнецы (Мастер)[6453] LaMere Информация
PAYNE писал(а):
Некрофилы

Как точно подмечено))))