Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Управление курсором в консоли

27K
12 апреля 2007 года
[vs]_ghost
2 / / 12.04.2007
Пишу небольшую консольную игрушку. Точнее, только начал писать. Изучаю С++ я всего неделю :))

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

Код:
#include <iostream>
#include <windows.h>
#include <cstdio>
#include <cstdlib>

using namespace std;

HANDLE output;
COORD cursor;
int x;
int y;

int main(int nArg, char* pszArgs[])
{

output = GetStdHandle(STD_OUTPUT_HANDLE);
cursor.X = x;
cursor.Y = y;
SetConsoleCursorPosition(output,cursor);

for (x >= -1; y >= -1;)
{

cout << "@";

Sleep(100);

if (GetKeyState(VK_DOWN)== 1)
{
    y++;

}

if (GetKeyState(VK_UP)== 1)
{
    y--;

}
if (GetKeyState(VK_RIGHT)== 1)
{
    x++;

}
if (GetKeyState(VK_LEFT)== 1)
{
    x--;

}
}

cout << "GAME OVER!";
system("PAUSE");
return 0;
}


Не получается. Вывод переменных x и y показывают, что они убвают, даже если кнопки не нажаты Как исправить? Или как по-другому сделать?
502
13 апреля 2007 года
Jail
550 / / 30.01.2007
[LEFT]
Цитата:
Изучаю С++ я всего неделю :))


Ты просто полиглот))) :)
Рановасто такие програмки начал ваять,ну тебе виднее))))
Есть такая кросплатформенная библиотека wxWidgets к примеру(есть и другие). Загляни туда, там есть класс для работы с курсором в cursor.h определён. Класс такого вида:

Код:
#ifndef __GTKCURSORH__
#define __GTKCURSORH__
#include "wx/defs.h"
#include "wx/object.h"
#include "wx/gdicmn.h"
#if wxUSE_IMAGE
#include "wx/image.h"
#endif
//-----------------------------------------------------------------------------
// wxCursor
//-----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxCursor: public wxObject
{
public:
    wxCursor();
    wxCursor( int cursorId );
#if wxUSE_IMAGE
    wxCursor( const wxImage & image );
#endif
    wxCursor( const char bits[], int width, int  height,
              int hotSpotX=-1, int hotSpotY=-1,
              const char maskBits[] = NULL, const wxColour *fg = NULL, const wxColour *bg = NULL );
    ~wxCursor();
    bool operator == ( const wxCursor& cursor ) const;
    bool operator != ( const wxCursor& cursor ) const;
    bool Ok() const;
    // implementation
    GdkCursor *GetCursor() const;
private:
    DECLARE_DYNAMIC_CLASS(wxCursor)
};
#endif // __GTKCURSORH__

http://www.wxwidgets.org/
[/LEFT]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог