might turn this into a full game
5 Likes
you can use an oled screen for more high-quality screens. (you need an actual oled screen, because it doesnt work on the simulator.)
1 Like
I don’t have an oled screen so I’m probably not going to do that but good suggestion.
I like the challenges that comes with a 5 by 5 screen and want to make a full game with it
3 Likes
Could you make A-B the jump and an and b the movement controls? Tilt is hard to control in the simulator. This project is so cool! Looking forward to seeing what can be done with it!!!
1 Like
Maybe I find it hard to press A-B on the real micro bit though
1 Like
Fair enough👍
i maked one with ai:
let spelerX = 0
let spelerY = 4
let springen = false
let huidigLevel = 0
// Definieer meerdere levels, met lava blocks (2)
let levels = [
[ // Level 1
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 1, 0, 1, 0],
[1, 0, 0, 0, 1],
[1, 1, 1, 1, 1]
],
[ // Level 2
[0, 0, 1, 0, 0],
[0, 1, 0, 1, 0],
[1, 0, 0, 0, 1],
[0, 1, 1, 1, 0],
[1, 2, 0, 1, 1] // Lava block op (1,1)
],
[ // Level 3
[0, 1, 0, 1, 0],
[1, 0, 0, 0, 1],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[1, 1, 1, 2, 1] // Lava block op (4,3)
]
]
// Teken de speler en de platforms
function tekenSpeler() {
basic.clearScreen()
let platforms = levels[huidigLevel]
// Teken platforms
for (let y = 0; y < 5; y++) {
for (let x = 0; x < 5; x++) {
if (platforms[y][x] == 1) {
led.plotBrightness(x, y, 50) // Platformen met lage helderheid
} else if (platforms[y][x] == 2) {
led.plotBrightness(x, y, 255) // Lava block met felste helderheid
}
}
}
// Teken speler
led.plot(spelerX, spelerY)
}
// Controleer of de speler vastzit in een platform en duw hem omhoog
function duwUitPlatform() {
let platforms = levels[huidigLevel]
while (spelerY > 0 && platforms[spelerY][spelerX] == 1) {
spelerY -= 1 // Duw omhoog totdat de speler niet meer in het platform zit
}
tekenSpeler()
}
// Zwaartekracht functie: speler valt als er geen platform onder hem is
function zwaartekracht() {
let platforms = levels[huidigLevel]
while (spelerY < 4 && platforms[spelerY + 1][spelerX] == 0) {
basic.pause(150) // Pauzeer een beetje om het val-effect te zien
spelerY += 1
tekenSpeler()
// Check of de speler onder het niveau is gevallen (void)
if (spelerY > 4) {
spelerDood() // De speler valt in de void, dus reset naar het eerste level
}
}
}
// De functie die wordt uitgevoerd als de speler in de void of lava valt
function spelerDood() {
// Zet de speler terug naar het eerste level
huidigLevel = 0
// Zet de speler terug naar de startpositie
spelerX = 0
spelerY = 4
duwUitPlatform() // Zorg ervoor dat de speler niet vastzit in een platform
tekenSpeler() // Teken de speler opnieuw op zijn startpositie
}
// Beweging naar links
input.onButtonPressed(Button.A, function () {
if (spelerX > 0) {
let platforms = levels[huidigLevel]
if (platforms[spelerY][spelerX - 1] == 0 || platforms[spelerY][spelerX - 1] == 2) {
spelerX -= 1
tekenSpeler()
zwaartekracht() // Zorg dat de zwaartekracht direct werkt
duwUitPlatform() // Zorg ervoor dat de speler niet in een platform vastzit
}
}
})
// Beweging naar rechts
input.onButtonPressed(Button.B, function () {
if (spelerX < 4) {
let platforms = levels[huidigLevel]
if (platforms[spelerY][spelerX + 1] == 0 || platforms[spelerY][spelerX + 1] == 2) {
spelerX += 1
tekenSpeler()
zwaartekracht() // Zorg dat de zwaartekracht direct werkt
duwUitPlatform() // Zorg ervoor dat de speler niet in een platform vastzit
}
}
// Als de speler het einde van het level bereikt, ga naar het volgende level
if (spelerX == 4 && huidigLevel < levels.length - 1) {
huidigLevel += 1
spelerX = 0 // Reset de speler naar het begin van het level
spelerY = 4 // Zet de speler weer op de grond
duwUitPlatform() // Zorg ervoor dat de speler niet vastzit
tekenSpeler()
}
})
// Springen
input.onButtonPressed(Button.AB, function () {
let platforms = levels[huidigLevel]
if (!springen && spelerY > 0 && (spelerY == 4 || platforms[spelerY + 1][spelerX] == 1)) {
springen = true
for (let i = 0; i < 2; i++) {
if (spelerY > 0 && platforms[spelerY - 1][spelerX] == 0) {
spelerY -= 1
tekenSpeler()
basic.pause(150)
zwaartekracht() // Na elke spronghandeling zwaartekracht controleren
}
}
springen = false
zwaartekracht() // Na de sprong de zwaartekracht controleren om te vallen
duwUitPlatform()
}
})
// Controleer of de speler op lava staat
function controleerLava() {
let platforms = levels[huidigLevel]
if (platforms[spelerY][spelerX] == 2) {
spelerDood() // Als de speler op lava staat, ga terug naar het begin van het level
}
}
// Start de speler op het platform en zorg dat hij niet vastzit bij de start
duwUitPlatform()
tekenSpeler()
// Controleer na elke actie of de speler op lava staat
basic.forever(function () {
controleerLava()
})
I’m making a full platformer out of it! Working with these extreme conditions requires creativity
1 Like