1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-03 12:21:20 +00:00
QB64 Phoenix Edition. QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS. https://qb64phoenix.com
Go to file
Matthew Kilgore fcec53e55b Fix text wrapping on last column with variable width fonts
Currently there is a bug where if a variable width font is in use and
text printed would exactly fit to the end of the row, it is instead
wrapped and printed on the next line.

Ex. You're printing a character that is 10 pixels wide, starting
from position 90 on an image that is 100 pixels wide. This should fix,
but instead your character will be printed on the next line.

The reason this happens is an off by one error, cursor_x (effectively
the X value passed to LOCATE) is one based even when using a variable
width font where cursor_x represents a pixel location. The location that
check if the next character can fit on the screen never handles the base
one, so it ends up treating the ending Y coordinate as one past where it
will actually end, which makes the code thing the print will go past the
edge of the screen.

To fix we simply subtract one before doing the comparison to give us the
actual ending pixel column.
2022-05-06 17:50:07 -04:00
.ci Remove unnecessary build scripts and .github stuff 2022-04-28 17:46:36 -04:00
.github/workflows Run tests as part of CI 2022-04-28 23:00:07 -04:00
internal Fix text wrapping on last column with variable width fonts 2022-05-06 17:50:07 -04:00
licenses Update more links 2022-05-03 23:49:57 -04:00
source Allow numerical VersionInfo values to set corresponding string values 2022-05-06 14:29:37 -04:00
tests Add a few more VERSIONINFO tests 2022-05-06 14:29:37 -04:00
.clang-format Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
.gitignore Rewrite distribution logic, download mingw*.exe 2022-04-28 17:21:56 -04:00
CHANGELOG.md Update Changelog [ci-skip] 2022-03-11 14:27:18 -03:00
COPYING.txt Fix up licensing details 2020-02-25 21:21:12 +11:00
qb64.1 Update more links 2022-05-03 23:49:57 -04:00
README.md Update README.md 2022-04-28 13:41:59 -04:00
SAMPLES.txt Update more links 2022-05-03 23:49:57 -04:00
setup_lnx.sh Add ability to avoid starting QB64 after script is run 2022-04-28 17:21:58 -04:00
setup_osx.command Add ability to avoid starting QB64 after script is run 2022-04-28 17:21:58 -04:00
setup_win.bat Rewrite distribution logic, download mingw*.exe 2022-04-28 17:21:56 -04:00

QB64

githubstrip

QB64 is a modern extended BASIC+OpenGL language that retains QB4.5/QBasic compatibility and compiles native binaries for Windows (XP and up), Linux and macOS. contributions welcome

Table of Contents

  1. Installation

    1. Windows
    2. macOS
    3. Linux
  2. Usage

  3. Additional Info

Installation

Download the appropriate package for your operating system over at https://github.com/QB64-Phoenix-Edition/QB64pe/releases/tag/v1.0alpha

Windows

Make sure to extract the package contents to a folder with full write permissions (failing to do so may result in IDE or compilation errors).

  • It is advisable to to whitelist the QB64 folder in your antivirus/antimalware software *

macOS

Before using QB64 make sure to install the Xcode command line tools with:

xcode-select --install

Run ./setup_osx.command to compile QB64 for your OS version.

Linux

Compile QB64 with ./setup_lnx.sh.

Dependencies should be automatically installed. Required packages include OpenGL, ALSA and the GNU C++ Compiler.

Usage

Run the QB64 executable to launch the IDE, which you can use to edit your .BAS files. From there, hit F5 to compile and run your code.

To generate a binary without running it, hit F11.

Additionally, if you do not wish to use the integrated IDE and to only compile your program, you can use the following command-line calls:

qb64 -c yourfile.bas

qb64 -c yourfile.bas -o outputname.exe

Replacing -c with -x will compile without opening a separate compiler window.

Additional Information

More about QB64 at our wiki: https://qb64phoenix.com/qb64wiki

We have a community forum at: https://qb64phoenix.com/forum

We don't currently tweet. Sorry.

Find us on Discord: https://discord.gg/8YsAZrN3qb