Kazalo:
- Zaloge
- 1. korak: Skočite
- 2. korak: Priključitev blazinic
- 3. korak: fantastično sprožite svetlobo
- 4. korak: Začnite s kodiranjem
- 5. korak: Prilagajanje igre
- 6. korak: Sprememba kode za skok igralca
- 7. korak: Spreminjanje izhoda
- 8. korak: Deluje
- 9. korak: Priprava sobe
- 10. korak: Dokončano je
Video: Ustvarjanje fizičnega krmilnika iger: 10 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ko je bil predstavljen Nintendo Wii, so igralce spodbudili, ne le, da zapustijo kavč in skočijo, plešejo in se premikajo, da bi v svoji igri izbrali točke. Medtem ko za Wii obstaja strma krivulja učenja, je enostavno sestaviti napravo po meri, ki vam omogoča nadzor igre, tako da ob ustreznem času fizično skočite na pritisne blazinice.
To navodilo prikazuje, kako sem igro Space Space Bounce (ki jo je mogoče predvajati v živo na https://marquisdegeek.com/spacebounce/ z virom na https://github.com/MarquisdeGeek/SpaceBounce) prilagodil uporabi fizičnega krmilnika.
Zaloge
- Arduino
- Dve tlačni podlogi (moja sta bili iz Maplina
- Dva upora za tlačno podlogo (100 K, vendar je večina v redu)
- Dve LED (neobvezno)
- Dva upora za LED (100 K, vendar je večina v redu. Tudi neobvezno)
- Prenosni računalnik
1. korak: Skočite
Začel sem z oblikovanjem skakalnega vmesnika in po pregledu igre spoznal, da bi dve preprogi najbolje izrazili njeno osnovno idejo. To pomeni, da stojite na levi preprogi, da simulirate občutek držanja leve stene in v primernem trenutku skočite čez desno preprogo, vaš lik na zaslonu pa bi naredil enako.
2. korak: Priključitev blazinic
Tako sem kupil dve preprogi in se lotil dela. Tu prikazane tlačne preproge so najpreprostejše (in najcenejše!), Ki sem jih našel, in sicer po 10 funtov. Imajo štiri žice, od katerih dve delujeta kot preprosto stikalo: ko stojiš na preprogi, se vzpostavi povezava, in ko skočiš, se prekine. To sem napajal v Arduino s tem osnovnim vezjem.
3. korak: fantastično sprožite svetlobo
Uspelo je, vendar ni bilo zelo navdihujoče. Zato sem dodal nekaj LED, ki označujejo stanje vsake tlačne preproge.
LED diode za igro niso potrebne, vendar sem z dodajanjem v vezje zlahka videl, kakšno je trenutno stanje vezja. Če se torej igra ne bi pravilno odzvala, bi lahko ugotovil, ali je težava v vezju, programski opremi Arduino ali logiki igre.
4. korak: Začnite s kodiranjem
Glede na to, da je bila prvotna igra v JavaScriptu, sem se odločil, da napišem program NodeJS, ki posluša spremembe stanja pritisne preproge in podatke pošlje odjemalcu igre prek spletnih vtičnic.
Najprej namestite standardno firmo na svoj Arduino, da bomo lahko v računalniku zagnali strežnik Node in s knjižnico Johnny Five poslušali spremembe stanja iz Arduina. Nato dodajte Express, da prikažete vsebino igre.
Celotna koda strežnika izgleda tako:
const express = zahteva ('ekspresno');
const app = express (); const http = require ('http'); strežnik const = http.createServer (aplikacija); const io = require ('socket.io'). listen (strežnik); const arduino = require ('arduino-controller'); server.listen (3000, function () {console.log ('Ekspresno poslušanje strežnika …');}); app.use ('/', express.static ('app')); const five = require ("johnny-five"); const board = novih pet. Board ({repl: false}); board.on ("ready", function () {pusti zeleno = novih pet. Led (5); naj rdeče = novih pet. Led (6); levo = novih pet. Pin (2); naj bo desno = novih pet. Pin (3); io.on ('connect', function (socket) {console.log ('We are connected!'); Naj lastLeft = false; naj lastRight = false; pet. Pin.read (levo, (err, val) => {if (val) {green.on ();} else {green.off ();} if (val! == lastLeft) {lastLeft = val; let state = {side: 'left', stanje: val? 'dol': 'gor'} socket.emit ('arduino:: stanje', JSON.stringify (stanje), {za: 'vsi'});}}) pet. Pin.read (desno, (err, val) => {if (val) {red.on ();} else {red.off ();} // if (val! == lastRight) {lastRight = val; let state = {side: 'desno', stanje: val? 'dol': 'gor'} socket.emit ('arduino:: stanje', JSON.stringify (stanje), {za: 'vsi'});}})}); });
In teče z:
vozlišče server.js
5. korak: Prilagajanje igre
Prva težava je bil vmesnik; kako "klikneš" na gumb za predvajanje, ko lahko le skočiš? To sem rešil z odstranitvijo vseh drugih gumbov! Preostali gumb lahko nato sprožim, ko igralec skoči, tako da prisluhnem dogodku "navzgor".
vtičnica = io (); socket.on ('arduino:: stanje', funkcija (msg) {let data = JSON.parse (msg); if (data.state === 'gor') {// skačemo!}});
Od tu sem lahko vstopil v igro in uporabil blazinice za nekaj bolj zabavnega - samo igro.
6. korak: Sprememba kode za skok igralca
Tokrat bi se moral ukvarjati z vsako blazinico posebej in narediti, da lik začne skakati vsakič, ko igralčeva noga zapusti ploščico. Čas, ko lik na zaslonu prečka rudniški jašek, je daljši od časa, ko igralec skoči z ene strani na stran. To je dobro, saj igralcu daje možnost, da si povrne ravnotežje, preveri svojo podlago in opazuje, kako igralec konča skok na zaslonu. Če ne bi bilo tako, bi igralca upočasnil.
vtičnica = io ();
socket.on ('arduino:: stanje', funkcija (sporočilo) {
naj bodo podatki = JSON.parse (msg); if (data.side === 'left' && data.state === 'up') {// skočimo z leve strani}});
7. korak: Spreminjanje izhoda
Ko je vhodni mehanizem deloval, sem moral delati na izhodu. Igra se dobro igra na tabličnem računalniku ali telefonu, ker zapolni zaslon. Ko pa skačete naokoli, je premajhen, da bi ga videli, zato je treba območje za igranje na zaslonu povečati. Veliko!
Na žalost je povečanje vseh grafičnih sredstev zelo dolgotrajno opravilo. Torej, prevaral sem! Ker igri ni treba razumeti položaja X, Y klika miške ali dogodka na dotik, lahko preprosto znova prilagodim celotno platno!
To je vključevalo vdor v CSS in JavaScript, tako da se obstoječi objekt platna HTML5 izvaja na celozaslonskem načinu.
Poleg tega se igra v pokončnem načinu, kar pomeni, da kar najbolje izkoristimo nepremičnine na zaslonu, ki smo jih potrebovali za zasuk platna za 90 stopinj.
#SGXCanvas {
položaj: absolutno; z-indeks: 0; pretvori: vrti (-90 stopinj); transform-origin: zgoraj desno; širina: avto; }
8. korak: Deluje
Za prvo igro sem nagnil prenosnik na bok in se igral tako.
9. korak: Priprava sobe
Izdelava fizičnega krmilnika je le začetek potovanja, ne konec. Upoštevati je treba preostali fizični prostor.
Najprej so se tlačne preproge premikale po tleh, ko ste pristali nanje. To je bilo enostavno popraviti z nekaj dvostranskimi lepljivimi blazinicami. Delujejo dobro, vendar verjetno ne bi zdržali veliko obrabe.
Nato je prenosnik videti nekoliko neumno, kar vas odvrne od same igre. Tako so si televizijo iz salona "sposodili" in jo odnesli v lokalni MakerSpace, kjer so jo postavili ob steno in jo povezali.
V prihodnosti bi bilo lepo dodati odtise na tlačne preproge (morda prvi odtis lune Neila Armstronga!) Za vodenje igralca. Tudi boljše ohišje in ohišje za televizor bi dodalo občutek. Morda bi lahko tisti, ki imate veliko časa in prostora, naredili steno iz papirja, postavljeno na obeh straneh preprog, da bi posnemali klaustrofobični občutek padca po rudniškem jašku!
10. korak: Dokončano je
In tukaj imate. Enostaven dnevni projekt, ki izboljša prvotno igro in vas ohranja v formi med igranjem!
Uporabite lahko tudi Makey Makey, ki neposredno simulira pritiske na tipke, uporabljene v prvotni igri, da zmanjšate del tega dela. A to bralcu ostane kot vaja:)
Vsa koda je v posebni veji repo Space Bounce:
Priporočena:
Ustvarjanje praskastih iger (FNaF): 4 koraki
Izdelava praskarskih iger (FNaF): I, eevee1tree. BOM VAM POKAZAL, kako narediti igro FNaF na SCRATCH !!! Če ne poznate Scratch, je to spletno mesto za programiranje, na katerem lahko izdelujete igre, animacije, umetnost, s tem pa lahko naredimo igre, kot je današnja tema, igro FNaF
Preslikava krmilnika računalniških iger (Linux in Windows): 5 korakov
PC Game Controller Mapping (Linux in Windows): Če ste začeli na področju iger na srečo na osebni računalnik, lahko še nekaj korakov, da sprejmejo v pridobivanje tam. Danes vam bom brezplačno pokazal, kako uporabljati krmilnik za igre USB tudi z najstarejšimi računalniškimi igrami. Tehnika
Ustvarjanje alternativnega MIDI krmilnika z uporabo Makey-Makey in vode: 6 korakov
Ustvarjanje alternativnega MIDI krmilnika z uporabo Makey-Makey in vode: Uporaba Makey-Makeyja za ustvarjanje po meri in ustvarjalnih vnosov je neverjetno enostavna! Medtem ko mnogi ljudje, ki uporabljajo strojno opremo, ustvarijo svoj instrument z uporabo vhodov na Makey-Makeyju za sprožitev zvokov ali not, smo se odločili, da bi lahko naredili še več.
Ionsko hlajen sistem za vaš strežnik iger Raspberry Pi!: 9 korakov (s slikami)
Ionsko hlajen sistem za vaš strežnik iger Raspberry Pi!: Pozdravljeni! Pred časom sem dobil Raspberry Pi, vendar nisem vedel, kaj naj naredim z njim. V zadnjem času je Minecraft spet prišel v priljubljenost, zato sem se odločil, da bom zase in svoje prijatelje nastavil strežnik Minecraft. No, izkazalo se je, da sem samo jaz:
Ustvarjanje dela zabavno: Nastavitev krmilnika Xbox za Autodesk Inventor: 6 korakov
Ustvarjanje dela zabavno: Nastavitev krmilnika Xbox za Autodesk Inventor: Torej. Najprej IMAM NAJBOLJŠEGA ŠEFA NA ZEMLJI, ker mi je dovolil, da v službo pripeljem krmilnik XBOX. Naš oddelek za IT in vodja inženiringa sta mi dali v redu, dokler sem ga uporabljal za delo. Torej, tukaj je, kako nastaviti krmilnik igre za delo z Autodeskom