pxt-arcade 1.13.48 → 1.13.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/built/common-sim.d.ts +6 -0
- package/built/common-sim.js +62 -29
- package/built/sim.js +62 -29
- package/built/target-strings.json +1 -1
- package/built/target.js +1 -1
- package/built/target.json +1 -1
- package/built/targetlight.json +1 -1
- package/package.json +3 -3
- package/targetconfig.json +67 -48
package/built/common-sim.d.ts
CHANGED
|
@@ -1103,6 +1103,8 @@ declare namespace pxsim {
|
|
|
1103
1103
|
}
|
|
1104
1104
|
}
|
|
1105
1105
|
declare namespace pxsim.ImageMethods {
|
|
1106
|
+
function XX(x: number): number;
|
|
1107
|
+
function YY(x: number): number;
|
|
1106
1108
|
function width(img: RefImage): number;
|
|
1107
1109
|
function height(img: RefImage): number;
|
|
1108
1110
|
function isMono(img: RefImage): boolean;
|
|
@@ -1222,6 +1224,10 @@ declare namespace pxsim.settings {
|
|
|
1222
1224
|
function _userClean(): void;
|
|
1223
1225
|
function _list(prefix: string): RefCollection;
|
|
1224
1226
|
}
|
|
1227
|
+
declare namespace pxsim.ShaderMethods {
|
|
1228
|
+
function _mergeImage(dst: RefImage, src: RefImage, xy: number): void;
|
|
1229
|
+
function _mapImage(dst: RefImage, src: RefImage, xy: number, buf: RefBuffer): void;
|
|
1230
|
+
}
|
|
1225
1231
|
declare namespace pxsim {
|
|
1226
1232
|
class StorageState {
|
|
1227
1233
|
files: pxsim.Map<number[]>;
|
package/built/common-sim.js
CHANGED
|
@@ -3179,6 +3179,7 @@ var pxsim;
|
|
|
3179
3179
|
input.setLoudSoundThreshold = setLoudSoundThreshold;
|
|
3180
3180
|
})(input = pxsim.input || (pxsim.input = {}));
|
|
3181
3181
|
})(pxsim || (pxsim = {}));
|
|
3182
|
+
/// <reference path="../../core/sim/analogSensor.ts" />
|
|
3182
3183
|
var pxsim;
|
|
3183
3184
|
(function (pxsim) {
|
|
3184
3185
|
class MicrophoneState extends pxsim.AnalogSensorState {
|
|
@@ -3792,7 +3793,9 @@ var pxsim;
|
|
|
3792
3793
|
var ImageMethods;
|
|
3793
3794
|
(function (ImageMethods) {
|
|
3794
3795
|
function XX(x) { return (x << 16) >> 16; }
|
|
3796
|
+
ImageMethods.XX = XX;
|
|
3795
3797
|
function YY(x) { return x >> 16; }
|
|
3798
|
+
ImageMethods.YY = YY;
|
|
3796
3799
|
function width(img) { return img._width; }
|
|
3797
3800
|
ImageMethods.width = width;
|
|
3798
3801
|
function height(img) { return img._height; }
|
|
@@ -4236,57 +4239,58 @@ var pxsim;
|
|
|
4236
4239
|
}
|
|
4237
4240
|
ImageMethods.drawLine = drawLine;
|
|
4238
4241
|
function drawIcon(img, icon, x, y, color) {
|
|
4239
|
-
const
|
|
4242
|
+
const src = icon.data;
|
|
4240
4243
|
if (!pxsim.image.isValidImage(icon))
|
|
4241
4244
|
return;
|
|
4242
|
-
if (
|
|
4245
|
+
if (src[1] != 1)
|
|
4243
4246
|
return; // only mono
|
|
4244
|
-
let
|
|
4245
|
-
let
|
|
4246
|
-
let byteH = pxsim.image.byteHeight(
|
|
4247
|
+
let width = pxsim.image.bufW(src);
|
|
4248
|
+
let height = pxsim.image.bufH(src);
|
|
4249
|
+
let byteH = pxsim.image.byteHeight(height, 1);
|
|
4247
4250
|
x |= 0;
|
|
4248
4251
|
y |= 0;
|
|
4249
|
-
const
|
|
4250
|
-
const
|
|
4251
|
-
if (x +
|
|
4252
|
+
const destHeight = img._height;
|
|
4253
|
+
const destWidth = img._width;
|
|
4254
|
+
if (x + width <= 0)
|
|
4252
4255
|
return;
|
|
4253
|
-
if (x >=
|
|
4256
|
+
if (x >= destWidth)
|
|
4254
4257
|
return;
|
|
4255
|
-
if (y +
|
|
4258
|
+
if (y + height <= 0)
|
|
4256
4259
|
return;
|
|
4257
|
-
if (y >=
|
|
4260
|
+
if (y >= destHeight)
|
|
4258
4261
|
return;
|
|
4259
4262
|
img.makeWritable();
|
|
4260
|
-
let
|
|
4263
|
+
let srcPointer = 8;
|
|
4261
4264
|
color = img.color(color);
|
|
4262
4265
|
const screen = img.data;
|
|
4263
|
-
for (let i = 0; i <
|
|
4264
|
-
let
|
|
4265
|
-
if (0 <=
|
|
4266
|
-
let
|
|
4267
|
-
let
|
|
4268
|
-
let
|
|
4269
|
-
let
|
|
4266
|
+
for (let i = 0; i < width; ++i) {
|
|
4267
|
+
let destX = x + i;
|
|
4268
|
+
if (0 <= destX && destX < destWidth) {
|
|
4269
|
+
let destIndex = destX + y * destWidth;
|
|
4270
|
+
let srcIndex = srcPointer;
|
|
4271
|
+
let destY = y;
|
|
4272
|
+
let destEnd = Math.min(destHeight, height + y);
|
|
4270
4273
|
if (y < 0) {
|
|
4271
|
-
|
|
4272
|
-
|
|
4274
|
+
srcIndex += ((-y) >> 3);
|
|
4275
|
+
destY += ((-y) >> 3) * 8;
|
|
4276
|
+
destIndex += (destY - y) * destWidth;
|
|
4273
4277
|
}
|
|
4274
4278
|
let mask = 0x01;
|
|
4275
|
-
let
|
|
4276
|
-
while (
|
|
4277
|
-
if (
|
|
4278
|
-
screen[
|
|
4279
|
+
let srcByte = src[srcIndex++];
|
|
4280
|
+
while (destY < destEnd) {
|
|
4281
|
+
if (destY >= 0 && (srcByte & mask)) {
|
|
4282
|
+
screen[destIndex] = color;
|
|
4279
4283
|
}
|
|
4280
4284
|
mask <<= 1;
|
|
4281
4285
|
if (mask == 0x100) {
|
|
4282
4286
|
mask = 0x01;
|
|
4283
|
-
|
|
4287
|
+
srcByte = src[srcIndex++];
|
|
4284
4288
|
}
|
|
4285
|
-
|
|
4286
|
-
|
|
4289
|
+
destIndex += destWidth;
|
|
4290
|
+
destY++;
|
|
4287
4291
|
}
|
|
4288
4292
|
}
|
|
4289
|
-
|
|
4293
|
+
srcPointer += byteH;
|
|
4290
4294
|
}
|
|
4291
4295
|
}
|
|
4292
4296
|
ImageMethods.drawIcon = drawIcon;
|
|
@@ -5129,6 +5133,35 @@ var pxsim;
|
|
|
5129
5133
|
settings._list = _list;
|
|
5130
5134
|
})(settings = pxsim.settings || (pxsim.settings = {}));
|
|
5131
5135
|
})(pxsim || (pxsim = {}));
|
|
5136
|
+
/// <reference path="../../screen/sim/image.ts" />
|
|
5137
|
+
var pxsim;
|
|
5138
|
+
(function (pxsim) {
|
|
5139
|
+
var ShaderMethods;
|
|
5140
|
+
(function (ShaderMethods) {
|
|
5141
|
+
function _mergeImage(dst, src, xy) {
|
|
5142
|
+
mergeImage(dst, src, pxsim.ImageMethods.XX(xy), pxsim.ImageMethods.YY(xy));
|
|
5143
|
+
}
|
|
5144
|
+
ShaderMethods._mergeImage = _mergeImage;
|
|
5145
|
+
function mergeImage(dst, src, x0, y0) {
|
|
5146
|
+
for (let x = 0; x < src._width; x++) {
|
|
5147
|
+
for (let y = 0; y < src._height; y++) {
|
|
5148
|
+
pxsim.ImageMethods.setPixel(dst, x0 + x, y0 + y, Math.min(pxsim.ImageMethods.getPixel(dst, x0 + x, y0 + y), pxsim.ImageMethods.getPixel(src, x, y)));
|
|
5149
|
+
}
|
|
5150
|
+
}
|
|
5151
|
+
}
|
|
5152
|
+
function _mapImage(dst, src, xy, buf) {
|
|
5153
|
+
mapImage(dst, src, pxsim.ImageMethods.XX(xy), pxsim.ImageMethods.YY(xy), buf);
|
|
5154
|
+
}
|
|
5155
|
+
ShaderMethods._mapImage = _mapImage;
|
|
5156
|
+
function mapImage(dst, src, x0, y0, buf) {
|
|
5157
|
+
for (let x = 0; x < src._width; x++) {
|
|
5158
|
+
for (let y = 0; y < src._height; y++) {
|
|
5159
|
+
pxsim.ImageMethods.setPixel(dst, x0 + x, y0 + y, buf.data[pxsim.ImageMethods.getPixel(dst, x0 + x, y0 + y) + (pxsim.ImageMethods.getPixel(src, x, y) << 4)]);
|
|
5160
|
+
}
|
|
5161
|
+
}
|
|
5162
|
+
}
|
|
5163
|
+
})(ShaderMethods = pxsim.ShaderMethods || (pxsim.ShaderMethods = {}));
|
|
5164
|
+
})(pxsim || (pxsim = {}));
|
|
5132
5165
|
var pxsim;
|
|
5133
5166
|
(function (pxsim) {
|
|
5134
5167
|
class StorageState {
|
package/built/sim.js
CHANGED
|
@@ -1657,7 +1657,9 @@ var pxsim;
|
|
|
1657
1657
|
var ImageMethods;
|
|
1658
1658
|
(function (ImageMethods) {
|
|
1659
1659
|
function XX(x) { return (x << 16) >> 16; }
|
|
1660
|
+
ImageMethods.XX = XX;
|
|
1660
1661
|
function YY(x) { return x >> 16; }
|
|
1662
|
+
ImageMethods.YY = YY;
|
|
1661
1663
|
function width(img) { return img._width; }
|
|
1662
1664
|
ImageMethods.width = width;
|
|
1663
1665
|
function height(img) { return img._height; }
|
|
@@ -2101,57 +2103,58 @@ var pxsim;
|
|
|
2101
2103
|
}
|
|
2102
2104
|
ImageMethods.drawLine = drawLine;
|
|
2103
2105
|
function drawIcon(img, icon, x, y, color) {
|
|
2104
|
-
const
|
|
2106
|
+
const src = icon.data;
|
|
2105
2107
|
if (!pxsim.image.isValidImage(icon))
|
|
2106
2108
|
return;
|
|
2107
|
-
if (
|
|
2109
|
+
if (src[1] != 1)
|
|
2108
2110
|
return; // only mono
|
|
2109
|
-
let
|
|
2110
|
-
let
|
|
2111
|
-
let byteH = pxsim.image.byteHeight(
|
|
2111
|
+
let width = pxsim.image.bufW(src);
|
|
2112
|
+
let height = pxsim.image.bufH(src);
|
|
2113
|
+
let byteH = pxsim.image.byteHeight(height, 1);
|
|
2112
2114
|
x |= 0;
|
|
2113
2115
|
y |= 0;
|
|
2114
|
-
const
|
|
2115
|
-
const
|
|
2116
|
-
if (x +
|
|
2116
|
+
const destHeight = img._height;
|
|
2117
|
+
const destWidth = img._width;
|
|
2118
|
+
if (x + width <= 0)
|
|
2117
2119
|
return;
|
|
2118
|
-
if (x >=
|
|
2120
|
+
if (x >= destWidth)
|
|
2119
2121
|
return;
|
|
2120
|
-
if (y +
|
|
2122
|
+
if (y + height <= 0)
|
|
2121
2123
|
return;
|
|
2122
|
-
if (y >=
|
|
2124
|
+
if (y >= destHeight)
|
|
2123
2125
|
return;
|
|
2124
2126
|
img.makeWritable();
|
|
2125
|
-
let
|
|
2127
|
+
let srcPointer = 8;
|
|
2126
2128
|
color = img.color(color);
|
|
2127
2129
|
const screen = img.data;
|
|
2128
|
-
for (let i = 0; i <
|
|
2129
|
-
let
|
|
2130
|
-
if (0 <=
|
|
2131
|
-
let
|
|
2132
|
-
let
|
|
2133
|
-
let
|
|
2134
|
-
let
|
|
2130
|
+
for (let i = 0; i < width; ++i) {
|
|
2131
|
+
let destX = x + i;
|
|
2132
|
+
if (0 <= destX && destX < destWidth) {
|
|
2133
|
+
let destIndex = destX + y * destWidth;
|
|
2134
|
+
let srcIndex = srcPointer;
|
|
2135
|
+
let destY = y;
|
|
2136
|
+
let destEnd = Math.min(destHeight, height + y);
|
|
2135
2137
|
if (y < 0) {
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
+
srcIndex += ((-y) >> 3);
|
|
2139
|
+
destY += ((-y) >> 3) * 8;
|
|
2140
|
+
destIndex += (destY - y) * destWidth;
|
|
2138
2141
|
}
|
|
2139
2142
|
let mask = 0x01;
|
|
2140
|
-
let
|
|
2141
|
-
while (
|
|
2142
|
-
if (
|
|
2143
|
-
screen[
|
|
2143
|
+
let srcByte = src[srcIndex++];
|
|
2144
|
+
while (destY < destEnd) {
|
|
2145
|
+
if (destY >= 0 && (srcByte & mask)) {
|
|
2146
|
+
screen[destIndex] = color;
|
|
2144
2147
|
}
|
|
2145
2148
|
mask <<= 1;
|
|
2146
2149
|
if (mask == 0x100) {
|
|
2147
2150
|
mask = 0x01;
|
|
2148
|
-
|
|
2151
|
+
srcByte = src[srcIndex++];
|
|
2149
2152
|
}
|
|
2150
|
-
|
|
2151
|
-
|
|
2153
|
+
destIndex += destWidth;
|
|
2154
|
+
destY++;
|
|
2152
2155
|
}
|
|
2153
2156
|
}
|
|
2154
|
-
|
|
2157
|
+
srcPointer += byteH;
|
|
2155
2158
|
}
|
|
2156
2159
|
}
|
|
2157
2160
|
ImageMethods.drawIcon = drawIcon;
|
|
@@ -5443,6 +5446,7 @@ var pxsim;
|
|
|
5443
5446
|
input.setLoudSoundThreshold = setLoudSoundThreshold;
|
|
5444
5447
|
})(input = pxsim.input || (pxsim.input = {}));
|
|
5445
5448
|
})(pxsim || (pxsim = {}));
|
|
5449
|
+
/// <reference path="../../core/sim/analogSensor.ts" />
|
|
5446
5450
|
var pxsim;
|
|
5447
5451
|
(function (pxsim) {
|
|
5448
5452
|
class MicrophoneState extends pxsim.AnalogSensorState {
|
|
@@ -5471,6 +5475,35 @@ var pxsim;
|
|
|
5471
5475
|
}
|
|
5472
5476
|
pxsim.microphoneState = microphoneState;
|
|
5473
5477
|
})(pxsim || (pxsim = {}));
|
|
5478
|
+
/// <reference path="../../screen/sim/image.ts" />
|
|
5479
|
+
var pxsim;
|
|
5480
|
+
(function (pxsim) {
|
|
5481
|
+
var ShaderMethods;
|
|
5482
|
+
(function (ShaderMethods) {
|
|
5483
|
+
function _mergeImage(dst, src, xy) {
|
|
5484
|
+
mergeImage(dst, src, pxsim.ImageMethods.XX(xy), pxsim.ImageMethods.YY(xy));
|
|
5485
|
+
}
|
|
5486
|
+
ShaderMethods._mergeImage = _mergeImage;
|
|
5487
|
+
function mergeImage(dst, src, x0, y0) {
|
|
5488
|
+
for (let x = 0; x < src._width; x++) {
|
|
5489
|
+
for (let y = 0; y < src._height; y++) {
|
|
5490
|
+
pxsim.ImageMethods.setPixel(dst, x0 + x, y0 + y, Math.min(pxsim.ImageMethods.getPixel(dst, x0 + x, y0 + y), pxsim.ImageMethods.getPixel(src, x, y)));
|
|
5491
|
+
}
|
|
5492
|
+
}
|
|
5493
|
+
}
|
|
5494
|
+
function _mapImage(dst, src, xy, buf) {
|
|
5495
|
+
mapImage(dst, src, pxsim.ImageMethods.XX(xy), pxsim.ImageMethods.YY(xy), buf);
|
|
5496
|
+
}
|
|
5497
|
+
ShaderMethods._mapImage = _mapImage;
|
|
5498
|
+
function mapImage(dst, src, x0, y0, buf) {
|
|
5499
|
+
for (let x = 0; x < src._width; x++) {
|
|
5500
|
+
for (let y = 0; y < src._height; y++) {
|
|
5501
|
+
pxsim.ImageMethods.setPixel(dst, x0 + x, y0 + y, buf.data[pxsim.ImageMethods.getPixel(dst, x0 + x, y0 + y) + (pxsim.ImageMethods.getPixel(src, x, y) << 4)]);
|
|
5502
|
+
}
|
|
5503
|
+
}
|
|
5504
|
+
}
|
|
5505
|
+
})(ShaderMethods = pxsim.ShaderMethods || (pxsim.ShaderMethods = {}));
|
|
5506
|
+
})(pxsim || (pxsim = {}));
|
|
5474
5507
|
const KEY_UP = 2048;
|
|
5475
5508
|
const KEY_DOWN = 2049;
|
|
5476
5509
|
const INTERNAL_KEY_UP = 2050;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"(Diagnostics) Garbage Collection checks.":"(Diagnostics) Garbage Collection checks.","20 pin Edge Connector":"20 pin Edge Connector","A Corgi platformer":"A Corgi platformer","A micro-servo library":"A micro-servo library","A sprite with path projection":"A sprite with path projection","A thermometer driver":"A thermometer driver","Adafruit Feather pinout":"Adafruit Feather pinout","Additional blocks for building multiplayer games":"Additional blocks for building multiplayer games","Additional scaling blocks for sprites":"Additional scaling blocks for sprites","Adds new blocks for message communication in the radio category":"Adds new blocks for message communication in the radio category","Advanced Livestream":"Advanced Livestream","Advanced state based animations for sprites":"Advanced state based animations for sprites","Arcade Compatible Devices":"Arcade Compatible Devices","Arts and Crafts":"Arts and Crafts","Azure IoT - beta":"Azure IoT - beta","Beginner Skillmaps":"Beginner Skillmaps","Blocks Games":"Blocks Games","Blocks for the color-coded tilemap":"Blocks for the color-coded tilemap","Button A and B drivers":"Button A and B drivers","Color manipulation":"Color manipulation","Community Games":"Community Games","Contains overriden or additional files for the default project template":"Contains overriden or additional files for the default project template","Courses":"Courses","DIY Hardware":"DIY Hardware","Develop your programming skills by quickly creating and modding retro arcade games with Blocks and JavaScript in the MakeCode editor":"Develop your programming skills by quickly creating and modding retro arcade games with Blocks and JavaScript in the MakeCode editor","Docs":"Docs","Driver for rotary encoder":"Driver for rotary encoder","ESP32 over SPI - beta":"ESP32 over SPI - beta","Empty game library - beta":"Empty game library - beta","Extra game controller functionalities":"Extra game controller functionalities","Forum":"Forum","Game Design Concepts":"Game Design Concepts","Game Jam":"Game Jam","Graphics and Math":"Graphics and Math","Hardware":"Hardware","Hardware definition - web-browser only":"Hardware definition - web-browser only","How to Make a Game Videos":"How to Make a Game Videos","JavaScript Games":"JavaScript Games","John Park's Workshop":"John Park's Workshop","Keyboard emulation over HID":"Keyboard emulation over HID","Lessons":"Lessons","Live Coding":"Live Coding","MQTT for MakeCode - beta":"MQTT for MakeCode - beta","Microsoft MakeCode Arcade":"Microsoft MakeCode Arcade","Mouse emulation over HID":"Mouse emulation over HID","Multiplayer Games":"Multiplayer Games","Multiplayer Games!":"Multiplayer Games!","Multiplayer Tutorials":"Multiplayer Tutorials","NRF52833 board":"NRF52833 board","NRF52840 board":"NRF52840 board","Networking abstractions":"Networking abstractions","Next Level Skillmaps":"Next Level Skillmaps","Onboard light level sensor":"Onboard light level sensor","Palette manipulations":"Palette manipulations","Power and sleep management":"Power and sleep management","RP2040 board":"RP2040 board","Raspberry Pi":"Raspberry Pi","SAMD51 board":"SAMD51 board","STM32F4 board":"STM32F4 board","Scene manager":"Scene manager","Settings storage in files":"Settings storage in files","Settings storage in internal flash":"Settings storage in internal flash","Seven segment digit display":"Seven segment digit display","The accelerometer library":"The accelerometer library","The base library":"The base library","The core library for Codal-based targets":"The core library for Codal-based targets","The fantasy game console library":"The fantasy game console library","The game and sprite library - beta":"The game and sprite library - beta","The microphone library":"The microphone library","The music library with a mixer":"The music library with a mixer","The programmable LED (WS2812b,APA102) driver.":"The programmable LED (WS2812b,APA102) driver.","The radio services":"The radio services","The screen library":"The screen library","Try Now":"Try Now","Tutorials":"Tutorials","UART communication":"UART communication","VM":"VM","WiFi support in Arcade - beta":"WiFi support in Arcade - beta","arcade":"arcade","{id:extension-tag}Controller":"Controller","{id:extension-tag}Hardware":"Hardware","{id:extension-tag}Sprite Pack":"Sprite Pack","{id:extension-tag}Sprites":"Sprites","{id:extension-tag}Utility":"Utility","{id:extension-tag}Visual Effects":"Visual Effects","{id:game-description}A test of reflexes! Avoid the blue stingers while sending fireballs at the boss!":"A test of reflexes! Avoid the blue stingers while sending fireballs at the boss!","{id:game-description}Adventure through levels collecting jewels and avoiding obstacles!":"Adventure through levels collecting jewels and avoiding obstacles!","{id:game-description}Build a tower of goats!":"Build a tower of goats!","{id:game-description}Controlling a starship, both players will destroy the Galga forces, while avoiding enemies. Each player has 3 lives, game ends once a player runs out of lives.":"Controlling a starship, both players will destroy the Galga forces, while avoiding enemies. Each player has 3 lives, game ends once a player runs out of lives.","{id:game-description}Eat the leaves to grow, but watch out for walls!":"Eat the leaves to grow, but watch out for walls!","{id:game-description}Explore multiple levels of caves deep within the earth, but watch out for those cave caterpillars!":"Explore multiple levels of caves deep within the earth, but watch out for those cave caterpillars!","{id:game-description}Fly through the dangerous rooftops and ledges of New York City delivering messages!":"Fly through the dangerous rooftops and ledges of New York City delivering messages!","{id:game-description}Fly through the sky avoiding obstacles":"Fly through the sky avoiding obstacles","{id:game-description}Fly your plane over the forest spraying water to put out the fires!":"Fly your plane over the forest spraying water to put out the fires!","{id:game-description}Go on a mouse adventure in a haunted castle, battling bad guys, avoiding obstacles and collecting keys!":"Go on a mouse adventure in a haunted castle, battling bad guys, avoiding obstacles and collecting keys!","{id:game-description}Help your bunny hop over obstacles as they run through the forest":"Help your bunny hop over obstacles as they run through the forest","{id:game-description}Navigate your hot air balloon through the mountains avoiding birds and spaceships":"Navigate your hot air balloon through the mountains avoiding birds and spaceships","{id:game-description}Place arrows along the path to help Asphodel the witch find their way":"Place arrows along the path to help Asphodel the witch find their way","{id:game-description}This is a cooperative game where both players share lives. You must defeat skeletons, collect hearts and avoid the ducks and fishes.":"This is a cooperative game where both players share lives. You must defeat skeletons, collect hearts and avoid the ducks and fishes.","{id:game-description}Time to practice your football throwing game! Coordinate plays and avoid defenders":"Time to practice your football throwing game! Coordinate plays and avoid defenders","{id:game-description}Two strawberries battle it out in the kitchen to be the Shortcake Star!":"Two strawberries battle it out in the kitchen to be the Shortcake Star!","{id:game-description}Ultimate battle between cats and dogs! The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner as the best pet.":"Ultimate battle between cats and dogs! The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner as the best pet.","{id:game-description}Use the lasers on your spaceship to shoot falling asteroids!":"Use the lasers on your spaceship to shoot falling asteroids!","{id:game-name}Asphodel follows directions":"Asphodel follows directions","{id:game-name}Blocky Boss Battle":"Blocky Boss Battle","{id:game-name}Bunny Hop!":"Bunny Hop!","{id:game-name}Caterpillar":"Caterpillar","{id:game-name}Cave Explorer":"Cave Explorer","{id:game-name}Falling Duck":"Falling Duck","{id:game-name}GalgaMulti":"GalgaMulti","{id:game-name}Hot Air Balloon":"Hot Air Balloon","{id:game-name}Jewel Raider":"Jewel Raider","{id:game-name}Kickoff!":"Kickoff!","{id:game-name}Mouse Adventure":"Mouse Adventure","{id:game-name}Pigeon: Deliverance":"Pigeon: Deliverance","{id:game-name}Save the Forest":"Save the Forest","{id:game-name}Secure the river!":"Secure the river!","{id:game-name}Space Destroyer":"Space Destroyer","{id:game-name}Stack the Goats":"Stack the Goats","{id:game-name}Strawberry Slam":"Strawberry Slam","{id:game-name}TicTacTwo!":"TicTacTwo!","{id:game-subtitle}1-4 player":"1-4 player","{id:game-subtitle}4 player":"4 player","{id:game-title}Galga":"Galga","{id:game-title}Horse Race":"Horse Race","{id:game-title}Painting Together":"Painting Together","{id:game-title}Perfect Fit":"Perfect Fit","{id:hardware-description}A fun-sized console to play the games you code.":"A fun-sized console to play the games you code.","{id:hardware-description}A programmable modular console to create games, design wearables and make creative projects.":"A programmable modular console to create games, design wearables and make creative projects.","{id:hardware-description}A retro game console for STEM education from Kittenbot team":"A retro game console for STEM education from Kittenbot team","{id:hardware-description}ARCADE is a programmable gamepad for use with MakeCode Arcade.":"ARCADE is a programmable gamepad for use with MakeCode Arcade.","{id:hardware-description}It's a badge, it's an arcade, it's a PyBadge":"It's a badge, it's an arcade, it's a PyBadge","{id:hardware-description}It's the PyBadge with a zest of Machine learning":"It's the PyBadge with a zest of Machine learning","{id:hardware-description}Learn how BrainPad Arcade lets you run games on a small handheld console.":"Learn how BrainPad Arcade lets you run games on a small handheld console.","{id:hardware-description}Learn how to run your games on micro-controllers from Adafruit":"Learn how to run your games on micro-controllers from Adafruit","{id:hardware-description}The Retro has a big screen, colorful protective case, d-pad and vibration motor":"The Retro has a big screen, colorful protective case, d-pad and vibration motor","{id:hardware-description}The upgraded PyBadge":"The upgraded PyBadge","{id:hardware-description}Use the micro:bit with an expansion board from Elecfreaks":"Use the micro:bit with an expansion board from Elecfreaks","{id:hardware-description}Use the micro:bit with an expansion board from Kittenbot":"Use the micro:bit with an expansion board from Kittenbot","{id:hardware-description}Use the micro:bit with an expansion board from iCShop":"Use the micro:bit with an expansion board from iCShop","{id:var}myImage":"myImage","{id:var}mySprite":"mySprite"}
|
|
1
|
+
{"(Diagnostics) Garbage Collection checks.":"(Diagnostics) Garbage Collection checks.","20 pin Edge Connector":"20 pin Edge Connector","A Corgi platformer":"A Corgi platformer","A micro-servo library":"A micro-servo library","A sprite with path projection":"A sprite with path projection","A thermometer driver":"A thermometer driver","Adafruit Feather pinout":"Adafruit Feather pinout","Additional blocks for building multiplayer games":"Additional blocks for building multiplayer games","Additional scaling blocks for sprites":"Additional scaling blocks for sprites","Adds new blocks for message communication in the radio category":"Adds new blocks for message communication in the radio category","Advanced Livestream":"Advanced Livestream","Advanced state based animations for sprites":"Advanced state based animations for sprites","Arcade Compatible Devices":"Arcade Compatible Devices","Arts and Crafts":"Arts and Crafts","Azure IoT - beta":"Azure IoT - beta","Beginner Skillmaps":"Beginner Skillmaps","Blocks Games":"Blocks Games","Blocks for the color-coded tilemap":"Blocks for the color-coded tilemap","Button A and B drivers":"Button A and B drivers","Color manipulation":"Color manipulation","Community Games":"Community Games","Contains overriden or additional files for the default project template":"Contains overriden or additional files for the default project template","Courses":"Courses","DIY Hardware":"DIY Hardware","Develop your programming skills by quickly creating and modding retro arcade games with Blocks and JavaScript in the MakeCode editor":"Develop your programming skills by quickly creating and modding retro arcade games with Blocks and JavaScript in the MakeCode editor","Docs":"Docs","Driver for rotary encoder":"Driver for rotary encoder","ESP32 over SPI - beta":"ESP32 over SPI - beta","Empty game library - beta":"Empty game library - beta","Extra game controller functionalities":"Extra game controller functionalities","Forum":"Forum","Game Design Concepts":"Game Design Concepts","Game Jam":"Game Jam","Graphics and Math":"Graphics and Math","Hardware":"Hardware","Hardware definition - web-browser only":"Hardware definition - web-browser only","How to Make a Game Videos":"How to Make a Game Videos","JavaScript Games":"JavaScript Games","John Park's Workshop":"John Park's Workshop","Keyboard emulation over HID":"Keyboard emulation over HID","Lessons":"Lessons","Live Coding":"Live Coding","MQTT for MakeCode - beta":"MQTT for MakeCode - beta","Microsoft MakeCode Arcade":"Microsoft MakeCode Arcade","Mouse emulation over HID":"Mouse emulation over HID","Multiplayer Games":"Multiplayer Games","Multiplayer Games!":"Multiplayer Games!","Multiplayer Tutorials":"Multiplayer Tutorials","NRF52833 board":"NRF52833 board","NRF52840 board":"NRF52840 board","Networking abstractions":"Networking abstractions","Next Level Skillmaps":"Next Level Skillmaps","Onboard light level sensor":"Onboard light level sensor","Palette manipulations":"Palette manipulations","Power and sleep management":"Power and sleep management","RP2040 board":"RP2040 board","Raspberry Pi":"Raspberry Pi","SAMD51 board":"SAMD51 board","STM32F4 board":"STM32F4 board","Scene manager":"Scene manager","Settings storage in files":"Settings storage in files","Settings storage in internal flash":"Settings storage in internal flash","Seven segment digit display":"Seven segment digit display","The accelerometer library":"The accelerometer library","The base library":"The base library","The core library for Codal-based targets":"The core library for Codal-based targets","The fantasy game console library":"The fantasy game console library","The game and sprite library - beta":"The game and sprite library - beta","The microphone library":"The microphone library","The music library with a mixer":"The music library with a mixer","The programmable LED (WS2812b,APA102) driver.":"The programmable LED (WS2812b,APA102) driver.","The radio services":"The radio services","The screen library":"The screen library","Try Now":"Try Now","Tutorials":"Tutorials","UART communication":"UART communication","VM":"VM","WiFi support in Arcade - beta":"WiFi support in Arcade - beta","arcade":"arcade","{id:extension-tag}Controller":"Controller","{id:extension-tag}Hardware":"Hardware","{id:extension-tag}Sprite Pack":"Sprite Pack","{id:extension-tag}Sprites":"Sprites","{id:extension-tag}Utility":"Utility","{id:extension-tag}Visual Effects":"Visual Effects","{id:game-description}A test of reflexes! Avoid the blue stingers while sending fireballs at the boss!":"A test of reflexes! Avoid the blue stingers while sending fireballs at the boss!","{id:game-description}Adventure through levels collecting jewels and avoiding obstacles!":"Adventure through levels collecting jewels and avoiding obstacles!","{id:game-description}Build a tower of goats!":"Build a tower of goats!","{id:game-description}Challenge your friend to a game of pool! Be sure to check out the (very silly) alternate rule sets! (requires two players)":"Challenge your friend to a game of pool! Be sure to check out the (very silly) alternate rule sets! (requires two players)","{id:game-description}Control both cats and use their unique strengths to solve puzzles! Press A to swap between characters. Up is jump and B triggers Ollie's tackle attack. (1-2 players)":"Control both cats and use their unique strengths to solve puzzles! Press A to swap between characters. Up is jump and B triggers Ollie's tackle attack. (1-2 players)","{id:game-description}Controlling a starship, both players will destroy the Galga forces, while avoiding enemies. Each player has 3 lives, game ends once a player runs out of lives.":"Controlling a starship, both players will destroy the Galga forces, while avoiding enemies. Each player has 3 lives, game ends once a player runs out of lives.","{id:game-description}Eat the leaves to grow, but watch out for walls!":"Eat the leaves to grow, but watch out for walls!","{id:game-description}Fly through the dangerous rooftops and ledges of New York City delivering messages!":"Fly through the dangerous rooftops and ledges of New York City delivering messages!","{id:game-description}Fly through the sky avoiding obstacles":"Fly through the sky avoiding obstacles","{id:game-description}Go on a mouse adventure in a haunted castle, battling bad guys, avoiding obstacles and collecting keys!":"Go on a mouse adventure in a haunted castle, battling bad guys, avoiding obstacles and collecting keys!","{id:game-description}Help your bunny hop over obstacles as they run through the forest":"Help your bunny hop over obstacles as they run through the forest","{id:game-description}Lead your constituents to find food and carry it back to the nest as fast as you can!":"Lead your constituents to find food and carry it back to the nest as fast as you can!","{id:game-description}Navigate your hot air balloon through the mountains avoiding birds and spaceships":"Navigate your hot air balloon through the mountains avoiding birds and spaceships","{id:game-description}Place arrows along the path to help Asphodel the witch find their way":"Place arrows along the path to help Asphodel the witch find their way","{id:game-description}Top-down racing game for 1-4 players. Press Left and Right to steer, A to use picked up item.":"Top-down racing game for 1-4 players. Press Left and Right to steer, A to use picked up item.","{id:game-description}Try to clean your side of the nest! Clear the leaves and collect acorns while messing up your opponent's side! (requires 2 players)":"Try to clean your side of the nest! Clear the leaves and collect acorns while messing up your opponent's side! (requires 2 players)","{id:game-description}Try to slice all the logs as quickly and evenly as you can! Press Left/Right to change direction and A to slice!":"Try to slice all the logs as quickly and evenly as you can! Press Left/Right to change direction and A to slice!","{id:game-description}Ultimate battle between cats and dogs! The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner as the best pet.":"Ultimate battle between cats and dogs! The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row is the winner as the best pet.","{id:game-description}Use the lasers on your spaceship to shoot falling asteroids!":"Use the lasers on your spaceship to shoot falling asteroids!","{id:game-description}Use your knowledge of the cycle of life to stack plants and dinosaurs!":"Use your knowledge of the cycle of life to stack plants and dinosaurs!","{id:game-name}Asphodel follows directions":"Asphodel follows directions","{id:game-name}Auto and Ollie":"Auto and Ollie","{id:game-name}BUG PRESIDENT: THE GAME":"BUG PRESIDENT: THE GAME","{id:game-name}Best Nest":"Best Nest","{id:game-name}Blocky Boss Battle":"Blocky Boss Battle","{id:game-name}Bunny Hop!":"Bunny Hop!","{id:game-name}Caterpillar":"Caterpillar","{id:game-name}Dino Zoo":"Dino Zoo","{id:game-name}Falling Duck":"Falling Duck","{id:game-name}Galga":"Galga","{id:game-name}Hot Air Balloon":"Hot Air Balloon","{id:game-name}Jewel Raider":"Jewel Raider","{id:game-name}Joey's Pool Sharks":"Joey's Pool Sharks","{id:game-name}MakeCode Racers":"MakeCode Racers","{id:game-name}Mouse Adventure":"Mouse Adventure","{id:game-name}NINJA":"NINJA","{id:game-name}Pigeon: Deliverance":"Pigeon: Deliverance","{id:game-name}Space Destroyer":"Space Destroyer","{id:game-name}Stack the Goats":"Stack the Goats","{id:game-name}TicTacTwo!":"TicTacTwo!","{id:game-subtitle}1-4 player":"1-4 player","{id:game-subtitle}4 player":"4 player","{id:game-title}Galga":"Galga","{id:game-title}Horse Race":"Horse Race","{id:game-title}Painting Together":"Painting Together","{id:game-title}Perfect Fit":"Perfect Fit","{id:hardware-description} Sleek hand-held game device with a hard case and a USB-C port.":" Sleek hand-held game device with a hard case and a USB-C port.","{id:hardware-description}A fun-sized console to play the games you code.":"A fun-sized console to play the games you code.","{id:hardware-description}A programmable modular console to create games, design wearables and make creative projects.":"A programmable modular console to create games, design wearables and make creative projects.","{id:hardware-description}A retro game console for STEM education from Kittenbot team":"A retro game console for STEM education from Kittenbot team","{id:hardware-description}ARCADE is a programmable gamepad for use with MakeCode Arcade.":"ARCADE is a programmable gamepad for use with MakeCode Arcade.","{id:hardware-description}It's a badge, it's an arcade, it's a PyBadge":"It's a badge, it's an arcade, it's a PyBadge","{id:hardware-description}It's the PyBadge with a zest of Machine learning":"It's the PyBadge with a zest of Machine learning","{id:hardware-description}Learn how BrainPad Arcade lets you run games on a small handheld console.":"Learn how BrainPad Arcade lets you run games on a small handheld console.","{id:hardware-description}Learn how to run your games on micro-controllers from Adafruit":"Learn how to run your games on micro-controllers from Adafruit","{id:hardware-description}The Retro has a big screen, colorful protective case, d-pad and vibration motor":"The Retro has a big screen, colorful protective case, d-pad and vibration motor","{id:hardware-description}The upgraded PyBadge":"The upgraded PyBadge","{id:hardware-description}Use the micro:bit with an expansion board from Elecfreaks":"Use the micro:bit with an expansion board from Elecfreaks","{id:hardware-description}Use the micro:bit with an expansion board from Kittenbot":"Use the micro:bit with an expansion board from Kittenbot","{id:hardware-description}Use the micro:bit with an expansion board from iCShop":"Use the micro:bit with an expansion board from iCShop","{id:var}myImage":"myImage","{id:var}mySprite":"mySprite"}
|