{"id":2944,"date":"2022-09-17T11:44:21","date_gmt":"2022-09-17T11:44:21","guid":{"rendered":"https:\/\/picockpit.com\/raspberry-pi\/?p=2944"},"modified":"2023-08-23T10:43:28","modified_gmt":"2023-08-23T10:43:28","slug":"gaming-on-the-raspberry-pi-pico","status":"publish","type":"post","link":"https:\/\/picockpit.com\/raspberry-pi\/nl\/gamen-op-de-raspberry-pi-pico\/","title":{"rendered":"Gamen op de Raspberry Pi Pico"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1024x576.jpg\" alt=\"spelletjes op raspberry pi pico\" class=\"wp-image-2946\" srcset=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1024x576.jpg 1024w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-300x169.jpg 300w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-768x432.jpg 768w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-1536x864.jpg 1536w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image-18x10.jpg 18w, https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg 1778w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In deze post wil ik het hebben over gamen op de Raspberry Pi Pico.<\/p>\n\n\n\n<p>Ik herinner me mijn eerste dumbphone, die toen een \"telefoon\" werd genoemd. Het kon eenvoudige spelletjes spelen zoals Snake. Dat was het neusje van de zalm.<\/p>\n\n\n\n<p>Daarvoor moest je een aparte handheld meenemen die Tetris speelde of een dynamischer spelsysteem zoals een Gameboy.<\/p>\n\n\n\n<p>De Raspberry Pi Pico is een behoorlijk krachtige microcontroller vergeleken met waar handhelds in de jaren '90 op draaiden. Uiteraard biedt het ons de mogelijkheid om spellen uit die tijd te spelen.<\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Hoe krachtig is de Raspberry Pi Pico?<\/h2>\n\n\n\n<p>Vergeleken met een console uit de jaren '80 is de Raspberry Pi Pico extreem krachtig.&nbsp;<\/p>\n\n\n\n<p>Als je een spel programmeert dat vergelijkbaar is met de vereisten van een spel uit de jaren tachtig, zal de Raspberry Pi Pico er waarschijnlijk doorheen komen.<\/p>\n\n\n\n<p>In de jaren '90 wordt het wat moeilijker om zo'n duidelijke conclusie te trekken.<\/p>\n\n\n\n<p>Aan de ene kant, als je het ziet als een apparaat waarmee je spelletjes kunt spelen die vergelijkbaar zijn met wat je zou vinden op een Gameboy of een mobiele telefoon, zul je waarschijnlijk tevreden zijn.<\/p>\n\n\n\n<p>Eind jaren '90 werden spellen echter veel zwaarder. Je zult bijvoorbeeld geen Quake 3 (een spel uit 1999) spelen op de Pico.<\/p>\n\n\n\n<p>De Raspberry Pi Pico kan weliswaar Doom (1993) spelen, maar de persoon die het codeerde deed er zes maanden over omdat het een hele klus was om het spel te comprimeren in de 2MB opslagruimte die de Raspberry Pi Pico heeft.<\/p>\n\n\n\n<p>Dus, hoewel de Pico twee 133MHz processoren heeft, heeft hij beperkt RAM en opslag, wat het moeilijk maakt.<\/p>\n\n\n\n<p>Eens kijken hoe het zich verhoudt tot een Gameboy:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Spec<\/td><td>Raspberry Pi Pico<\/td><td>Gameboy (1989)<\/td><td>Gameboy Color (1998)<\/td><\/tr><tr><td>Display<\/td><td>Kleuren-LCD of e-ink, het is aan uw verbeelding.<\/td><td>4 tinten grijstinten<\/td><td>10, 32, 56 kleuren<\/td><\/tr><tr><td>Resolutie<\/td><td>Afhankelijk van je scherm, maar beperkt door Pico's middelen.<\/td><td>160x144px<\/td><td>160\u00d7144 px<\/td><\/tr><tr><td>CPU<\/td><td>133MHz dual core<\/td><td>4MHz<\/td><td>4MHz\/8MHz<\/td><\/tr><tr><td>RAM<\/td><td>264KB<\/td><td>8KB<\/td><td>32KB RAM, 16KB VRAM<\/td><\/tr><tr><td>Opslag<\/td><td>2MB&nbsp;<\/td><td>Game Pak-cartridge: 8MB ROM, 128KB RAM<\/td><td>Game Pak-cartridge: 8MB ROM, 128KB RAM<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Waarom spelletjes spelen op de Pico en niet op de Zero\/Pi 4?<\/h2>\n\n\n\n<p>Goede vraag.<\/p>\n\n\n\n<p>Zoals je weet is de Raspberry Pi Pico een microcontroller, terwijl de Raspberry Pi Zero of Pi 4 microcomputers zijn.<\/p>\n\n\n\n<p>Beide kunnen spelletjes spelen, maar de Raspberry Pi Pico is veel beperkter.<\/p>\n\n\n\n<p>Dat gezegd hebbende, als je vandaag (in 2022) een emulator of spelsysteem wilt bouwen van de Raspberry Pi Zero of Pi 4s, kun je er maar beter al een hebben, anders is je grootste bottleneck voorraad.<\/p>\n\n\n\n<p>Het is erg moeilijk om een Pi Zero te krijgen en een hele uitdaging om een Pi 4 te krijgen.<\/p>\n\n\n\n<p>Aan de andere kant is de Pico overvloedig. Hij start ook vrijwel onmiddellijk op, terwijl de microcomputer Pis een langdurig opstartproces moet doorlopen.<\/p>\n\n\n\n<p>De Pico gaat ook veel langer mee. Als je een mobiele opstelling wilt die urenlang meegaat en draagbaar is, zit je met de Pico een stuk beter.<\/p>\n\n\n\n<p>Ten slotte is de Pico, naast de voorraad, ook ruim voorradig.<\/p>\n\n\n\n<p>Om eerlijk te zijn tegenover de Pi Zero en Pi 4, kun je met die microcomputers zeker betere spellen spelen en betere emulatieresultaten behalen. Zoals je in de volgende sectie zult zien, heeft de Pico moeite met het spelen van spellen waar de Zero of Pi 4 zich doorheen slaan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Welke spelletjes kan de Raspberry Pi Pico spelen?<\/h2>\n\n\n\n<p>We beginnen met te kijken wat de knutselgemeenschap heeft kunnen spelen op de Raspberry Pi Pico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">RP2040 Doom is het antwoord op \"wordt het Doom?\".<\/h3>\n\n\n\n<iframe loading=\"lazy\" width=\"813\" height=\"457\" src=\"https:\/\/www.youtube.com\/embed\/eDVazQVycP4\" title=\"RP2040 Doom: DOOM1 Demo\/Gameplay op een Raspberry Pi Pico\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<p>Ja! De Raspberry Pi Pico kan Doom spelen.<\/p>\n\n\n\n<p>Iemand genaamd Graham Sanderson uit Austin, Texas, is erin geslaagd Doom te porten naar de Raspberry Pi Pico.<\/p>\n\n\n\n<p>Zijn magische formule?<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"while (!convice_myself_its_probably_impossible()) {    do_some_more();}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopie\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #81A1C1\">while<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #88C0D0\">convice_myself_its_probably_impossible<\/span><span style=\"color: #D8DEE9FF\">()) <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">do_some_more<\/span><span style=\"color: #D8DEE9FF\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Hij <a href=\"https:\/\/kilograham.github.io\/rp2040-doom\/\">legde in zijn documentatie van het proces uit<\/a> dat hij meerdere beperkingen ondervond van de hardwarespecificaties die de Raspberry Pi Pico had. Het is immers geen apparaat dat bedoeld is voor gaming.<\/p>\n\n\n\n<p>Toch besloot Graham ook om de porting van Doom nog moeilijker te maken. Hij wilde de authentieke ervaring van Doom, wat betekende dat hij een resolutie van 320\u00d7200 (kleur), stereogeluid, OPL2-muziek, opslaan en laden, netwerkmultiplayer en andere functies die in het origineel beschikbaar zijn.<\/p>\n\n\n\n<p>Zoveel spel in de Raspberry Pi Pico stoppen betekende uitdagingen met het geheugen. Zowel RAM als opslag waren belangrijke kwesties.<\/p>\n\n\n\n<p>Ten eerste heeft de Raspberry Pi Pico slechts 2MB opslagruimte, maar de shareware versie van Doom is twee keer zo groot. Terwijl andere ontwikkelaars zouden kunnen besluiten om bepaalde functies zoals splash screens en downsampling van texturen te schrappen, wilde Graham dat niet doen.<\/p>\n\n\n\n<p>RAM was ook een probleem: de Chocolate Doom broncode vereist ongeveer 1MB RAM terwijl de Pico slechts ongeveer 264KB heeft. Het geheugen is krap omdat het renderen van de graphics een groot deel van de RAM-ruimte in beslag neemt, maar RAM is ook erg belangrijk voor de soepele werking van het spel. Om beide aspecten te beheren, moest Graham iets doen wat hij \"liposuctie\" noemde.<\/p>\n\n\n\n<p>U kunt meer lezen door te gaan naar <a href=\"https:\/\/kilograham.github.io\/rp2040-doom\/\">de documentatie<\/a>kijken <a href=\"https:\/\/www.youtube.com\/playlist?list=PL-_wCtHUfdDPi7i-4OIy5iQjQ3QSqq1Mh\">zijn YouTube afspeellijst<\/a> of <a href=\"https:\/\/github.com\/kilograham\/rp2040-doom\">herziening van de code<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">NES emulator<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/1R9SiKq9iB0-wC9MtOn8X29eX4HiKXr8Meu9MS9SXpku1lL8GrI7TTmXvvLTU3Q_3SLcZS59K9L5saoAHXXyJyRsU5T8S0qSeiuTI5NQEg-shkcQvvVQ2tY9nEtFboRanYNyswCo5BMfDTN-JQQAwFzM6TAggyHkfOjosqKc92ICJtdw-R2jVIwjqw\" alt=\"\" style=\"width:711px;height:400px\" width=\"711\" height=\"400\"\/><\/figure>\n<\/div>\n\n\n<p>Van de Raspberry Pi Pico is met succes een NES-emulator gemaakt.<\/p>\n\n\n\n<p><a href=\"https:\/\/forums.emulator-zone.com\/index.php?threads\/using-a-rasp-pico-board-to-emulate-nes.26986\/\">In een Emulator Zone Forum thread<\/a>, gebruiker ropgar zei dat de Raspberry Pi Pico de kracht heeft om een NES te emuleren en het kan 60 frames per seconde en kan APU en PPP perfect emuleren.<\/p>\n\n\n\n<p>Ropgar gebruikt een PS\/2-toetsenbord als controller, maar je kunt ook de originele NES-controller gebruiken.<\/p>\n\n\n\n<p>Het geluid is goed en er zijn geen storingen in de video en de achtergrondmuziek.<\/p>\n\n\n\n<p>De Pico heeft ongeveer 1,5MB flash-ruimte over voor verschillende spelletjes, die kunnen worden gekozen door op Caps Lock te drukken om tussen de spelletjes te wisselen.&nbsp;<\/p>\n\n\n\n<p>De spellen die ropgar op zijn demo kon laden zijn Pacman, Arkanoids, DK, DK Jr, BubbleBobble, Galaga, en vele andere.<\/p>\n\n\n\n<p>Het enige nadeel is dat er geen openbare broncode of handleiding is over hoe dit moet.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"895\" height=\"503\" src=\"https:\/\/www.youtube.com\/embed\/Kv9U1GouvYM\" title=\"Microgestuurde NES-emulator | 10 spellen in Flash | Raspberry Pi Pico RP2040 | VGA PS\/2 PWM Sound\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\">Gameboy-emulator voor de Raspberry Pi Pico<\/h2>\n\n\n\n<p>Je kunt je eigen Gameboy behuizing maken en dan de Raspberry Pi Pico gebruiken om de Gameboy te emuleren.<\/p>\n\n\n\n<p>Het lastige hier is dat het eigenlijk niet iets is dat veel succes heeft gekend. Met andere woorden, wat je bouwt kan werken, maar niet altijd.<\/p>\n\n\n\n<p>Laten we eens kijken naar de opties die er zijn.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Roest Gameboy emulator (OxidGB Pico Port)<\/h3>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/YqgqoXlZzzwpFSfIREDXY6DSQk1izJhDctOpEW_Gp9PHFaOGpt-dp-R69kNfXM5KnNrYiVbPJ7lmFhWYmfzlaRpflY6n2nanDID8gDFPVybw_HioK14eqzPlXJCSo-Y_jd3lylN_Rinln6dDkHeJe7smlhNhrnlKiNP2Az1d5pIMWAJPRqHEqEBNQQ\" alt=\"\" style=\"width:563px;height:622px\" width=\"563\" height=\"622\"\/><figcaption class=\"wp-element-caption\">Afbeelding door u\/j_selby (Reddit)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Toen ik de Pokemon afbeelding op het scherm zag, was ik meteen enthousiast.<\/p>\n\n\n\n<p>James Selby schreef echter over de uitdagingen en tekortkomingen van zijn Gameboy-emulator, geschreven in Rust, genaamd OxidGB Pico Port.<\/p>\n\n\n\n<p>\"Dit was een rit - een frustrerende rit, maar een rit waarvan ik niettemin grondig heb genoten vanuit educatief oogpunt,\" zei Selby.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Problemen en overwinningen<\/h4>\n\n\n\n<p>Dit is de grootste uitdaging: <strong>De Rust Gameboy emulator \"is in zijn huidige staat helaas niet echt speelbaar.\"<\/strong><\/p>\n\n\n\n<p>Selby zei dat spellen slechts ongeveer 10 FPS halen omdat de code van de emulator een knelpunt is, evenals de trage SPI-interface naar het scherm.<\/p>\n\n\n\n<p>Het is mogelijk de zaken te versnellen, maar dat vergt tijd om te plannen en uit te voeren.<\/p>\n\n\n\n<p>Input is niet geconfigureerd, omdat de spellen niet speelbaar waren.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Testen van de OxidGB Pico-poort<\/h4>\n\n\n\n<p>Als je het wilt proberen, kun je Selby's instructies volgen op zijn <a href=\"https:\/\/github.com\/j-selby\/oxidgb-pico\">Github repo voor de OxidGB Pico Port.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RP2040_GB emulator<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/0bdDowSlnfTQhTg-3nLzDxFTEEVtOYep7mVxwdu8oNXkYXop897px8u7TI-bh2UXy-rwj0sq3kL0_D-lLA3BLazxbALrBdj_OxwAaEMg24RzadMnR9sOC_L1lo4nYDlbjzcyr6FX49J_ngR0ebA0D2m-1E3mU1ft1NYCLCUV62W64eS-JW8L3XfnXQ\" alt=\"\" style=\"width:687px;height:298px\" width=\"687\" height=\"298\"\/><figcaption class=\"wp-element-caption\">RP2040_GB emulator hardware en opstelling, foto door Mahyar Koshkouei.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Een andere emulator die u kunt proberen is de <a href=\"https:\/\/github.com\/deltabeard\/RP2040-GB\">RP2040_GB<\/a>die gebaseerd is op de <a href=\"https:\/\/github.com\/deltabeard\/Peanut-GB\">Pinda-GB<\/a> emulator.<\/p>\n\n\n\n<p>De prestaties van de RP2040_GB zijn behoorlijk, waarbij Koshkouei zegt dat zijn opstelling \"draait met meer dan 70 fps zonder audio-emulatie. Met frame skip en interlacing kan hij tot 120 fps halen.\"<\/p>\n\n\n\n<p>Zoals je kunt zien, speelt de RP2040_GB Pokemon. De stappen om een ROM op de RP2040 te krijgen zijn als volgt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>U moet de Pico SDK hebben<\/li>\n\n\n\n<li>Converteer <strong>.gb<\/strong> of <strong>.gbc<\/strong> ROM naar een C header bestand met behulp van de <strong>xxd <\/strong>programma<\/li>\n\n\n\n<li>Wijzig het geconverteerde bestand door twee regels code toe te voegen (in de Github readme)<\/li>\n\n\n\n<li>Kopieer ROM naar de <strong>src <\/strong>map en compileren.<\/li>\n<\/ul>\n\n\n\n<p>Er zijn enkele beperkingen van deze emulator:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\"Deze emulator is onnauwkeurig en is een werk in uitvoering ... sommige spellen kunnen verkeerd of helemaal niet draaien.\"&nbsp;<\/li>\n\n\n\n<li>Gameboy Color spellen geven een foutmelding<\/li>\n\n\n\n<li>Niet geoptimaliseerd voor microcontroller: Koshkouei suggereerde dat \"het gebruik van een APU die geoptimaliseerd is voor ruimte en snelheid\" kan helpen.<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/github.com\/deltabeard\/RP2040-GB\">Zie de Github repo van de RP2040_GB hier.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mega Spelletjes Compilatie met Raspberry Pi Pico<\/h2>\n\n\n\n<iframe loading=\"lazy\" width=\"893\" height=\"502\" src=\"https:\/\/www.youtube.com\/embed\/hXO0toLjDh0\" title=\"MEGA Spellen Compilatie Adafruit RPI Pico\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<p>Het beste aan dit project is dat het eenvoudig is en dat de instructies voldoende zijn om snel met een Raspberry Pi Pico spelcomputer aan de slag te gaan.<\/p>\n\n\n\n<p>Roger B\u00fchler heeft onderdelen, instructies en demo's opgenomen op zijn Github.<\/p>\n\n\n\n<p>De Mega Games Compilation komt met de volgende spellen:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tiny Gilbert<\/li>\n\n\n\n<li>Kleine truc<\/li>\n\n\n\n<li>Tiny Invaders v3.1<\/li>\n\n\n\n<li>Tiny Pinball v2<\/li>\n\n\n\n<li>Tiny Pacman v1.2<\/li>\n\n\n\n<li>Tiny Bomber v1.3<\/li>\n\n\n\n<li>Tiny Bike v1.2<\/li>\n\n\n\n<li>Kleine Bert 1.1<\/li>\n\n\n\n<li>Kleine Arkanoid v2<\/li>\n\n\n\n<li>Kleine Tris v2.1e<\/li>\n\n\n\n<li>Kleine plaquette<\/li>\n\n\n\n<li>Tiny DDug<\/li>\n\n\n\n<li>Tiny Missile v1.1<\/li>\n\n\n\n<li>Tiny Lander v1.0 ( door Roger Buehler )<\/li>\n\n\n\n<li>Kleine Morpion<\/li>\n\n\n\n<li>Kleine pijp<\/li>\n<\/ol>\n\n\n\n<p>Je hebt de volgende onderdelen nodig:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Raspberry Pi Pico<\/li>\n\n\n\n<li>SSD1309 128x64px SPI OLED display (2,42\" display in 2:1 verhouding)<\/li>\n\n\n\n<li>Pi\u00ebzo zoemer<\/li>\n\n\n\n<li>Vijf knoppen<\/li>\n\n\n\n<li>Breadboard<\/li>\n\n\n\n<li>Startkabels<\/li>\n\n\n\n<li>Optioneel: 10 ohm weerstanden, elektrolytische condensator van minstens 10V en 220uF.<\/li>\n<\/ol>\n\n\n\n<p>Je hebt ook nodig <a href=\"https:\/\/github.com\/adafruit\/Adafruit_SSD1306\">Adafruit's SSD1306 bibliotheek<\/a>.<\/p>\n\n\n\n<p><strong>Zo sluit je het scherm aan:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GND -&gt; Display GND&nbsp;<\/li>\n\n\n\n<li>3V3(OUT) -&gt; Display VCC&nbsp;<\/li>\n\n\n\n<li>GP16 -&gt; Display DC (Data Command)&nbsp;<\/li>\n\n\n\n<li>GP17 -&gt; Weergave CS (Kanaalkeuze)&nbsp;<\/li>\n\n\n\n<li>GP18 -&gt; Display SCL (Klok)&nbsp;<\/li>\n\n\n\n<li>GP19 -&gt; Display SDA (MOSI)&nbsp;<\/li>\n\n\n\n<li>GP20 -&gt; Display RES (Reset)<\/li>\n<\/ul>\n\n\n\n<p><strong>En om de knoppen aan te sluiten:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GP15 -&gt; knop UP&nbsp;<\/li>\n\n\n\n<li>GP14 -&gt; knop DOWN&nbsp;<\/li>\n\n\n\n<li>GP13 -&gt; knop LINKS&nbsp;<\/li>\n\n\n\n<li>GP12 -&gt; knop RECHTS&nbsp;<\/li>\n\n\n\n<li>GP11 -&gt; knop BRAND (alle knoppen naar GND)<\/li>\n<\/ul>\n\n\n\n<p><strong>En om de pi\u00ebzo zoemer aan te sluiten:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GP10 -&gt; Buzzer(+)&nbsp;<\/li>\n\n\n\n<li>GND -&gt; Zoemer (-)<\/li>\n<\/ul>\n\n\n\n<p><strong>Software installatie:<\/strong><\/p>\n\n\n\n<p>Om de software te installeren moet je de Arduino IDE gebruiken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tamagotchi-achtig spel op de Raspberry Pi Pico (Pico-Tamachibi)<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/vq6-LhQ68o08Xgayc7U4roNHKcOCGtwxk8YL8nOnI33WP_yJlFjnxd2KDdtLgJn92vx2RRhSUb4Rn4OsP8vZNtQsmUjaUCUPc7JXmWvipgWewiXzSISGQ1qJWK8VtvT3lp1iypd3npcQzC4mL3NLTYhCAkGxXgpJoNYzBMsKEST4dSc4FeRU2Jqy3Q\" alt=\"\" style=\"width:727px;height:406px\" width=\"727\" height=\"406\"\/><\/figure>\n<\/div>\n\n\n<p>Waarom heet het Pico-Tamachibi?<\/p>\n\n\n\n<p>Volgens Kevin McAleer, de maker van dit apparaat, betekent \"tama\" \"ei\" en verwijst \"chibi\" naar afbeeldingen waarbij het personage een groot hoofd heeft.&nbsp;<\/p>\n\n\n\n<p>Het maken van de Tamachibi is eenvoudig omdat Kevin in zijn 90 minuten durende handleiding elke stap doorneemt.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"1280\" height=\"720\" src=\"https:\/\/www.youtube.com\/embed\/btG3Pd8ZlBw\" title=\"Virtuele huisdiercode in MicroPython op de Raspberry Pi Pico - Pico-Tamachibi\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"><\/iframe>\n\n\n\n<h2 class=\"wp-block-heading\">Bouw je eigen spelcomputer<\/h2>\n\n\n\n<p>Als je je eigen Raspberry Pi Pico spelcomputer wilt maken, zijn er twee algemene manieren waarop je dat kunt doen: een kant-en-klaar bouwpakket kopen of er zelf een bouwen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kant-en-klare kit vs DIY Raspberry Pi Pico gaming hardware<\/h2>\n\n\n\n<p>Hoewel het mogelijk is om vanaf nul te beginnen, wilt u misschien het gedoe van het opbouwen van uw eigen systeem overslaan en gewoon een kant-en-klaar pakket kopen.<\/p>\n\n\n\n<p>Er zijn een paar op de RP2040 gebaseerde kits waarmee je meteen kunt beginnen met het spelen of ontwikkelen van je eigen spellen.<\/p>\n\n\n\n<p>Laten we eens kijken naar het Pimoroni Picosysteem en het dan vergelijken met het proces om iets soortgelijks te bouwen met losse onderdelen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pimoroni Picosysteem<\/h2>\n\n\n\n<p>Laten we eens kijken naar het Pimoroni Picosysteem.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"451\" src=\"https:\/\/lh3.googleusercontent.com\/6X2vym5Y-3rckNiwIQlPQlGAso1RbIGb-n9hETg6DPjKQGijYEqkk8p_WKD0sSOm9AeMhyLWM9hfKjBZgGx0_YQRvYEWqaEyK0sRjr7urrC4KOcZdl8JXVkIHYJI0DZ8ysG6_MC7BiZRaP_5AJFq7i19PzHAgL0nba9lRg06jnhuWXp2adZgN6SCIQ\"><\/p>\n\n\n\n<p>Zoals je ziet is hij veel groter dan de Raspberry Pi Pico W, maar dat komt ook omdat hij onder meer een vierweg D-pad, vier knoppen, een LCD-scherm, een lithium-ion batterij, een pi\u00ebzospeaker en een USB-C poort heeft.<\/p>\n\n\n\n<p>Hij heeft dezelfde processor en RAM, want zowel het Picosysteem als de Pico gebruiken de RP2040-chip. Hier zijn de volledige specificaties:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aangedreven door RP2040 (Dual Arm Cortex M0+ met 264kB SRAM)<\/li>\n\n\n\n<li>16MB QSPI flash met ondersteuning voor XiP<\/li>\n\n\n\n<li>1,54\u2033 SPI IPS-kleurenscherm (240\u00d7240 en 120\u00d7120)<\/li>\n\n\n\n<li>D-pad en knoppen<\/li>\n\n\n\n<li>525mAh LiPo batterij (6 uur+)<\/li>\n\n\n\n<li>Piezo zoemer\/luidspreker<\/li>\n\n\n\n<li>Aan\/uit-knop<\/li>\n\n\n\n<li>RGB LED<\/li>\n\n\n\n<li>Programmeerbaar en oplaadbaar via USB-C (kabel niet inbegrepen)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Grafische modi<\/strong><\/h3>\n\n\n\n<p>PicoSystem ondersteunt twee grafische modi.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>240\u00d7240: de native resolutie van het LCD-scherm<\/li>\n\n\n\n<li>120\u00d7120: pixel verdubbeld modus (bespaart RAM)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Hoe ziet gamen op het Picosysteem eruit?<\/h3>\n\n\n\n<p>Gamen op de Picosystem is eenvoudig. Druk gewoon op de aan\/uit-knop en je wordt getrakteerd op het voorge\u00efnstalleerde spel Super Square Bros.<\/p>\n\n\n\n<p>Het spel is een eenvoudig platformspel, net als Mario.<\/p>\n\n\n\n<p>Pimoroni heeft ook andere spellen opgenomen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/scorpion-games-uk.itch.io\/super-square-bros\">Super Square Bros.<\/a> door Scorpion Games - Een stuiterende vierzijdige platformer <strong>(voorge\u00efnstalleerd spel)<\/strong><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Gadgetoid\/32blit-dots\/releases\">Stippen<\/a> - Dot popping puzzel. Maak ketens van twee of meer en race om de grootste score.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/32blit\/rocks-and-diamonds\/releases\">Stenen en diamanten<\/a> - Klassiek spel van rotsen ontwijken en diamanten pakken.<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_32blit-32blit-sdk-geometry.uf2?v=1633970589\">Geometrie<\/a> - Verpletter ruimtekeien met lasers om kleinere ruimtekeien te maken!<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_32blit-32blit-sdk-scrolly-tile.uf2?v=1633970589\">Rainbow Ascent<\/a> - De Dark Souls van procedureel gegenereerde verticale springpuzzels. Veel geluk.<\/li>\n\n\n\n<li><a href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0174\/1800\/files\/blit_v0.2.0_Daft-Freak-super-blit-kart.uf2?v=1634037972\">Super Blit Kart<\/a> door Daft_Freak - Een op \"Mode7\" gebaseerd racespel.<\/li>\n<\/ul>\n\n\n\n<p>Om deze spelletjes te installeren, doe je het volgende:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download het bestand.<\/li>\n\n\n\n<li>Sluit uw Picosystem aan op de PC<\/li>\n\n\n\n<li>Houd de X-toets ingedrukt en druk op de aan\/uit-toets.<\/li>\n\n\n\n<li>Het Picosysteem moet worden gemount als een station met de naam RPI-RP2<\/li>\n\n\n\n<li>Kopieer het gedownloade .uf2 bestand naar het station. Het zal automatisch laden.<\/li>\n<\/ul>\n\n\n\n<p>Om de een of andere reden werkte mijn USB-C naar USB-C kabel niet, maar de USB-A naar USB-C kabel werkte wel met het Picosysteem. Als u de rode LED niet ziet oplichten, probeer dan een andere kabel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Programmeer je eigen spelletjes<\/h3>\n\n\n\n<p>Het beste aan het Picosysteem is dat het een systeem biedt waarmee je je eigen spellen kunt maken.<\/p>\n\n\n\n<p>PicoSystem komt met een speciale API die u kan helpen bij het maken van uw spellen.<\/p>\n\n\n\n<p>Het neemt ook veel van het vervelende werk weg dat nodig is om afzonderlijke onderdelen te kopen, zoals een LCD-scherm, knoppen, jumperdraden, breadboard en dan het uitzoeken van de bibliotheken en pakketten die nodig zijn om dit alles werkend te krijgen.<\/p>\n\n\n\n<p>De API van het PicoSystem heeft functies voor het tekenen van dingen op het scherm, het uitvoeren van audio, hardwarefuncties en andere nutsfuncties. Dit maakt het makkelijker voor u om uw spel te bouwen.<\/p>\n\n\n\n<p>Net als de Raspberry Pi Pico kan het PicoSystem worden gecodeerd in C++ of MicroPython.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is het makkelijk om een spel te programmeren met het Picosysteem?<\/h3>\n\n\n\n<p>Ik raad je aan wat tijd en geduld te hebben om je eigen spel te bouwen met het Picosysteem.<\/p>\n\n\n\n<p>De documentatie biedt de basis om je op weg te helpen, maar het is het beste als je enige voorkennis hebt van het programmeren van spellen.<\/p>\n\n\n\n<p>De grootste uitdaging voor beginners is dat er niet veel bronnen zijn die je leren hoe je voorbeeldprojecten moet coderen. Hier is echter een lijst met referenties die je kunnen helpen:<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/micropython\">Picosystem MicroPython gids (in readme)<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/micropython\/examples\/picosystem\">Picosystem MicroPython voorbeelden<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\">Picosystem C++ Github<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/pimoroni\/picosystem\/tree\/main\/examples\">Picosysteem C++ voorbeelden<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/wiki.picosystem.com\/en\/c++\/cheatsheet\">Picosystem API cheatsheet, plus afbeelding, font converter<\/a> (op zijbalk)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DIY systeem: Het maken van de hardware<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.youmaketech.com\/raspberry-pi-pico-retrogaming-system\/\">YouMakeTech's gids<\/a> laat de lezer zien hoe je een complete spelcomputer maakt met een behuizing, een geluidssysteem en permanent solderen.<\/p>\n\n\n\n<p>Laten we ter vergelijking eens kijken hoeveel het kost om een doe-het-zelf toestel te bouwen tegenover het Picosystem, dat een compleet bouwpakket is.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><\/td><td>YMT's spelsysteem<\/td><td>Pimoroni Picosysteem<\/td><\/tr><tr><td>Zaak<\/td><td>Optioneel, 3D-geprint ($4,47 voor STL blauwdrukken, plus filament en huur\/gebruikskosten van de 3D-printer)<\/td><td>Inbegrepen<\/td><\/tr><tr><td>Raspberry Pi Pico<\/td><td>$5 voor Pico H omdat je de headers nodig hebt.<\/td><td>Inbegrepen<\/td><\/tr><tr><td><a href=\"https:\/\/buyzero.de\/products\/waveshare-9092-0-96inch-oled-gerade-vertikale-stiftleiste?_pos=2&amp;_sid=c5e379f04&amp;_ss=r\">OLED-scherm<\/a><\/td><td>$15 (0,96 inch scherm)<\/td><td>Inbegrepen<\/td><\/tr><tr><td>Knoppen<\/td><td>Verwaarloosbaar<\/td><td>Inbegrepen<\/td><\/tr><tr><td><a href=\"https:\/\/buyzero.de\/products\/breadboard-kit?variant=39481121374388\">Breadboard<\/a><\/td><td>$15 (breadboard kit)<\/td><td>Inbegrepen<\/td><\/tr><tr><td>Jumper draden<\/td><td>Inbegrepen in breadboard kit<\/td><td>Inbegrepen<\/td><\/tr><tr><td>Schroeven<\/td><td>Tot $1<\/td><td>Inbegrepen<\/td><\/tr><tr><td>Pi\u00ebzo<\/td><td>Verwaarloosbaar&nbsp;<\/td><td>Inbegrepen<\/td><\/tr><tr><td><strong>Totale kosten<\/strong><\/td><td>$40,47, exclusief 3D printkosten.<\/td><td>$70<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Laten we eens kijken naar de uiteindelijke kosten voor verschillende niveaus van doe-het-zelf-opstellingen:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Setup<\/strong><\/td><td><strong>Kosten<\/strong><\/td><\/tr><tr><td>Geen batterij.<\/td><td>$40,47 exclusief 3D printkosten<\/td><\/tr><tr><td>Lipo batterij<\/td><td>$8<\/td><\/tr><tr><td>Pimoroni Pico Lipo<\/td><td>$16.39 - $4 (aangezien we de Pimoroni Pico vervanger gebruiken, kunnen we de kosten van de Raspberry Pi Pico aftrekken).<\/td><\/tr><tr><td>Totaal voor een kit op batterijen<\/td><td>$60,86 excl. 3D printkosten<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Even een voorbehoud - YouMakeTech zegt dat je dit voor minder dan $20 kunt bouwen. Uit mijn onderzoek blijkt echter dat de kosten voor een doe-het-zelf set-up die overeenkomt met het Picosysteem niet echt veel verschillen, vooral als je de software en het gemak in aanmerking neemt.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/FiLN-p2QdPG59_fRj0q-0bH2W37KsnaaHC5IwHf2sFCsAe7iVU_zKNecqpcVLmjOeVC_ht3T5L_ONcPuC3eCODvHvYxar5mS-tnmf_wiJAi47JZfG0NV00NLMYN_U0k7k-89gxbynldhvCNXx-QSzlhDyD3qkOCBqTlTbXRNf0270w1j0LqTuXPE8A\" alt=\"\"\/><figcaption class=\"wp-element-caption\">YouMakeTech's prototype dat twee knoppen heeft, een scherm en Pong kan spelen<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Dat gezegd hebbende, de doe-het-zelf route is een geweldige leermogelijkheid. E\u00e9n ding dat me uitdaagde was het scherm. Terwijl het voorbeeld van YouMakeTech een I2C-verbinding gebruikt, gebruikte het scherm dat ik had een 4-pins SPI-interface. Dat vereist ofwel een andere codering of een aanpassing van de hardware om verder te gaan. Als je van uitdagingen houdt, is de DIY-route iets voor jou.<\/p>\n\n\n\n<p>Dus, wat zijn de voordelen van zelfbouw versus het Picosysteem?<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Voors en tegens<\/td><td>DIY<\/td><td>Picosysteem<\/td><\/tr><tr><td>Hardware montage<\/td><td>Je doet alles zelf.<\/td><td>Je doet niets.<\/td><\/tr><tr><td>Software<\/td><td>Niet veel hulp hier. Je doet alles zelf en leert hoe je elk onderdeel moet bedienen.<\/td><td>Je moet de API van Picosystem leren kennen<\/td><\/tr><tr><td>Leermogelijkheid<\/td><td>Grotere leermogelijkheid omdat je ongelijksoortige onderdelen samenvoegt.<\/td><td>Kleiner. Het is kant en klaar en software zal hier de grootste leermogelijkheid zijn.<\/td><\/tr><tr><td>Uitbreidbaarheid<\/td><td>Aangezien u het hebt gebouwd, kunt u het LCD-scherm veranderen, meer knoppen toevoegen, LED's toevoegen, enz.<\/td><td>Niet veel, tenzij je een compleet systeem uit elkaar wilt halen.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Het maken van het Pong-achtige spel op het Picosystem vs DIY systeem<\/h2>\n\n\n\n<p class=\"has-text-align-center\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"451\" src=\"https:\/\/lh3.googleusercontent.com\/RJq_cXB7E4foNOgagGJn3Dzcdlq3HwokXK7CgGKMkdkiGG7RNAdWhN0dKkejbY0GQiYaN9GGwxEQAv7Vv_SO9npoBi7pMIf3VSiKf_a_nfhBFkbJBzvFbWFcuEmMlf1XuvQHWvfm8YGU--7r4Vj1sI-X9ffH_z0OVY-ZhjuQLyhmCvHs0jHTlrg8Kg\"><\/p>\n\n\n\n<p>Een merkwaardig experiment van mij is om te begrijpen hoeveel moeite het kost om een spel te ontwikkelen met behulp van het Picosysteem versus het vanaf nul te doen.<\/p>\n\n\n\n<p>Om de twee systemen te vergelijken zal ik een Pong-achtig spel voor \u00e9\u00e9n speler bouwen op zowel het doe-het-zelf systeem van YouMakeTech als op het Picosysteem.<\/p>\n\n\n\n<p>Het uitgangspunt van het spel is eenvoudig. Het is een Pong-achtig spel voor \u00e9\u00e9n speler dat je 10 punten geeft telkens als je bal van de peddel stuitert. Als hij op de bodem van het scherm valt, krijg je een \"Game Over\" bericht.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"blob:https:\/\/picockpit.com\/fea315db-91fe-48eb-99ef-83129db07775\"><\/video><\/figure>\n\n\n\n<p>Het maken van het spel op beide systemen volgt een eenvoudige workflow die allemaal naar Thonny leidt.<\/p>\n\n\n\n<p>Je moet MicroPython flashen op de Pico en dan gebruik je Thonny om je programma te coderen.&nbsp;<\/p>\n\n\n\n<p>De MicroPython die u op het Picosystem zou flashen is anders dan het offici\u00eble MicroPython UF2-bestand, dus zorg ervoor dat u de juiste flasht, want het Picosystem zal draaien op de offici\u00eble MicroPython-uitgave. Het werkt alleen niet zoals bedoeld.<\/p>\n\n\n\n<p>Laten we nu eens kijken naar enkele fundamentele verschillen tussen de twee. Ik laat de spellogica hier buiten beschouwing en vergelijk alleen de verschillen in hardware-software interactie en programmeerpatronen.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/YouMakeTech\/PicoRetroGamingSystem\/blob\/main\/PicoPong.py\">U kunt de code van YouMakeTech hier bekijken.<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Eerste verschil: hardwarecode<\/h3>\n\n\n\n<p>Dingen zijn erg \"ruw\" met de DIY route. Hier is wat code om het display, GPIO en knoppen te initialiseren die je met het Picosysteem niet hoeft te doen:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"from machine import Pin, PWM, I2C,from ssd1306 import SSD1306_I2C\u2026# Buttonsup = Pin(2, Pin.IN, Pin.PULL_UP)down = Pin(3, Pin.IN, Pin.PULL_UP)left = Pin(4, Pin.IN, Pin.PULL_UP)right = Pin(5, Pin.IN, Pin.PULL_UP)button1 = Pin(6, Pin.IN, Pin.PULL_UP)button2 = Pin(7, Pin.IN, Pin.PULL_UP)# Buzzer connected to GP18buzzer = PWM(Pin(18))# OLED Screen connected to GP14 (SDA) and GP15 (SCL)i2c = machine.I2C(1, sda = Pin(14), scl = Pin(15), freq = 400000)oled = SSD1306_I2C(SCREEN_WIDTH, SCREEN_HEIGHT, i2c)\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopie\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">machine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">PWM<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">I2C<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">ssd1306<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">SSD1306_I2C<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">\u2026<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">Buttons<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">up<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(2<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">down<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(3<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">left<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(4<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">right<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(5<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">button1<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(6<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">button2<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(7<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">IN<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">PULL_UP<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">Buzzer<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">connected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP18<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">buzzer<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">PWM<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(18))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\"># <\/span><span style=\"color: #8FBCBB\">OLED<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">Screen<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">connected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP14<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #8FBCBB\">SDA<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #8FBCBB\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">GP15<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #8FBCBB\">SCL<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">i2c<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">machine<\/span><span style=\"color: #D8DEE9FF\">.<\/span><span style=\"color: #8FBCBB\">I2C<\/span><span style=\"color: #D8DEE9FF\">(1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">sda<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(14)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">scl<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">Pin<\/span><span style=\"color: #D8DEE9FF\">(15)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">freq<\/span><span style=\"color: #D8DEE9FF\"> = 400000)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8FBCBB\">oled<\/span><span style=\"color: #D8DEE9FF\"> = <\/span><span style=\"color: #8FBCBB\">SSD1306_I2C<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #8FBCBB\">SCREEN_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">SCREEN_HEIGHT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">i2c<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Tweede verschil: Picosystem's API<\/h3>\n\n\n\n<p>Als je code schrijft op het Picosysteem, moet je binnen zijn systeem schrijven.<\/p>\n\n\n\n<p>In het voorbeeld van YouMakeTech is alle spellogica ingekapseld in een <strong>terwijl True<\/strong> lus. Dit omvat knopinteractie, botsingsdetectie en tekenen op het scherm.<\/p>\n\n\n\n<p>In het Picosysteem moet je binnen drie functies schrijven - <strong>init(), update() <\/strong>en <strong>tekenen()<\/strong>.<\/p>\n\n\n\n<p>In mijn code is alle logica van het spel geschreven in <strong>update() <\/strong>inclusief botsingsbehandeling en D-pad interactie.<\/p>\n\n\n\n<p>In een eenvoudig Pong-spel zijn er een paar functies van de API die ik heb gebruikt om de dingen wat gemakkelijker te maken:<\/p>\n\n\n\n<p><strong>snijdt(x1, y1, w1, h1, x2, y2, w2, h2)&nbsp; <\/strong>is waarschijnlijk de grootste hulp hier. Je geeft de co\u00f6rdinaten en afmetingen van de twee rechthoeken door, en het resultaat is waar als er een snijpunt is. In dit geval zijn de twee rechthoeken de bal en de balk (ook wel peddel genoemd). De tekortkoming van de intersects() functie is dat deze niet detecteert aan welke kant de botsing plaatsvond, dus moest ik extra code schrijven om botsingen aan de kant van de staaf af te handelen.<\/p>\n\n\n\n<p>De API van het Picosysteem zal echt schitteren als je ingewikkelder spellen ontwikkelt, aangezien het al een methode heeft voor framebuffers, audio-uitvoer, blending, enz.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Code voor Pimoroni Picosysteem Pong-achtig spel<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#bar_pos_x = pixels from left, e.g. 0 from leftbar_pos_x = 50#bar_pos_y = pixels from top, e.g. 100px from topbar_pos_y = 100BAR_WIDTH = 30LENGTH_CONSTANT = 5ball_speed = 1ball_pos_x = 10ball_pos_y = 10ball_dx = 2ball_dy = 2score = 0game_over = Falsedef update(tick):        global bar_pos_x    global bar_pos_y    global ball_pos_x    global ball_pos_y    global ball_dx    global ball_dy    global ball_speed    global score    global game_over        def reverse_ball_dx():        global ball_dx        ball_dx = ball_dx * -1            def reverse_ball_dy():        global ball_dy        ball_dy = ball_dy * -1        ball_pos_x += ball_dx    ball_pos_y += ball_dy        if button(LEFT) and bar_pos_x &gt; 0:        bar_pos_x -= 1        if button(RIGHT) and bar_pos_x < 120 - BAR_WIDTH :        bar_pos_x += 1            if ball_pos_x <= 0 :        ball_pos_x = 0        reverse_ball_dx()            if ball_pos_x &gt;= 120 - LENGTH_CONSTANT :        ball_pos_x = 120 - LENGTH_CONSTANT        reverse_ball_dx()            if ball_pos_y &gt;= 120 - LENGTH_CONSTANT :        game_over = True            if ball_pos_y <= 0:        ball_pos_y = 0        reverse_ball_dy()            if intersects(bar_pos_x,bar_pos_y,BAR_WIDTH,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                reverse_ball_dy()        score += 10                #main intersection of ball and bar. if they intersect, check if they are intersecting on the sides.        #if not on sides (i.e. on top) reverse Y direction. Or else, reverse X direction.        if intersects(bar_pos_x,bar_pos_y,1,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                        #intersecting on left                        reverse_ball_dx()            ball_pos_x -= 2                    if intersects(bar_pos_x + BAR_WIDTH,bar_pos_y,1,LENGTH_CONSTANT, ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT):                        #intersecting on right                        reverse_ball_dx()            ball_pos_x += 2        def draw(tick):        if game_over:        pen(0,0,0)        clear()        pen(15,15,15)        text(&quot;Game Over&quot;, 35, 60)                    else:        pen(0, 0, 0)        clear()        pen(15,15,15)            #draw bar (paddle)        frect(bar_pos_x,bar_pos_y,BAR_WIDTH,LENGTH_CONSTANT)            #draw the ball        frect(ball_pos_x, ball_pos_y, LENGTH_CONSTANT,LENGTH_CONSTANT)        text(str(score), 80, 20)    start()\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Kopie\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code data-no-translation=\"\"><span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pixels<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">g<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">50<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">#<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">pixels<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">g<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> 100<\/span><span style=\"color: #D8DEE9\">px<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">100<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_speed<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">game_over<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">False<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">update<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">tick<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_speed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">score<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">game_over<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">global<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">*<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dx<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_dy<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">button<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">LEFT<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">button<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">RIGHT<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> BAR_WIDTH <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> :<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> LENGTH_CONSTANT <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&gt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">120<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\"> LENGTH_CONSTANT <\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">game_over<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">True<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">reverse_ball_dy<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">main<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersection<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">of<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bar<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">they<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersect<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">check<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">they<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">are<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">sides<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">not<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">sides<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">e<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">top<\/span><span style=\"color: #D8DEE9FF\">) <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Y<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">direction<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Or<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">reverse<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">direction<\/span><span style=\"color: #ECEFF4\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            #<\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">left<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">-=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">intersects<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            #<\/span><span style=\"color: #D8DEE9\">intersecting<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">on<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">right<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #88C0D0\">reverse_ball_dx<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">+=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9\">def<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">draw<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">tick<\/span><span style=\"color: #D8DEE9FF\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> game_over<\/span><span style=\"color: #ECEFF4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">text<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">Game Over<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">35<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">60<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">else<\/span><span style=\"color: #D8DEE9FF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">clear<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">pen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #B48EAD\">15<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">draw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">bar<\/span><span style=\"color: #D8DEE9FF\"> (<\/span><span style=\"color: #D8DEE9\">paddle<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">frect<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">bar_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">bar_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">BAR_WIDTH<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        #<\/span><span style=\"color: #D8DEE9\">draw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">frect<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">ball_pos_x<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">ball_pos_y<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9\">LENGTH_CONSTANT<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #88C0D0\">text<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #88C0D0\">str<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #D8DEE9\">score<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">80<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #D8DEE9FF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">start<\/span><span style=\"color: #D8DEE9FF\">()<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Heb je een spel om aan te bevelen?<\/h2>\n\n\n\n<p>Als je een spel hebt voor de Raspberry Pi Pico, laat dan hieronder een reactie achter met een URL.<\/p>\n\n\n\n<p>En als je onze Paragon Projects-serie wilt bekijken - ga dan naar <a href=\"https:\/\/picockpit.com\/raspberry-pi\/category\/paragon-projects\/\">hier<\/a>.<\/p>\n<div class=\"shariff shariff-align-center shariff-widget-align-left shariff-buttonstretch\"><ul class=\"shariff-buttons theme-white orientation-horizontal buttonsize-medium\"><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fnl%2Fgamen-op-de-raspberry-pi-pico%2F&text=Gaming%20on%20the%20Raspberry%20Pi%20Pico\" title=\"Delen op X\" aria-label=\"Delen op X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#000\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#000\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#000\">delen<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fnl%2Fgamen-op-de-raspberry-pi-pico%2F\" title=\"Delen op Facebook\" aria-label=\"Delen op Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#3b5998\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#3b5998\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#3b5998\">delen<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button telegram shariff-nocustomcolor\" style=\"background-color:#4084A6\"><a href=\"https:\/\/telegram.me\/share\/url?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fnl%2Fgamen-op-de-raspberry-pi-pico%2F&text=Gaming%20on%20the%20Raspberry%20Pi%20Pico\" title=\"Delen op Telegram\" aria-label=\"Delen op Telegram\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0088cc; color:#0088cc\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#0088cc\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 32 32\"><path fill=\"#0088cc\" d=\"M30.8 6.5l-4.5 21.4c-.3 1.5-1.2 1.9-2.5 1.2L16.9 24l-3.3 3.2c-.4.4-.7.7-1.4.7l.5-7L25.5 9.2c.6-.5-.1-.8-.9-.3l-15.8 10L2 16.7c-1.5-.5-1.5-1.5.3-2.2L28.9 4.3c1.3-.5 2.3.3 1.9 2.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#0088cc\">delen<\/span>&nbsp;<\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fpicockpit.com%2Fraspberry-pi%2Fnl%2Fgamen-op-de-raspberry-pi-pico%2F\" title=\"Delen op Reddit\" aria-label=\"Delen op Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#ff4500\" target=\"_blank\"><span class=\"shariff-icon\" style=\"fill:#ff4500\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><span class=\"shariff-text\" style=\"color:#ff4500\">delen<\/span>&nbsp;<\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>In deze post wil ik het hebben over gamen op de Raspberry Pi Pico. Ik herinner me mijn eerste dumbphone, die toen een \"telefoon\" werd genoemd. Het kon eenvoudige spelletjes spelen zoals Snake. Dat was het neusje van de zalm. Daarvoor moest je een aparte handheld bij je hebben die Tetris speelde of een meer dynamische...<\/p>","protected":false},"author":2,"featured_media":2946,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[525,528,510,527,187,526],"class_list":["post-2944","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi-pico","tag-gameboy","tag-picosystem","tag-pimoroni","tag-pong","tag-raspberry-pi","tag-tamagotchi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Gaming on the Raspberry Pi Pico | PiCockpit<\/title>\n<meta name=\"description\" content=\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/picockpit.com\/raspberry-pi\/nl\/gamen-op-de-raspberry-pi-pico\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gaming on the Raspberry Pi Pico | PiCockpit\" \/>\n<meta property=\"og:description\" content=\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/picockpit.com\/raspberry-pi\/nl\/gamen-op-de-raspberry-pi-pico\/\" \/>\n<meta property=\"og:site_name\" content=\"PiCockpit\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pi3gshop\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-17T11:44:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-23T10:43:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1778\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"raspi berry\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pi3g\" \/>\n<meta name=\"twitter:site\" content=\"@pi3g\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"raspi berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Verwachte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"},\"author\":{\"name\":\"raspi berry\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\"},\"headline\":\"Gaming on the Raspberry Pi Pico\",\"datePublished\":\"2022-09-17T11:44:21+00:00\",\"dateModified\":\"2023-08-23T10:43:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"},\"wordCount\":3348,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"keywords\":[\"Gameboy\",\"picosystem\",\"Pimoroni\",\"Pong\",\"Raspberry Pi\",\"Tamagotchi\"],\"articleSection\":[\"Raspberry Pi Pico\"],\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\",\"name\":\"Gaming on the Raspberry Pi Pico | PiCockpit\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"datePublished\":\"2022-09-17T11:44:21+00:00\",\"dateModified\":\"2023-08-23T10:43:28+00:00\",\"description\":\"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#primaryimage\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/featured-image.jpg\",\"width\":1778,\"height\":1000,\"caption\":\"games on raspberry pi pico\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/gaming-on-the-raspberry-pi-pico\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi Pico\",\"item\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/category\\\/raspberry-pi-pico\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gaming on the Raspberry Pi Pico\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#website\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"name\":\"PiCockpit\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#organization\",\"name\":\"PiCockpit.com\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"contentUrl\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/wp-content\\\/uploads\\\/2023\\\/07\\\/Screenshot-from-2023-07-24-15-01-24.png\",\"width\":1165,\"height\":283,\"caption\":\"PiCockpit.com\"},\"image\":{\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pi3gshop\",\"https:\\\/\\\/x.com\\\/pi3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/#\\\/schema\\\/person\\\/7af3a7a8c999bc722029ef9ca9d78eee\",\"name\":\"raspi berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g\",\"caption\":\"raspi berry\"},\"description\":\"I'm here to help you with all your Raspberry Pi related questions &amp; love to share about new project ideas for the Raspberry Pi, and give quick tips. Of course I'll also help you with PiCockpit and how to make your Raspberry Pi even easier to use with this raspberry pi monitoring solution :-)\",\"sameAs\":[\"https:\\\/\\\/picockpit.com\"],\"url\":\"https:\\\/\\\/picockpit.com\\\/raspberry-pi\\\/nl\\\/author\\\/raspi-berry\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gamen op de Raspberry Pi Pico | PiCockpit","description":"Gamen op de Raspberry Pi Pico is een geweldige manier om consoles te emuleren en is een geweldig platform om je eigen spellen te leren programmeren.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/picockpit.com\/raspberry-pi\/nl\/gamen-op-de-raspberry-pi-pico\/","og_locale":"nl_NL","og_type":"article","og_title":"Gaming on the Raspberry Pi Pico | PiCockpit","og_description":"Gaming on the Raspberry Pi Pico is an awesome way to emulate consoles and is a great platform to learn to program your own games.","og_url":"https:\/\/picockpit.com\/raspberry-pi\/nl\/gamen-op-de-raspberry-pi-pico\/","og_site_name":"PiCockpit","article_publisher":"https:\/\/www.facebook.com\/pi3gshop","article_published_time":"2022-09-17T11:44:21+00:00","article_modified_time":"2023-08-23T10:43:28+00:00","og_image":[{"width":1778,"height":1000,"url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","type":"image\/jpeg"}],"author":"raspi berry","twitter_card":"summary_large_image","twitter_creator":"@pi3g","twitter_site":"@pi3g","twitter_misc":{"Geschreven door":"raspi berry","Verwachte leestijd":"16 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#article","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"},"author":{"name":"raspi berry","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee"},"headline":"Gaming on the Raspberry Pi Pico","datePublished":"2022-09-17T11:44:21+00:00","dateModified":"2023-08-23T10:43:28+00:00","mainEntityOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"},"wordCount":3348,"commentCount":1,"publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","keywords":["Gameboy","picosystem","Pimoroni","Pong","Raspberry Pi","Tamagotchi"],"articleSection":["Raspberry Pi Pico"],"inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/","url":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/","name":"Gamen op de Raspberry Pi Pico | PiCockpit","isPartOf":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#website"},"primaryImageOfPage":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage"},"thumbnailUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","datePublished":"2022-09-17T11:44:21+00:00","dateModified":"2023-08-23T10:43:28+00:00","description":"Gamen op de Raspberry Pi Pico is een geweldige manier om consoles te emuleren en is een geweldig platform om je eigen spellen te leren programmeren.","breadcrumb":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#primaryimage","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2022\/09\/featured-image.jpg","width":1778,"height":1000,"caption":"games on raspberry pi pico"},{"@type":"BreadcrumbList","@id":"https:\/\/picockpit.com\/raspberry-pi\/gaming-on-the-raspberry-pi-pico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/picockpit.com\/raspberry-pi\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi Pico","item":"https:\/\/picockpit.com\/raspberry-pi\/category\/raspberry-pi-pico\/"},{"@type":"ListItem","position":3,"name":"Gaming on the Raspberry Pi Pico"}]},{"@type":"WebSite","@id":"https:\/\/picockpit.com\/raspberry-pi\/#website","url":"https:\/\/picockpit.com\/raspberry-pi\/","name":"PiCockpit","description":"","publisher":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/picockpit.com\/raspberry-pi\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/picockpit.com\/raspberry-pi\/#organization","name":"PiCockpit.com","url":"https:\/\/picockpit.com\/raspberry-pi\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/","url":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","contentUrl":"https:\/\/picockpit.com\/raspberry-pi\/wp-content\/uploads\/2023\/07\/Screenshot-from-2023-07-24-15-01-24.png","width":1165,"height":283,"caption":"PiCockpit.com"},"image":{"@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pi3gshop","https:\/\/x.com\/pi3g"]},{"@type":"Person","@id":"https:\/\/picockpit.com\/raspberry-pi\/#\/schema\/person\/7af3a7a8c999bc722029ef9ca9d78eee","name":"framboos","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c10c423ceeff34163dd54a5472d6da17d71c0e360e0cf8cdb8847006372f216b?s=96&d=blank&r=g","caption":"raspi berry"},"description":"Ik ben hier om u te helpen met al uw Raspberry Pi gerelateerde vragen &amp; deel graag over nieuwe projectidee\u00ebn voor de Raspberry Pi, en geef snelle tips. Natuurlijk help ik u ook met PiCockpit en hoe u uw Raspberry Pi nog makkelijker in gebruik kunt maken met deze raspberry pi monitoring oplossing :-)","sameAs":["https:\/\/picockpit.com"],"url":"https:\/\/picockpit.com\/raspberry-pi\/nl\/author\/raspi-berry\/"}]}},"_links":{"self":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/posts\/2944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/comments?post=2944"}],"version-history":[{"count":8,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/posts\/2944\/revisions"}],"predecessor-version":[{"id":4882,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/posts\/2944\/revisions\/4882"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/media\/2946"}],"wp:attachment":[{"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/media?parent=2944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/categories?post=2944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/picockpit.com\/raspberry-pi\/nl\/wp-json\/wp\/v2\/tags?post=2944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}