#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 показывают, что они убвают, даже если кнопки не нажаты Как исправить? Или как по-другому сделать?
Цитата:
Изучаю С++ я всего неделю :))
Ты просто полиглот))) :)
Рановасто такие програмки начал ваять,ну тебе виднее))))
Есть такая кросплатформенная библиотека 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__
#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]