Haa! Tämä löytyi jostain vanhojen linkkien joukosta! Helmi!
Joskus tarvitaan kuvaa, jossa on sopivat värit, TinEye etsii värien mukaan sinulle sopivan CC-lisensoidun kuvan. Kuvassa on etsitty kuvia, joissa on keltaista 15% ja mustaa 85%.
TinEye is a reverse image search engine built by Idée. Give it an image and it will tell you where the image appears on the web.
Aloitetaan peliohjelmointi tutustumalla muutamaan ei niin perinteiseen ympäristöön, joilla voi ohjelmoida. Ensimmäisenä voisimme kokeilla ohjelmointia Logolla osoitteessa http://logo.twentygototen.org/. Logo on vanha ohjelmointikieli, jolla on helppo tehdä grafiikkaa (ja myös ensimmäisiä ohjelmointikieliä, mitä minä opin käyttämään).
Ohjelmointi vaatii peräkkäisten komentojen antamista. Komentojen antamista voi kokeilla pelaamalla Light Bot-peliä. Ohjelmoi robotti sytyttämään kaikki siniset ruudut.
Tunnin loppuajasta tutustumme Scratch-ympäristöön. Ohjelma löytyy verkkopalvelimelta, josta voit kopioida sen työpöydälle. Ohjeita Scratchin käyttöön löytyy vaikkapa Helsingin yliopiston sivuilta. Muutaman viikon aikana olisi tarkoitus käydä koko sivuston materiaali läpi ja saada aikaiseksi muutama sivuilla esitelty peli (ja tehdä niihin omia muutoksia).
Peliohjelmoinnin opettajan aarreaitta: Invent Your Own Computer Games with Python. Sivusto sisältää kaksi kirjaa, joissa kummassakin on satoja sivuja peliohjelmointikoodia. Lisäksi koodia selitetään amerikkalaiseen tyyliin hyvin perusteellisesti.
Noihin lähdekoodeihin muokkausten tekeminen on helppoa ja pelin tekeminen oman näköiseksi onnistuu helposti.
Kun vielä kun vielä käyttää Raspberry Pi Educational Manualin opasta Raspberry Pi:n käyttöön (opas sisältää kaiken oleellisen Raspberry Pi:stä, sen asentamisesta omien laitteiden tekoon asti), niin opettajan arki helpottuu 🙂
Mitä saadaan, kun yhdistetään peliohjelmointikurssi ja hieman aikaa? Oppilaat joutuvat tietenkin töihin. Mietin pari päivää sitten, että miten tehdään yksinkertainen labyrinttipeli. Tänään sitten aloin tutkimaan ja toteuttamaan sitä. Toiveena oli, että labyrintin luominen olisi yksinkertaista ja sen muokkaaminen helppoa. Yksinkertaisuuden vuoksi pohjan muodostaa ruudukko (tässä tapauksessa 13×8), jonka kokoa voi helposti muuttaa. Ruutukoko on 50×50 pikseliä. Pelin grafiikka on tarkoitettu opetustarkoitukseen. Pelin taustakuvana on myös opettavainen.
Lähdekoodi
# -*- coding: utf-8 -*-
import pygame
naytto = pygame.display.set_mode((650, 400))
pygame.display.set_caption("Laatikkopeli")
pygame.font.init()
fontti = pygame.font.Font(None,18)
sankari = pygame.image.load("sankari.png")
pois = pygame.image.load("exit.png")
laatikko = pygame.image.load("laatikko.png")
tausta = pygame.image.load("tausta.png")
def main():
elossa = True
sankarin_paikka = [1,1]
kartta = ["xxxxxxxxxxxxx",
"x x x",
"x xxxxxxx x",
"x x x",
"x x xxx xxx",
"x x x xxe",
"x x ",
"xxxxxxxxxxxxx"]
while elossa:
tapahtuma = pygame.event.poll()
if tapahtuma.type == pygame.QUIT:
elossa = False
if tapahtuma.type == pygame.KEYDOWN:
if tapahtuma.key == pygame.K_RIGHT:
if kartta[sankarin_paikka[1]][sankarin_paikka[0]+1] != "x":
sankarin_paikka[0] += 1
if tapahtuma.key == pygame.K_LEFT:
if kartta[sankarin_paikka[1]][sankarin_paikka[0]-1] != "x":
sankarin_paikka[0] -= 1
if tapahtuma.key == pygame.K_DOWN:
if kartta[sankarin_paikka[1]+1][sankarin_paikka[0]] != "x":
sankarin_paikka[1] += 1
if tapahtuma.key == pygame.K_UP:
if kartta[sankarin_paikka[1]-1][sankarin_paikka[0]] != "x":
sankarin_paikka[1] -= 1
naytto.blit(tausta, (0, 0))
korkeus = len(kartta)
leveys = len(kartta[0])
for y in range(korkeus):
for x in range(leveys):
if kartta[y][x] == "x":
naytto.blit(laatikko, (x*50, y*50))
if kartta[y][x] == "e":
naytto.blit(pois, (x*50, y*50))
naytto.blit(sankari, (sankarin_paikka[0]*50, sankarin_paikka[1]*50))
if kartta[sankarin_paikka[1]][sankarin_paikka[0]] == "e":
naytto.blit( fontti.render("JIPPII", True, (255,0,0)), (sankarin_paikka[0]*50, sankarin_paikka[1]*50-25))
pygame.display.flip()
main()
pygame.quit()
Tämä luo pelin, joka näyttää tältä
Lähdekoodissa on heikkouksia, siinä käytetään main()-metodia, mutta itse toiminnot on kirjoitettu perinteisesti lohkomuodossa. Esimerkki on siis huono, anteeksi.
Ohjelmoiminen, sinun todellakin pitäisi opetella sitä! Muutama vuosi takaperin ohjelmointikurssit olivat aika suosittuja, mutta niiden suosio on laskenut Nokian menestyksen myötä. Onneksi tilalle on tullut peliohjelmointi.
Törmäsin kuvasarjatuli-blogissa ohjelmaan nimeltä DSLR-controller (maksullinen) ja sen ilmaiseen pikkuveljeen DSLR-remote, joilla voi ohjata omaa kameraansa Android-laitteella. Maksullisella versiolla saa tehtyä timelapse-videoita (tai siis oikeastaan otettua tietyin ajanjaksoin kuvia) ja käytettyä laitteen näyttöä kameran etsimenä. Livekuva kameran näytöstä voisi olla joskus tarpeen, mutta timelapseen on tähän saakka riittänyt eBayn kautta Hong Kongista tilattu timer remote.
Vastaava ohjelma on myös remote release, mutta se vaatii itsetehdyn kaapelin. Luultavasti se ei ole vaikea tehdä, sillä olen tehnyt kaapelin 15v sitten vanhalle filmikameralleni (500N), joka toimi vielä 500D:lläkin 🙂
Seuraava sovellus on niin itsestään selvä, että melkein hävettää. Toisaalta yksi kaveri kyseli, että voiko Androidilla/iPadilla katsoa YLEn Areenaa/Ruutua tms. Kyllä voi, vaikkei laitteessa ole flash-tukea. Noille on omat sovelluksensa, Android-versiot tässä:
Joskus tulee tarve tulostaa kännykästä tai täppäristä jotain. Tai kotoa suoraan työpaikan tulostimelle (on muuten ihan kätevää), tai vaikka tulostaa kännykästä sähköpostin liitetiedosto työpaikan tulostimeen.
Tämä on helposti mahdollista Googlen Cloud Printin avulla. Asentaminen vaatii WebKitiä tukevan selaimen (Chrome tai Safari) tietokoneessa tai suoraan Cloud Printtiä tukeva tulostin (!!!). Asetuksissa määritellään, että tulostimet jaetaan Cloud Printin kautta. Voit antaa jopa kavereille oikeuden tulostaa tulostimillesi.
Kännykälle (Android ja iPhone) löytyy myös oma sovellus (kuten täppäreille) ja voit tulostaa sitten dokumentteja kännykästä jaettuihin tulostimiin.
Kannattaa tutustua!
Ladataan kommentteja...
By continuing to use the site, you agree to the use of cookies. more information
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.