mirror of
https://github.com/boxgaming/qbjs.git
synced 2024-09-20 04:24:45 +00:00
Merge branch 'main' of https://github.com/boxgaming/qbjs into main
This commit is contained in:
commit
aa30c940eb
3 changed files with 50 additions and 11 deletions
53
qb.js
53
qb.js
|
@ -233,9 +233,17 @@ var QB = new function() {
|
||||||
|
|
||||||
this.func__Height = function(imageId) {
|
this.func__Height = function(imageId) {
|
||||||
if (imageId == undefined) { imageId = _activeImage; }
|
if (imageId == undefined) { imageId = _activeImage; }
|
||||||
return _images[imageId].canvas.height;
|
if (_images[imageId].charSizeMode) {
|
||||||
|
return _height(imageId) / this.func__FontWidth();
|
||||||
|
}
|
||||||
|
return _height(imageId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function _height(imageId) {
|
||||||
|
if (imageId == undefined) { imageId = _activeImage; }
|
||||||
|
return _images[imageId].canvas.height;
|
||||||
|
}
|
||||||
|
|
||||||
this.func__InStrRev = function(arg1, arg2, arg3) {
|
this.func__InStrRev = function(arg1, arg2, arg3) {
|
||||||
var startIndex = +Infinity;
|
var startIndex = +Infinity;
|
||||||
var strSource = "";
|
var strSource = "";
|
||||||
|
@ -307,14 +315,20 @@ var QB = new function() {
|
||||||
return GX.mouseButton(button);
|
return GX.mouseButton(button);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.func__NewImage = function(iwidth, iheight) {
|
this.func__NewImage = function(iwidth, iheight, mode) {
|
||||||
var canvas = document.createElement("canvas");
|
var canvas = document.createElement("canvas");
|
||||||
canvas.id = "qb-canvas-" + _nextImageId;
|
canvas.id = "qb-canvas-" + _nextImageId;
|
||||||
|
if (mode == 0) {
|
||||||
|
canvas.width = this.func__FontWidth() * iwidth;
|
||||||
|
canvas.height = this.func__FontHeight() * iheight;
|
||||||
|
}
|
||||||
|
else {
|
||||||
canvas.width = iwidth;
|
canvas.width = iwidth;
|
||||||
canvas.height = iheight;
|
canvas.height = iheight;
|
||||||
|
}
|
||||||
ctx = canvas.getContext("2d");
|
ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
_images[_nextImageId] = { canvas: canvas, ctx: ctx, lastX: 0, lastY: 0 };
|
_images[_nextImageId] = { canvas: canvas, ctx: ctx, lastX: 0, lastY: 0, charSizeMode: (mode == 0)};
|
||||||
var tmpId = _nextImageId;
|
var tmpId = _nextImageId;
|
||||||
_nextImageId++;
|
_nextImageId++;
|
||||||
return tmpId;
|
return tmpId;
|
||||||
|
@ -544,9 +558,17 @@ var QB = new function() {
|
||||||
|
|
||||||
this.func__Width = function(imageId) {
|
this.func__Width = function(imageId) {
|
||||||
if (imageId == undefined) { imageId = _activeImage; }
|
if (imageId == undefined) { imageId = _activeImage; }
|
||||||
return _images[imageId].canvas.width;
|
if (_images[imageId].charSizeMode) {
|
||||||
|
return _width(imageId) / this.func__FontWidth();
|
||||||
|
}
|
||||||
|
return _width(imageId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function _width (imageId) {
|
||||||
|
if (imageId == undefined) { imageId = _activeImage; }
|
||||||
|
return _images[imageId].canvas.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// QB45 Keywords
|
// QB45 Keywords
|
||||||
// --------------------------------------------
|
// --------------------------------------------
|
||||||
|
@ -593,9 +615,9 @@ var QB = new function() {
|
||||||
|
|
||||||
ctx = _images[_activeImage].ctx;
|
ctx = _images[_activeImage].ctx;
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.clearRect(0, 0, QB.func__Width(), QB.func__Height());
|
ctx.clearRect(0, 0, _width(), _height());
|
||||||
ctx.fillStyle = color.rgba();
|
ctx.fillStyle = color.rgba();
|
||||||
ctx.fillRect(0, 0, QB.func__Width(), QB.func__Height());
|
ctx.fillRect(0, 0, _width(), _height());
|
||||||
|
|
||||||
// reset the text position
|
// reset the text position
|
||||||
_locX = 0;
|
_locX = 0;
|
||||||
|
@ -637,6 +659,10 @@ var QB = new function() {
|
||||||
return Math.cos(value);
|
return Math.cos(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func_Csrlin = function() {
|
||||||
|
return _locY + 1;
|
||||||
|
}
|
||||||
|
|
||||||
this.func_Cvi = function(numString) {
|
this.func_Cvi = function(numString) {
|
||||||
var result = 0;
|
var result = 0;
|
||||||
numString = numString.split("").reverse().join("");
|
numString = numString.split("").reverse().join("");
|
||||||
|
@ -921,11 +947,11 @@ var QB = new function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
function _textColumns() {
|
function _textColumns() {
|
||||||
return Math.floor(QB.func__Width() / QB.func__FontWidth());
|
return Math.floor(_width() / QB.func__FontWidth());
|
||||||
}
|
}
|
||||||
|
|
||||||
function _textRows() {
|
function _textRows() {
|
||||||
return Math.floor(QB.func__Height() / QB.func__FontHeight());
|
return Math.floor(_height() / QB.func__FontHeight());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.func_Hex = function(n) {
|
this.func_Hex = function(n) {
|
||||||
|
@ -1273,6 +1299,10 @@ var QB = new function() {
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.func_Pos = function() {
|
||||||
|
return _locX + 1;
|
||||||
|
};
|
||||||
|
|
||||||
this.sub_PReset = function(sstep, x, y, color) {
|
this.sub_PReset = function(sstep, x, y, color) {
|
||||||
var screen = _images[_activeImage];
|
var screen = _images[_activeImage];
|
||||||
if (color == undefined) {
|
if (color == undefined) {
|
||||||
|
@ -1367,7 +1397,7 @@ var QB = new function() {
|
||||||
var ctx = _images[_activeImage].ctx;
|
var ctx = _images[_activeImage].ctx;
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.fillStyle = _bgColor.rgba();
|
ctx.fillStyle = _bgColor.rgba();
|
||||||
ctx.fillRect(0, 0, QB.func__Width(), QB.func__Height());
|
ctx.fillRect(0, 0, _width(), _height());
|
||||||
ctx.drawImage(img, 0, -QB.func__FontHeight());
|
ctx.drawImage(img, 0, -QB.func__FontHeight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1413,6 +1443,7 @@ var QB = new function() {
|
||||||
|
|
||||||
this.sub_Screen = async function(mode) {
|
this.sub_Screen = async function(mode) {
|
||||||
_activeImage = 0;
|
_activeImage = 0;
|
||||||
|
charSizeMode = false;
|
||||||
|
|
||||||
if (mode == 0) {
|
if (mode == 0) {
|
||||||
GX.sceneCreate(640, 400);
|
GX.sceneCreate(640, 400);
|
||||||
|
@ -1429,11 +1460,15 @@ var QB = new function() {
|
||||||
else if (mode == 11 || mode == 12) {
|
else if (mode == 11 || mode == 12) {
|
||||||
GX.sceneCreate(640, 480);
|
GX.sceneCreate(640, 480);
|
||||||
}
|
}
|
||||||
|
else if (mode == 13) {
|
||||||
|
GX.sceneCreate(320, 200);
|
||||||
|
}
|
||||||
else if (mode >= 1000) {
|
else if (mode >= 1000) {
|
||||||
var img = _images[mode];
|
var img = _images[mode];
|
||||||
if (img && img.canvas) {
|
if (img && img.canvas) {
|
||||||
GX.sceneCreate(img.canvas.width, img.canvas.height);
|
GX.sceneCreate(img.canvas.width, img.canvas.height);
|
||||||
this.sub__PutImage(undefined, undefined, undefined, undefined, undefined, undefined, mode);
|
this.sub__PutImage(undefined, undefined, undefined, undefined, undefined, undefined, mode);
|
||||||
|
charSizeMode = img.charSizeMode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_images[0] = { canvas: GX.canvas(), ctx: GX.ctx(), lastX: 0, lastY: 0 };
|
_images[0] = { canvas: GX.canvas(), ctx: GX.ctx(), lastX: 0, lastY: 0 };
|
||||||
|
|
2
qb2js.js
2
qb2js.js
|
@ -2593,6 +2593,7 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "SUB", "Color", False);
|
await sub_AddQBMethod( "SUB", "Color", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Command$", False);
|
await sub_AddQBMethod( "FUNCTION", "Command$", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Cos", False);
|
await sub_AddQBMethod( "FUNCTION", "Cos", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Csrlin", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Cvi", False);
|
await sub_AddQBMethod( "FUNCTION", "Cvi", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Cvl", False);
|
await sub_AddQBMethod( "FUNCTION", "Cvl", False);
|
||||||
await sub_AddQBMethod( "SUB", "Draw", False);
|
await sub_AddQBMethod( "SUB", "Draw", False);
|
||||||
|
@ -2617,6 +2618,7 @@ if (QB.halted()) { return; }
|
||||||
await sub_AddQBMethod( "FUNCTION", "Oct$", False);
|
await sub_AddQBMethod( "FUNCTION", "Oct$", False);
|
||||||
await sub_AddQBMethod( "SUB", "Paint", False);
|
await sub_AddQBMethod( "SUB", "Paint", False);
|
||||||
await sub_AddQBMethod( "FUNCTION", "Point", False);
|
await sub_AddQBMethod( "FUNCTION", "Point", False);
|
||||||
|
await sub_AddQBMethod( "FUNCTION", "Pos", False);
|
||||||
await sub_AddQBMethod( "SUB", "PReset", False);
|
await sub_AddQBMethod( "SUB", "PReset", False);
|
||||||
await sub_AddQBMethod( "SUB", "Print", True);
|
await sub_AddQBMethod( "SUB", "Print", True);
|
||||||
await sub_AddQBMethod( "SUB", "PSet", False);
|
await sub_AddQBMethod( "SUB", "PSet", False);
|
||||||
|
|
|
@ -2750,6 +2750,7 @@ Sub InitQBMethods
|
||||||
AddQBMethod "SUB", "Color", False
|
AddQBMethod "SUB", "Color", False
|
||||||
AddQBMethod "FUNCTION", "Command$", False
|
AddQBMethod "FUNCTION", "Command$", False
|
||||||
AddQBMethod "FUNCTION", "Cos", False
|
AddQBMethod "FUNCTION", "Cos", False
|
||||||
|
AddQBMethod "FUNCTION", "Csrlin", False
|
||||||
AddQBMethod "FUNCTION", "Cvi", False
|
AddQBMethod "FUNCTION", "Cvi", False
|
||||||
AddQBMethod "FUNCTION", "Cvl", False
|
AddQBMethod "FUNCTION", "Cvl", False
|
||||||
AddQBMethod "SUB", "Draw", False
|
AddQBMethod "SUB", "Draw", False
|
||||||
|
@ -2774,6 +2775,7 @@ Sub InitQBMethods
|
||||||
AddQBMethod "FUNCTION", "Oct$", False
|
AddQBMethod "FUNCTION", "Oct$", False
|
||||||
AddQBMethod "SUB", "Paint", False
|
AddQBMethod "SUB", "Paint", False
|
||||||
AddQBMethod "FUNCTION", "Point", False
|
AddQBMethod "FUNCTION", "Point", False
|
||||||
|
AddQBMethod "FUNCTION", "Pos", False
|
||||||
AddQBMethod "SUB", "PReset", False
|
AddQBMethod "SUB", "PReset", False
|
||||||
AddQBMethod "SUB", "Print", True
|
AddQBMethod "SUB", "Print", True
|
||||||
AddQBMethod "SUB", "PSet", False
|
AddQBMethod "SUB", "PSet", False
|
||||||
|
|
Loading…
Reference in a new issue