Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Ittelles elämä

Sivun loppuun

sooda [26.03.2004 15:30:09]

#

Tuolta saa infoa: https://www.ohjelmointiputka.net/keskustelu/4465-elämä
mutta kerrotaan nyt tässäkin. Okei, kaikki anti-nörtit koulussani hokee kokoajan että "hei, koodaa ittelles elämä", niin nyt sitten atk tunnilla koodasin ittelles elämän :D Tekstit on tunnilla tulleita juttuja. Elämä ;)

vinkkinä tässä on tällainen jännä kirjaintenskrollausefekti, näet kun katsot. Varo, vaikea sulkea :D
Lisää formille timeri (ajastin) ja vaihda formin fontti Courier Newiksi ja scalemode pikseleiksi ja autoredraw trueksi.

bin http://sooda.dy.fi/foo/laiffi.exe

'tänks to ohjelmointiputkan väki josta nappasin pari sorsaa tähän.
'muutama kiva api joilla vähän kiusataan käyttäjää
Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const MF_BYCOMMAND = &H0&
Private Const SC_CLOSE = &HF060&
'ja sitten kursori formille -apua.
Private Declare Function CreateCaret Lib "user32" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function ShowCaret Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetCaretPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'globaalimuuttujat joiden pitää säilyä
Private tekstit(), teksti, mesta, abc, eks, yy

Private Sub Form_GotFocus()

   CreateCaret hwnd, 0, 1, 12 'caretti :D, eli vilkkuva kursori, formille
   ShowCaret hwnd             '...
   SetCaretPos eks, yy        '...

End Sub

Private Sub Form_Load()

    Randomize 'alustetaan mukasatunnaislukugeneraattori
    'aakkoset jotka tarvii skrollauksessa, tähän voi lisätä myös
    'muita merkkejä, ne skrollaa vasemmalta oikealle
    abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖabcdefghijklmnopqrstuvwxyzåäö"
    ':D vaan 67 tekstiä. Voit vaihtaa tekstit ihan vapaasti... näissä kun ei
    'ole kovin paljon järkeä :P
    tekstit = Array("Elämä on laiffii.", _
    "No siis hei.", "Elämä on julmaa.", "Om mane anas hum.", "Mä olen ruma.", _
    "Sä olet ruma.", "Tää on hyvä ohjelma.", "Hanki elämä.", "Koodaa ittelles elämä.", _
    "Tilaa elämä loppuvuodeksi, itsellesi tai lahjaksi.", "Kipikapi kauppaan siitä ostamaan elämää!", _
    "Itselläni on kova meno päällä.", "Siis säälittävä jätkä", "Se hilluu täällä avaruudessa ikäänkuin Star Trek.", "Luvut on mun vihollisia!", _
    "Omena plus banaani on yhtä kuin hedelmäsalaatti.", "Tollasia muuten oli siellä ylen verkossa ihan sikana.", _
    "Ne lähti pois.", "Uuussh!", "Aaarg", "Nyt tähän tuli pimeänäkö!", "Se ei tiiä mikä on bändi kaks kuus", _
    "Nyt mä keksin hyvän idean", "Akne sano mulle että sä oot pessyt tukkas!", "Et kampaa tukkaas", "Se jää tälläseks", "Ei millään pahalla", "Onks tää se nettipeli hä?", "Meidän koulun atk-setä on kiva setä!", _
    "Vähä se oli hyvä ku se piirs sen tota äh.", "Mun kaks metrisii piuhoi varsinki jos on pimee ni sit ne kietoutuu tietsikan jalkojen väliin (LÄPS)! Pimeeks.", _
    "Netistä se oli niiii rasittavaa", "Toi oli siis niin läppä lause", "Tääl o tällasii neljäsluokkalaisten kansioita joitten taustakuva on sun kansiosta kopioitu!", _
    "Sun kansiosta kokoajan!", "Mä teen pelin", "Teet sä pelin?", "Mäki teen pelin", "Oota mäki teen pelin", "Pelaat sä antti mun peliä sit ku se on valmis?", _
    "Oota itseasias, venaa", "Kantsii sitten silleen...", "Noni!", "Haluuks joku tulla mukaan?", "Ei venaa antti sori antti venaa", _
    "Mitä helkkarii nää tekee mun kansiossa?", "Säälittävää", "Eiku en", "ÖÖÖR", "Tos on kaks asetusta suurin piirtein", "Aa joo nyt mäki tajusin", "Oot sä nyt ihan varma", _
    "Anna ny mä testaan viel", "Lähes valmis", "Ei mut toi on ei kyl se viel laihempi saa olla", "Öööööö", "Tää on ihan jumissa", "Duumia ei voi ohjata hiirellä", _
    "Mä voin tulla lyömää sua, käyks se?", "Koo yks koo kaks kookolme on kokonaislukuja", "Array(Paramarray ArgList() As Variant)", "Ei nyt lopetetaan oikeesti mä en tajuu", "Miksei tää hiiri toimi", _
    "Mä en oo laittanut tota hiirtä tohon", "Ei tätä voi pelaa kaksinpelinä", "No okei se on kyl ihan surkeeta näppäimistöllä", "Se on namitskuukkelilauta", "Mitäh onks tos kartta??")
    'irroitetaan X-nappi käyttäjän ärsyttämiseksi
    RemoveMenu GetSystemMenu(hwnd, False), SC_CLOSE, MF_BYCOMMAND
    'keskelle näyttöä
    Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2, 15 * 320, 15 * 240
    'ja ihan aina päällimmäiseksi
    SetWindowPos hwnd, -1, 0, 0, 0, 0, 3
    'ja tekstinkirjoitustimeri päälle
    ajastin.Interval = 100

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

    Cancel = -1 'ei varmana suleuduta!

End Sub

Private Sub Form_Unload(Cancel As Integer)

    Cancel = -1 'eikä siis ihan tosi suleuduta :D

End Sub

Private Sub ajastin_Timer() 'päätapahtumien säätäjä

    mesta = mesta + 1 'mesta kertoo missä kohtaa mennään nykyisessä
                      'hassutekstissä (tekstit() taulukko)
    If mesta > Len(tekstit(teksti)) Then 'jos hassutekstin lopussa, arvotaan uus
        mesta = 1 'alkuun
        teksti = Int(UBound(tekstit) * Rnd + 1) 'arvotaan se teksti
        s = Timer: Do: DoEvents: Loop Until s + 2 < Timer 'kivan näkönen näin
        eks = eks + 8 'missä kohtaa ollaan formilla menossa
        If eks > ScaleWidth - 18 Then eks = 0: yy = yy + 12 'jos mennään reunan yli
    End If

    merkki = Mid(tekstit(teksti), mesta, 1) 'en jaksa hokea kokoajan tota mid(...
    SetCaretPos eks + 8, yy 'kursori kohdalleen
    If InStr(abc, merkki) Then 'jos pitää skrollata merkki, skrollataan se
        'kohdasta 30 alkaa pienet kirjaimet, skrollataan sen kokoiset kirjaimet
        'mitä oikea merkkikin on. jos lisäät vaikka abc:hen erikoismerkkejä
        'ja haluat että erikoismerkkiin skrollataan vain erikoismerkit niin
        'tarkistat että jos merkki on erikois niin possi=se kohta mistä
        'erikoismerkit alkavat abc:ssä
        If merkki = UCase(merkki) Then possi = 1 Else possi = 30
        For i = possi To InStr(abc, merkki) 'skrollataa joka merkki ennen oikeaa merkkiä
            Char = Mid(abc, i, 1) 'merkki oikeasta kohdasta
            Line (eks, yy)-(eks + 12, yy + 12), BackColor, BF 'vanha pois
            CurrentX = eks 'siirretään kursori oikeaan kohtaan
            CurrentY = yy '...
            Print Mid(abc, i, 1) 'ja ulostetaan uus merkki
            'odotetaan jonkun aikaa että silmätkin ehtii mukaan
            s = Timer: Do: DoEvents: Loop Until s + 0.01 < Timer
        Next
    Else 'jos merkkiä ei ole skrollilistassa niin ei skrollata sitä
        CurrentX = eks 'siirretää kursori oikeaan kohtaan formilla
        CurrentY = yy '...
        Print merkki 'ulostetaa merkki
    End If
    eks = eks + 8  'siirretään printtikohtaa oikealle
    If eks > ScaleWidth - 18 Then eks = 0: yy = yy + 12 'reunan yli
    If yy >= ScaleHeight Then Cls: eks = 0: yy = 0 'jos formi on täynnä

End Sub

efteri [26.03.2004 15:33:13]

#

Paras vinkki vähään aikaan!

DaZip [27.03.2004 15:43:33]

#

Joo mutta mitäs sitten kun tekstejä tulee yli 67? Mulla puskee erroria... Muuttelin kyllä koodia vähän mutta en siltä osin että pitäisi vaikuttaa.

Gwaur [30.03.2004 17:00:49]

#

"Se hilluu täällä avaruudessa ikäänkuin Star Trek."

Staar trekkkkkk \o\ \o/ /o/ /o\ \o\ \o/ /o/ /o\

=D

Meitsi [30.03.2004 17:20:05]

#

Kun ei tahjua vbstä niin voisxo joku kertoo mitä toi tekee

mamaze [30.03.2004 19:31:19]

#

kirjoittaa jotain pikku tsydeemiä..:P

miiro [30.03.2004 19:32:58]

#

ei toimi. pukkaa vaa jotai sekasotkuu päällekkäi...

rndprogy [30.03.2004 20:37:16]

#

Meitsi: Tuosta on myös exe. ihan tältä sivulta kun vähän ylhäältä klikkaat.

Bill Keltanen [31.03.2004 08:10:18]

#

:D tää on vähä kova :D

Bill Keltanen [31.03.2004 08:10:33]

#

:D tää on vähä kova :D

Bill Keltanen [31.03.2004 08:11:59]

#

Oh, lähti kaks mutta miks tää piirtelee mulle koko ajan päällekäin?

sooda [31.03.2004 12:31:27]

#

OOHo sori unohdin sanoa että scalemode pitää muuttaa pikseleiksi ja autoredraw trueksi. Sitten ei päällekkäinpiirrä. Sori, unohtui.

mamaze [31.03.2004 17:12:13]

#

minä jo ajattelinki. mutta en tosta sanonu mitää ku aattelin että en vaan osaa käyttää tätä koodivinkkiä. oli hyvä että sanoit kun muuten en varmaan olisi sitä enää toista kertaa kokeillu

DaZip [31.03.2004 18:02:06]

#

Niin että miten saa yli 67 tekstiä? Pukkaa erroria jos vaan lisää tohon...

sooda [01.04.2004 16:27:03]

#

Mitä erooria? Ei mulla... Siis lisäät vaan tohon
... ta", "Mitäh onks tos kartta??")
->> ... ta", "Mitäh onks tos kartta??", "IHKA UPOUUUS TEKSTI")

Blaze [01.04.2004 23:46:07]

#

Om mane anas hum!

sooda [07.04.2004 16:49:53]

#

Blaze, se oli jossaki akuankassa sellaine rauhoittelu jutsku että ku hoet sitä nii rauhotut :)

Bill Keltanen [19.04.2004 08:49:28]

#

Tarkalleen kun Aku lähtee jollekkin erakolle pyytämään apua ja kömpelöi juhlissa

pipopää [06.05.2004 19:42:42]

#

mulla ei toimi tulee vain error Can not assing to array

Plzzz VOISKS JOKU AUTAA!!!!

sooda [07.05.2004 12:12:50]

#

Pipopäällä taitaa olla vb5cce, vb5 ei tykkää tosta array funkkarista. Tee manuaalisesti:
dim tekstit(** jokin arvo **)
tekstit(0)="moro, sano poro"
tekstit(1)="poro ei osaa puhua"
tekstit(2)="Muahaahga ne puhuu poronkieltä"
...

:)

moptim [18.09.2007 19:37:39]

#

Hrm, mikä se "elämä" on?

Voiskohan joku kertoo kun mulle ei oo tommosia kerrottu?

siika [13.11.2009 16:41:27]

#

moptim kirjoitti:

Hrm, mikä se "elämä" on?

Voiskohan joku kertoo kun mulle ei oo tommosia kerrottu?

sudo apt-get install life

mul toi toimi hyvin :D

ErroR++ [04.05.2011 15:48:36]

#

Sen saa muuten pois Tehtävienhallinnasta.

ErroR++ [10.05.2011 16:58:13]

#

Ei ainakaan toi Array toimi(VB.NET).


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta