221 lines
4.7 KiB
JavaScript
221 lines
4.7 KiB
JavaScript
OS.S.defaultStep = 1 / 120;
|
|
OS.S.pixelScale = 4;
|
|
OS.SetCamera({
|
|
width: 64 * OS.S.pixelScale,
|
|
height: 64 * OS.S.pixelScale,
|
|
hBorder: 24 * OS.S.pixelScale,
|
|
vBorder: 24 * OS.S.pixelScale
|
|
});
|
|
|
|
function start()
|
|
{
|
|
OS.AddScript("loadControls.js");
|
|
OS.AddScript("loadGameManager.js");
|
|
OS.AddScript("loadPrefabs.js");
|
|
OS.AddScript("loadRooms.js");
|
|
}
|
|
|
|
function randomSmidge() {
|
|
// Return a random amount between -10 and 10 on the pixel scale.
|
|
return (Math.round(Math.randomRange(-10, 10)) * OS.S.pixelScale);
|
|
}
|
|
|
|
function drawPixelText(text, x, y, wrapWidth, color, size) {
|
|
// Draw the text at the given x and y on the canvas using the alphabet images.
|
|
// Remember to set the pixel scale for x and y when you call the function!
|
|
// 4x4 font modified from http://pixeljoint.com/forum/forum_posts.asp?TID=18755&PID=185995#185995
|
|
// 5x6 font modified from http://atariage.com/forums/topic/165697-fonts/page-4#entry2081600
|
|
text = text.toString().toUpperCase();
|
|
|
|
var letterSizeX = ((size == 6) ? size - 1 : size) * OS.S.pixelScale;
|
|
var letterSizeY = size * OS.S.pixelScale;
|
|
var maxWrapWidth = Math.floor(OS.camera.width / (letterSizeX + OS.S.pixelScale));
|
|
|
|
wrapWidth = (wrapWidth <= 0 || wrapWidth > maxWrapWidth) ? maxWrapWidth : wrapWidth;
|
|
|
|
var alphabet = new Image();
|
|
alphabet.src = "images/alphabet_" + color + "_" + size.toString() + "px.png";
|
|
|
|
for (var i = 0; i < text.length; i++) {
|
|
var letterCellX, letterCellY;
|
|
switch (text.charAt(i)) {
|
|
case "A":
|
|
letterCellX = 0;
|
|
letterCellY = 0;
|
|
break;
|
|
case "B":
|
|
letterCellX = 1;
|
|
letterCellY = 0;
|
|
break;
|
|
case "C":
|
|
letterCellX = 2;
|
|
letterCellY = 0;
|
|
break;
|
|
case "D":
|
|
letterCellX = 3;
|
|
letterCellY = 0;
|
|
break;
|
|
case "E":
|
|
letterCellX = 4;
|
|
letterCellY = 0;
|
|
break;
|
|
case "F":
|
|
letterCellX = 5;
|
|
letterCellY = 0;
|
|
break;
|
|
case "G":
|
|
letterCellX = 0;
|
|
letterCellY = 1;
|
|
break;
|
|
case "H":
|
|
letterCellX = 1;
|
|
letterCellY = 1;
|
|
break;
|
|
case "I":
|
|
letterCellX = 2;
|
|
letterCellY = 1;
|
|
break;
|
|
case "J":
|
|
letterCellX = 3;
|
|
letterCellY = 1;
|
|
break;
|
|
case "K":
|
|
letterCellX = 4;
|
|
letterCellY = 1;
|
|
break;
|
|
case "L":
|
|
letterCellX = 5;
|
|
letterCellY = 1;
|
|
break;
|
|
case "M":
|
|
letterCellX = 0;
|
|
letterCellY = 2;
|
|
break;
|
|
case "N":
|
|
letterCellX = 1;
|
|
letterCellY = 2;
|
|
break;
|
|
case "O":
|
|
letterCellX = 2;
|
|
letterCellY = 2;
|
|
break;
|
|
case "P":
|
|
letterCellX = 3;
|
|
letterCellY = 2;
|
|
break;
|
|
case "Q":
|
|
letterCellX = 4;
|
|
letterCellY = 2;
|
|
break;
|
|
case "R":
|
|
letterCellX = 5;
|
|
letterCellY = 2;
|
|
break;
|
|
case "S":
|
|
letterCellX = 0;
|
|
letterCellY = 3;
|
|
break;
|
|
case "T":
|
|
letterCellX = 1;
|
|
letterCellY = 3;
|
|
break;
|
|
case "U":
|
|
letterCellX = 2;
|
|
letterCellY = 3;
|
|
break;
|
|
case "V":
|
|
letterCellX = 3;
|
|
letterCellY = 3;
|
|
break;
|
|
case "W":
|
|
letterCellX = 4;
|
|
letterCellY = 3;
|
|
break;
|
|
case "X":
|
|
letterCellX = 5;
|
|
letterCellY = 3;
|
|
break;
|
|
case "Y":
|
|
letterCellX = 0;
|
|
letterCellY = 4;
|
|
break;
|
|
case "Z":
|
|
letterCellX = 1;
|
|
letterCellY = 4;
|
|
break;
|
|
case "1":
|
|
letterCellX = 2;
|
|
letterCellY = 4;
|
|
break;
|
|
case "2":
|
|
letterCellX = 3;
|
|
letterCellY = 4;
|
|
break;
|
|
case "3":
|
|
letterCellX = 4;
|
|
letterCellY = 4;
|
|
break;
|
|
case "4":
|
|
letterCellX = 5;
|
|
letterCellY = 4;
|
|
break;
|
|
case "5":
|
|
letterCellX = 0;
|
|
letterCellY = 5;
|
|
break;
|
|
case "6":
|
|
letterCellX = 1;
|
|
letterCellY = 5;
|
|
break;
|
|
case "7":
|
|
letterCellX = 2;
|
|
letterCellY = 5;
|
|
break;
|
|
case "8":
|
|
letterCellX = 3;
|
|
letterCellY = 5;
|
|
break;
|
|
case "9":
|
|
letterCellX = 4;
|
|
letterCellY = 5;
|
|
break;
|
|
case "0":
|
|
letterCellX = 5;
|
|
letterCellY = 5;
|
|
break;
|
|
case ".":
|
|
letterCellX = 0;
|
|
letterCellY = 6;
|
|
break;
|
|
case ",":
|
|
letterCellX = 1;
|
|
letterCellY = 6;
|
|
break;
|
|
case "-":
|
|
letterCellX = 2;
|
|
letterCellY = 6;
|
|
break;
|
|
case "?":
|
|
letterCellX = 3;
|
|
letterCellY = 6;
|
|
break;
|
|
case "!":
|
|
letterCellX = 4;
|
|
letterCellY = 6;
|
|
break;
|
|
default: // Default to Space
|
|
letterCellX = 5;
|
|
letterCellY = 6;
|
|
break;
|
|
}
|
|
|
|
var lineNumber = Math.floor(i/wrapWidth);
|
|
var horizontal = i - (wrapWidth * lineNumber);
|
|
var letterSheetX = letterSizeX * letterCellX;
|
|
var letterSheetY = letterSizeY * letterCellY;
|
|
var letterX = x + (letterSizeX * horizontal) + (OS.S.pixelScale * horizontal); //Places a space between characters horizontally
|
|
var letterY = y + (letterSizeY * lineNumber) + (OS.S.pixelScale * lineNumber); //Places a space between characters vertically
|
|
OS.context.drawImage(alphabet, letterSheetX, letterSheetY, letterSizeX, letterSizeY, letterX, letterY, letterSizeX, letterSizeY);
|
|
}
|
|
}
|