Next test outputs: If after starting i go to upper corner created window, clicking with right mouse button, selecting properties, set characters to lucida console, and set font to lucida and size to 8, then program set font to 8x12 raster character after print, that he set font to 16.
Try changing the properties of your console to use “Courier New” or “Consolas” (non-raster) fonts, and then try it. Font sizing/changing is a very provisional thing at the moment, which I’ll probably need to dig deeper into, in the future.
Next - your _CINP function for reading characters react also for _MOUSEINPUT - try moving with mouse in this program area if program wait until is some key pressed. For mouse moving print 0 to screen for me.
The console is rather strange in this as well, with all input being handled in one routine. It’s basically a case of:
ReadConsoleInput(hIn, &InRec, 1, &NumRead); // get input from console
switch (InRec.EventType {
case KEY_EVENT:
//keyboard input
case MOUSE_EVENT:
//mouse input
case. OTHER.....
One routine reads it all, and we get all that information at once. Unfortunately, QB64 isn’t set up to quite work in that way, so we break the info down into chunks for us: _MOUSEX, _MOUSEY, _MOUSEBUTTON(), _CINP....
Input in one updates the status of all — thus we need to decide WHEN to use that input (and why the new _GETCONSOLEINPUT command is a function).
DO
x = _GETCONSOLEINPUT
IF x = 1 THEN
‘Do your keyboard processing
ELSEIF x = 2 THEN
‘Do your mouse processing
ELSE
‘Ignore buffer events and other stuff
END IF
LOOP
_GETCONSOLEINPUT tells us what input we’re getting, with 1 for keyboard, 2 for mouse, 0 for junk.