esmaspäev, juuni 11, 2012

Esmaspäev

Bloggeri templated võiks paremad olla. Näiteks on minu omal suht nõme footer, mis lühikese postituse korral keset ekraani vahib. Alati all oleks palju ilusam, tegelikult saaks ma selle viie minutiga ära muuta, aga ei taha. Parem kirjutan sellest oma blogis.
Programmeerin hetkel True Fliesi ja tuleb taaskord nentida, et programmeerimine ei ole mu lemmiktegevus. Või noh, kindlasti meeldib see mulle rohkem kui ehitada või olla müügijuht või üksikisa, aga ainult arhitektuuri ning disainiga meeldiks palju rohkem tegeleda. Aga mis sa teed, blokaadiajal söödi püksirihmad ja vahel ka teised inimesed ära, mis see uute keelte õppimine siis ära ei ole - #EsimeseMaailmaMure.
Katsun selle nädala jooksul True Fliesi kogu mänguloogika paikka saada ning enda poolt valminuks lugeda. Edasi ei teagi, mis serveriosast saab. Kui keegi peaks juhtuma seda blogi lugema ning tunneb asja vastu huvi, siis võiks kindlasti midagi välja mõelda.

Täna tegin lõpliku keele liikumise ära. Põhimõtteliselt on kõige lihtsamad lahendused alati parimad, sest viimases versioonis olev funktsioon on pea neli korda lühem kui esialgne. All olev kood liigutab karakteri keelt. Esimene event aktiveerub kui nutitelefonil näpp karakteri keelele panna ning seda tõmmates liigub kuhu vaja, teine event hoiab keelt paigal kuni näpp on ekraanil ning kolmas tõmbab keele tagasi karakteri suhu. Viimane osa võiks ka dünaamiline olla, aga kuna karakterit ennast liigutada ei saa, siis on täpsete numbritega algpunkt lihtsam.

    function dragTongue(event)
   
        if event.phase == "began" then
            moveX = event.x - charTongue.x
            moveY = event.y - charTongue.y
        elseif event.phase == "moved" then
            charTongue.x = event.x - moveX
            charTongue.y = event.y - moveY
        elseif event.phase == "ended" then
            charTongue.x = 240
            charTongue.y = 250        
        end 


Järgmisena panen pool randomiga itemid langema ning lisan osadele sitikatele nn. Browni liikumise. Õnneks on mul kunagi juba taoline asi ka tehtud, aga ActioScriptis (idee raamatust Game Design with Flash). Lua-s võiks olla midagi sellist:

function bugBrownies()
          
            //Browni liikumine
            bug.vx += (Math.random() * 0.2 - 0.1) * 15
            bug.vy += (Math.random() * 0.2 -0.1 ) * 15           
 

            //h66rdumine
            bug.vx *= 0.95
            bug.vy *= 0.95
           
            //liikumine
            bug.x += bug.vx
            bug.y += bug.vy
           
            //ekraani ääred
            if (bug.x > stage.stageWidth)
                bug.x = stage.stageWidth
                bug.vx *= -1

            end
            if (bug.x < 0)
                bug.x = 0
                bug.vx *= -1

            end          

//sitikate AI, et nad kiiremini põgeneks kui keel lähedale jõuab
  if ((Math.abs(bug.x - charTongue.x) < 30))
    if (Math.abs(bug.y - charTongue.y) < 30)
       bug.vy += charTongue.vy + ((Math.random() * 0.2 - 0.1) * 30)
       bug.vx += charTongue.vx + ((Math.random() * 0.2 - 0.1) * 30)

     end
   end
end

Kommentaare ei ole: