Machinarium
Legutóbb a World of Goo c. logikai játékról írtam. Most ismét egy egy egyszerű ámde annál izgalmasabb játékot találtam. A címe: Machinarium. Semmi extra nincs a játékban, minimális logikai érzék kell hozzá, de nem is ez a lényeg, hanem a hangulata.
A játékban egy kis robotot kell irányítanunk, point-and-click stílusban. A kis robot a játék kezdetén egy roncstelepre kerül darabokban, ahol először is össze kell állítanunk a darabjaiból. A kis bádogdobozunkat nagyon nemes cél hajtja vagyis, hogy megakadályozza a gonosz robotok hatalomátvételét a város felett.
A játék egyik érdekessége, hogy flash-ben íródott.
Nekem nagyon bejött, remélem másnak is tetszik.
Ízelítőnek itt egy kis YouTube videó:
jQuery, Ajax, JSON és PHP
Ajax kérésekhez legtöbbször jQuery-t használok, mert egyszerű, gyorsan elkészíthető és megbízható.
Most gyorsan felvázolnám, hogyan is kell egy egyszerűbb Ajax kérést összedobni jQuery segítségével.
Szerveroldal (PHP):
Ha egyszerű szöveges üzenetet szeretnénk küldeni a kliensoldalra, akkor egy sima echo utasításra lesz szükség.
pl.:
<?php echo "foobar"; ?>
Ha összetett adatstruktúrát szeretnénk küldeni a kliensoldalra, akkor JSON objektumként küldjük azt.
pl.:
<?php $response = array(); $response['foo'] = 'foo'; $response['bar'] = 'bar'; $response['baz'] = 'buz'; echo json_encode($response); ?>
Kliensoldal (JavaScript):
Egyszerű szöveges üzenet esetén a JavaScript kód a következő:
$.ajax({
// szerveroldali szkript elérési útja
url: "server.php",
type: "GET",
// típus és kódolás
contentType: "application/text; charset=utf-8",
// paraméterek
data: ({
foo: foo_,
bar: bar_,
buz: buz_
}),
// kommunikációs adattípus
dataType: "text",
beforeSend: function(x) {
if (x & amp; & amp; x.overrideMimeType) {
x.overrideMimeType("application/text;charset=UTF-8");
}
// kiíratunk egy animált ajax-loader GIF-et amíg a kérés tart
$('#myDiv').html("<div id="ajax_gif ">);
$('#myDiv').append("<img />")
$('#myDiv').append("</div>");
},
success: function(data){
$('#myDiv').html(data); // foobar
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// ha gond van kiíratjuk a hibát
alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
}
});
JSON adatszerkezet esetén a JavaScript kód a következő:
var _foo = "foo", _bar = "bar", _buz = "buz";
$.ajax({
// szerveroldali szkript elérési útja
url: "server.php",
type: "GET",
// típus és kódolás
contentType: "application/j-son; charset=utf-8",
// paraméterek
data: ({
foo: foo_,
bar: bar_,
buz: buz_
}),
// kommunikációs adattípus
dataType: "json",
beforeSend: function(x) {
if (x & amp; & amp; x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
// kiíratunk egy animált ajax-loader GIF-et amíg a kérés tart
$('#myDiv').html("<div id="ajax_gif ">);
$('#myDiv').append("<img />")
$('#myDiv').append("</div>");
},
success: function(data){
// a kapott adatokkal már azt teszünk amit akarunk, pl.kiíratjuk egy DIV - be
$('#myDiv').html(data.foo + ''); // foo_resp
$('#myDiv').append(data.bar + ''); // bar_resp
$('#myDiv').append(data.buz); // buz_resp
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// ha gond van kiíratjuk a hibát
alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
}
});
A második esetben a GET tömbben küldött adatokkal dolgozunk a szerveroldalon.
Opció választás select tag-ben érték alapján
Legördülő menüben (SELECT) egy adott sor (OPTION) kiválasztás index alapján pofonegyszerű.
Ha adott a következő menüfelépítés,
<select id="select_menu"> <option value="hu">Hungarian</option> <option value="ge">German</option> <option value="en">English</option> </select>
akkor a következő kódsor az en értékű sort választja ki:
document.getElementById('select_menu').selectedIndex = 2;
Kicsit trükkösebb megoldásra van szükség akkor, ha a érték szerint szeretnénk a legördülő menü egyik elemét aktuálisan kiválasztottá tenni.
Egy ciklussal végigmegyünk a menü elemein és ha megtaláljuk a megfelelő értékű elemet akkor a hozzá tartozó index alapján kiválasztjuk aktuális elemnek.
Íme a szükséges kód:
var menu = document.getElementById('select_menu');
for(var i = 0; i < menu.options.length; i++){
if(menu.options[i].value == "en"){
menu.selectedIndex = i;
}
}
Helyzetjelentés…
Elég régen nem írtam már értelmes bejegyzést a blogba, ennek főként az az oka, hogy rengeteg tennivalóm akadt. Persze az igazsághoz az is hozzá tartozik, hogy sem kedvem sem energiám nem volt akár csak egy néhány soros posztot is írni. Egyszóval lusta is voltam… :)
Az elmúlt néhány hónap tanulással és kapkodással telt. Utolsó félévemet töltöttem a BSc képzésben, ezért alkotnom kellett valami f@sza kis szakdolgozatot. Emellett két nehezebb tárgyam is maradt pont erre a kapkodós időszakra, szóval eléggé húzósra sikerült a vége.
Végül minden jól alakult, leadhattam az indexemet.
A védés nem volt gáz, persze azért egy kis készülődés meg para volt előtte, de azt hiszem ez így volt természetes. Az államvizsgától már jobban tartottam, de szerencsére az is jól sikerült és így az utolsó akadályt is sikerült elhárítanom a diploma felé vezető úton.
A héten lesz diplomaosztó, végre diplomás ember leszek. Örülnöm kéne, de valahogy már nem tudok. :) Fárasztó volt az út idáig, és azt hiszem szükségem lesz egy kis nyugalomra és pihenésre.
Sokat gondolkodtam azon, hogy mihez is kezdek majd a diploma megszerzése után.
Most úgy tervezem, hogy még maradok és megszerzem az MSc diplomát, ami további négy szemesztert vagyis két évet jelentene. Megfordult már a fejemben az is, hogy hagyom a francba az egészet, és elmegyek dolgozni. Igazából még nem döntöttem el véglegesen melyik utat választom majd. Az MSc folytatásának lehetősége nem csak rajtam múlik. Munkahelyet a környéken nem könnyű találni, valószínűleg Pestre kellene költözni, amitől kissé még idegenkedek. Esetleg külföldön szerencsét próbálni, amihez talán még több kedvem is lenne.
Mivel anno német nyelvvizsgával a zsebemben érkeztem az egyetemre, nem volt túl sok motiváció ahhoz, hogy továbbfejlesszem szegényes angol nyelvtudásomat. Persze sokat tanultam az egyetem alatt, különböző megbízások, munkák miatt. Egy ideig jártam is magántanárhoz ill. egy kisebb csoportos oktatásra is, de mindkettő félbeszakadt különböző okok miatt.
Most, hogy “kicsit több” időm maradt, újra komoly késztetést éreztem magamban a nyelvtanulásra. Egyrészt nagyon fontos az angol a szakmámhoz, másrészt mindig is érdekelt a nyelvtanulás, és sohasem éreztem kényszernek.
Szóval gyorsan kerestem valami jó és nem túl drága tanfolyamot és beiratkoztam. Már túl vagyok a harmadik alkalmon, és azt hiszem jó tanfolyamot választottam.
Az angol mellett még van egy kis melóm amit nagyjából a hónap végére be akarok fejezni.
Ja tényleg, megvettem életem első notebookját (lehet, már említettem korábban), amivel kapcsolatban még nem írtam meg a megígért posztot, de ami késik nem múlik. :)
Nem szoktam hosszú bejegyzéseket írni, úgyhogy egyrészt ezért is hagyom itt abba. Másrészt meg azért, mert pillanatnyilag nem jut eszembe semmi más… :D
Aki idáig eljutott az olvasásban annak köszönöm a türelmet. :D
Remélem hamarosan újra tudok valami hasznos poszttal jelentkezni…
Egy kis retro C64
Mennyit toltam én ezzel gyerekkoromban… :) Imádtam a beteg zenéjét :)





