{"id":17874370,"url":"https://github.com/modprog/excaliburtutorial","last_synced_at":"2026-01-30T06:36:23.588Z","repository":{"id":39478781,"uuid":"195516755","full_name":"ModProg/ExcaliburTutorial","owner":"ModProg","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-07T07:32:21.000Z","size":1673,"stargazers_count":0,"open_issues_count":20,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-13T06:07:38.745Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ModProg.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-06T08:32:12.000Z","updated_at":"2019-11-07T12:51:27.000Z","dependencies_parsed_at":"2023-02-06T14:45:46.923Z","dependency_job_id":null,"html_url":"https://github.com/ModProg/ExcaliburTutorial","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ModProg/ExcaliburTutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2FExcaliburTutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2FExcaliburTutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2FExcaliburTutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2FExcaliburTutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ModProg","download_url":"https://codeload.github.com/ModProg/ExcaliburTutorial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ModProg%2FExcaliburTutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28906672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T04:02:34.702Z","status":"ssl_error","status_checked_at":"2026-01-30T04:02:33.562Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T11:08:43.220Z","updated_at":"2026-01-30T06:36:23.569Z","avatar_url":"https://github.com/ModProg.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Einrichten\n\nMoin Kinner’s, wir nutzen jetzt Excalibur mir TypeScript und WebPack.\n\n## Downloads\n\nLadet das Projekt von GitHub herrunter: https://github.com/ModProg/ExcaliburTutorial/releases/tag/0\n\nFür dieses Projekt braucht ihr NodeJS und NPM, wenn ihr dies noch nicht installiert habt, könnt ihr der Anleitung auf der [Website](https://nodejs.org/de/) von NodeJS folgen.\n\n### Windows \n\nLadet einfach einen der Installer auf der NodeJS Website herrunter und installiert ihn. Dabei könnt ihr alle Einstellungen so lassen, wie sie sind.\n\n### Linux\n\nNodeJS sollte in den offiziellen Paketquellen vorhanden sein, sich also mit `sudo apt install nodejs npm` unter [Debian/Ubuntu](https://wiki.ubuntuusers.de/Node.js/) und mit `sudo pacman -S nodejs npm` unter [Arch/Manjaro](https://wiki.archlinux.org/index.php/Node.js)\n\n### Editor\nAls Editor benutze ich VSCode, ihr könnt aber auch jeden anderen Texteditor benutzen, VSCode könnt ihr hier herrunterladen:\n\nhttps://code.visualstudio.com/download\n\nHilfe findet ihr für [Debian/Ubuntu](https://wiki.ubuntuusers.de/Visual_Studio_Code/) und [Arch/Manjaro](https://wiki.archlinux.org/index.php/Visual_Studio_Code)\n\n## Projekt öffnen\n\nNachdem ihr alles herruntergeladen und installiert habt, öffnet den Ordner, in den ihr das Projekt extrahiert/herruntergeladen habt, und öffnet dort das Terminal/CMD/Powershell\n\n### Windows\n\nEntweder `⇧ + Rechte Maustaste` im Dateiexplorer oder ihr gebt `cmd` im Start Menü ein und wechselt dann mit `cd \"c:/path/to/folder\"` zu dem Ordner, in dem ihr das Projekt habt. \n\n\u003e Wenn der Ordner auf einer anderen Partition liegt, wechselt einfach mit `d:`, `e:`, etc.\n\n### Linux\n\nWenn euer Dateiexplorer im Kontextmenü einen Eintrag `Terminal` hat, könnt ihr direkt das Terminal im richtigen Ordner öffnen, alternativ könnt ihr z. B. mit `Strg+Alt+T` das Terminal öffnen und manuel mit `cd \"path/to/folder\"` zum Projekt navigieren.\n\nIm geöffneten Terminal könnt ihr jetzt `npm install` zum Installieren der nötigen Abhängigkeiten ausführen und anschließend `npm run dev` zum Starten der Anwendung. \n\n\u003e Wenn es zu Fehlern kommt überprüft noch mal, ob ihr euch auch in dem richtigen Ordner befindet.\n\nIm Idealfall öffnet sich jetzt euer Standard Browser und ihr seht einen blauen Hintergrund, wenn nicht, öffnet `http://localhost:8080/` in einem Browser eurer Wahl.\n\n# Der erste Code\n\nAller relevante Programmcode liegt zurzeit in einer Datei: `src/index.ts` dies ist sozusagen die Wurzel eures Spiels. \n\nDie erste Zeile lädt das Modul `excalibur` und stellt es als `ex` zur Verfügung.\n\n```typescript\nimport * as ex from 'excalibur';\n```\n\nAnschließend nutzen wir `ex`, um unsere Spielinstanz zu generieren, was es sich damit auf sich hat, werden wir später noch sehen.\n\n```typescript\nvar game = new ex.Engine({\n  // Stellt den Darstellungsmodus auf Fullscreen\n  displayMode:ex.DisplayMode.FullScreen\n})\n```\n\nDie letzte Zeile startet dann das Spiel\n\n```typescript\ngame.start()\n```\n\n## Erste eigene Zeile Code\n\nUm beispielsweise die Hintergrundfarbe zu ändern, können wir einfach die Zeile\n\n```typescript\ngame.backgroundColor = ex.Color.Red;\n```\n\nvor `game.start()` hinzufügen.\n\nBei der Verwendung eines Editors wie VSCode kann man oft vervollständigungen Anzeigen, in dem man z. B. `Strg + Leertaste` drückt. Wenn wir `Red` entfernen und dann hinter dem Punkt die Vorschläge mit `Strg + Leertaste` anzeigen, sehen wir auf einen Blick alle möglichen Farben, ohne jedes Mal in der Dokumentation nachschauen zu müssen, wenn wir so `Red` ersetzen könnten wir auch eigene Farben erzeugen mit\n\n```typescript\ngame.backgroundColor = ex.Color.fromRGB(0,150,100);\n```\n\nWobei 0, 150 und 100 für wie rot, grün und blau die Farbe ist stehen, und dabei Werte von 0 bis 255 annehmen können.\n\n## Hello World\n\nNun wollen wir der Welt mitteilen, dass wir Excalibur bedienen können. Dafür fügen wir unser erstes Object, einen `Actor` in unser Spiel hinzu.\n\nVor `game.start()` fügen wir \n```typescript\nvar helloWorld=new ex.Label(\"Hello World!\",200,200);\n```\nhinzu. Damit haben wir schonmal Text. Mit\n\n```typescript\ngame.add(helloWorld);\n```\n\npacken wir den jetzt auch ins Spiel, nur ist er noch recht klein. Die Größe kann dann mit\n\n```typescript\nhelloWorld.fontsize=100;\n```\n\nangepasst werden.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodprog%2Fexcaliburtutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodprog%2Fexcaliburtutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodprog%2Fexcaliburtutorial/lists"}