Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Eräs Vierailija

Re: Tyhmät kysymykset

Post by Eräs Vierailija »

koodaaja wrote:
tuhoojabotti wrote:
koodaaja wrote:Duh, luonnollisesti vihujen läpikäyntisilmukkaan. Ja herää kysymys; tarkoititko nyt oikeasti tutkiskelua vai copypasteamista? >__>
über offtopic mutta jos tarkoitat sanaa jonka homer päästä alituimaa se kirjoitetaan D'oh :D
Ei, duh on eri sana ja lausutaan ihan "duh". Duh.

@eräs vierailija: Toki sinun pitää luoda vihuja, ellet ole sitä vielä tehnyt. Myös niiden aloituskoordinaatit lienee hyvä tarkistaa.
Ne on kyllä luotu, niitä ei vain näy missään. Putosivatko lattian läpi?

No, tämä alkaa mennä aika kauas alkuperäisestä ideasta. Eli siis kysymys oli kuinka saada mainitsemani koodi toimimaan tilekartalla, omat kokeilut eivät onnistuneet.
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: Tyhmät kysymykset

Post by Harakka »

Aa, kiva että omalle esimerkkikoodilleni löytyy käyttöä. :) Olen tehnyt joskus tilekartoilla toimivan version enkä nyt jaksa erikseen antaa vinkkejä alkuperäisen koodin muuttamisesta tilemappikäyttöön. Pistän koodin suoraan tähän.

Code: Select all

SCREEN 800,600                          'isompi ikkuna
maailman_leveys = ScreenWidth()         'otetaan ruudun koko muistiin:
maailman_korkeus = ScreenHeight()       'ei tarvitse kutsua loopissa ScreenWidth():iä
painovoima# = 0.15                  //TÄSTÄ SÄÄDETÄÄN PAINOVOIMAA (suurempi on suurempi)
ukkomäärä = 9                       //TÄSTÄ SÄÄDETÄÄN UKKOJEN MÄÄRÄÄ (kokeile vaikka 500)
maaraja = -(ScreenHeight()/2)+5         'määritellään lattia

Type UKOT                           //LUODAAN TYYPPI UKOILLE
    Field obj                           'kaikilla on nämä muuttujat
    Field yPlus As Float                'vauhti y-akselilla
    Field xPlus As Float                'vauhti x-akselilla
    Field counter                       'counteri arpoo hyppyajan
    Field maassa                        'ollaanko maassa
End Type                            'tyyppi on valmis
kenttä = LoadMap("Media\tilekarttasi.til","Media\tileset.bmp")    
mOIKEA = LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)     'kuva oikealle juoksevasta
MaskObject mOIKEA,cbmagenta                                     'magenta läpinäkyväksi
ShowObject mOIKEA,OFF                                           'ja piilotetaan
mVASEN = CloneObject(mOIKEA) : MirrorObject mVASEN              'sama juttu vasemmalle
MaskObject mVASEN,cbmagenta                                     
ShowObject mVASEN,OFF

UkkoKorkeus = ObjectSizeY(mOIKEA)       'ukon korkeus talteen                    
UkkoLeveys = ObjectSizeX(mOIKEA)        'ukon leveys talteen

For i = 0 To ukkomäärä                  'tätä toistetaan, kunnes i = ukkomäärä
    pomppiva.UKOT   = New(UKOT)             'uusi jäsen kokoelmaan
    pomppiva\obj    = CloneObject(mOIKEA)   'tehdään siitä klooni oikealle kävelevästä
    pomppiva\yPlus  = Rnd(10)               'arvotaan vauhti sivuttaissuunnassa (x)
    pomppiva\xPlus  = Rnd(-3,3)             'arvotaan vauhti korkeussuunnassa (y)
    SetupCollision pomppiva\obj,kenttä,1,4,2
Next i                                  'i kasvaa yhdellä ja palataan For i = 0..-kohtaan    

DrawToWorld ON                          'piirtokomennot käyttämään maailmakordinaatteja

Repeat                              //PÄÄLOOPPI                            
For iUkko.UKOT  = Each UKOT                                 //KÄYDÄÄN KAIKKI UKOT LÄPI

    If iUkko\xPlus > 0 Then                         'jos sivuttaisvauhti > 0...
        PaintObject iUkko\obj,mOIKEA                'käytetään oikealle juoksevan kuvaa
    Else                                            'muutoin    
        PaintObject iUkko\obj,mVASEN                'käytetään vasemalle juoksevaa
    EndIf
    
    TranslateObject iUkko\obj,iUkko\xPlus,iUkko\yPlus    
    iUkko\yPlus = iUkko\yPlus - painovoima                      'painovoima vaikuttaa y-vauhtiin
    
    UpdateGame

    törmäykset=CountCollisions(iUkko\obj)                       'lasketaan törmäykset

    For i=1 To törmäykset                                       'käydään ne läpi
        If GetCollision(iUkko\obj,i)=kenttä                     'jos törmätään karttaan...
            If CollisionAngle(iUkko\obj,i)=90 Then              'lattia
                iUkko\maassa = 1                                                'merkitään, että ollaan maassa
                If iUkko\xPlus > 0 Then iUkko\xPlus = 3 Else iUkko\xPlus = -3   'juostaan kulkusuuntaan
                iUkko\yPlus = -1                                                'pysäytetään pystyliike                    
            EndIf

            If CollisionAngle(iUkko\obj,i)=270 Then                 'katto
                iUkko\yPlus#=-3
            EndIf
            
            If CollisionAngle(iUkko\obj,i) = 0 Or CollisionAngle(iUkko\obj,i) = 180 Then
                iUkko\xPlus = - iUkko\xPlus
            EndIf
        EndIf
    Next i     

    If iUkko\maassa Then                        //JOS muuttuja MAASSA on tosi...                                         
        PlayObject iUkko\obj,2,11,0.25/ukkomäärä              'toistetaan animaatiota
            If Timer() > iUkko\counter Then         'jos on hyppyaika...    
                iUkko\yPlus = Rnd(5,7)             'arvotaan pystysuuntainen vauhti (hypätään)
                iUkko\xPlus = Rnd(-5,5)             'arvotaan vauhti sivuttaissuunnassa
                iUkko\maassa = 0                    'merkitään, että ei olla maassa enää                
                iUkko\counter = Timer() + Rand(2000,3000)   'arvotaan hyppyaika
            EndIf                       
    Else
        PlayObject iUkko\obj,13,13
    EndIf

Next iUkko      //SIIRRYTÄÄN SEURAAVAAN UKKOON            
DrawScreen      'piirretään kaikki näytölle (muuten näkyy vain mustaa)    
Forever         'ja tätä toistetaan ikuisesti, ellei esciä paineta
Ukkojen animointinopeudessa on näköjään jotain kummallista (riippuen hahmomäärästä) mutta koodi toimii muuten oikein.

EDIT: Copy-paste-virhehän se oli. Korjasin. :)
Last edited by Harakka on Sat Feb 09, 2008 11:09 am, edited 1 time in total.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Harakka wrote:Aa, kiva että omalle esimerkkikoodilleni löytyy käyttöä. :) Olen tehnyt joskus tilekartoilla toimivan version enkä nyt jaksa erikseen antaa vinkkejä alkuperäisen koodin muuttamisesta tilemappikäyttöön. Pistän koodin suoraan tähän.

Code: Select all

...koodia...
Ukkojen animointinopeudessa on näköjään jotain kummallista (riippuen hahmomäärästä) mutta koodi toimii muuten oikein.
Nyt haluan vain tarkistaa että onko tuossa koodin lopussa virhe kun on kaksi Next kohtaa? Pieni copypaste virhe vai ihanko joku feature koodissa?
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
King Bloody4

Re: Tyhmät kysymykset

Post by King Bloody4 »

Miten voin ladata omalta koneeltani esim. ääniä tai ukkelin peliin. :?:
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tyhmät kysymykset

Post by tuhoojabotti »

kannattaa katsoa F8 ja esimerkit siellä niitä on :D
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
King Bloody4

Re: Tyhmät kysymykset

Post by King Bloody4 »

Ei löytynyt sieltä.
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: Tyhmät kysymykset

Post by iTKEVAnAKKI »

King Bloody4 wrote:Ei löytynyt sieltä.
Kyllä löytyy -.- Eli paina F8, silloin kun CB on auki ja näkyy tietokoneen näytöllä, se F8 on tuolla numeroiden yläpuolella. 2,3,14,15 auttavat sua ongelmissas.
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)
King Bloody4

Re: Tyhmät kysymykset

Post by King Bloody4 »

En kyllä löydä kohtaa missä neuvottaisiin miten ladataan omalta koneelta kuvia tai musiikkia, vain kohdat joissa neuvotaan miten ladata coolbasicin media tiedostosta(mikä lie onkaan).
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Yksi tapa on määrittää siinä median lataamisen kohdalla se tietty kansio. Kun tiedämme että oletuskansio on pelin lähdekoodin / exen kansio (ei-tallennetuissa tiedostoissa cb:n exen kansio), niin voimme tehdä näin:

Code: Select all

//Pelimme on kansiossa C:\Munpeli
//Haettava tiedosto on kansiossa C:\Program Files\Tiedostoja
materiaali = loadobject( "..\Program Files\Tiedostoja\materiaali1.png"
Eli toi ..\ vaihtaa ylikansioon.

Voimme myös käyttää komentoa ChDir, joka vaihtaa sen oletuskansion paikkaa:

Code: Select all

ChDir C:\Program Files\Tiedostoja
materiaali = loadobject( "materiaali1.png" )
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Eräs Vierailija

Re: Tyhmät kysymykset

Post by Eräs Vierailija »

Harakka wrote:Aa, kiva että omalle esimerkkikoodilleni löytyy käyttöä. :) Olen tehnyt joskus tilekartoilla toimivan version enkä nyt jaksa erikseen antaa vinkkejä alkuperäisen koodin muuttamisesta tilemappikäyttöön. Pistän koodin suoraan tähän.

Ukkojen animointinopeudessa on näköjään jotain kummallista (riippuen hahmomäärästä) mutta koodi toimii muuten oikein.

EDIT: Copy-paste-virhehän se oli. Korjasin. :)

WOOHOOO!!! Kiitoksia! Nyt toimii!
King Bloody4

Re: Tyhmät kysymykset

Post by King Bloody4 »

Kiitos onnistuin nyt lataamaan koneelta kuvan, se oli transutettu, mutta pelissä se ei kuitenkaan ollut, misätköhän tämä johtuu? :geek:
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

King Bloody4 wrote:Kiitos onnistuin nyt lataamaan koneelta kuvan, se oli transutettu, mutta pelissä se ei kuitenkaan ollut, misätköhän tämä johtuu? :geek:
Siitä, että CB ei tue suoraan .giffien tai masked png-kuvien maskeja, sinun pitää korvata kuvasi tausta jollain harvoin käytetyllä värillä eli maskilla (255, 0, 255 eli magenta on hyvin harvinainen ja siksi hyvä maskiväri) sitten maskimage/maskobject-komennolla saat kyseisen värin läpinäkyväksi.
Eräs Vierailija

Re: Tyhmät kysymykset

Post by Eräs Vierailija »

Noniin, minä täällä taas.

Vihuonkelma on nyt ratkaistu, mutta en saa niille tehtyä enuja, sillä iUkolla ei ole For i = 0 to jotain -juttua ennen Repeatia. Viitsisikö joku jelppiä?
Turtle Productions
Member
Posts: 91
Joined: Thu Dec 20, 2007 11:11 am
Location: Espoo

Re: Tyhmät kysymykset

Post by Turtle Productions »

Minulla on ongelma cbFUNin kanssa. Olen purkanut ja ladannut monta kertaa tiedoston (cbFUN), mutta ei se vaan toimi.
Mikä voisi olla onkelmana??
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
|T|u|r|t|l|e| |P|r|o|d|u|c|t|i|o|n|s|
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

CyberGamer wrote:Minulla on ongelma cbFUNin kanssa. Olen purkanut ja ladannut monta kertaa tiedoston (cbFUN), mutta ei se vaan toimi.
Mikä voisi olla onkelmana??
Puritko sen CoolBasic kansioon (oletuksena C:/Program Files/CoolBasic/)? Tuleeko manuaalin oma cbFUN osio? Jos ei tule niin olet purkanut sen väärään paikkaan.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

CyberGamer wrote:Minulla on ongelma cbFUNin kanssa. Olen purkanut ja ladannut monta kertaa tiedoston (cbFUN), mutta ei se vaan toimi.
Mikä voisi olla onkelmana??
Onko sinulla cbsdk asennettu? Ja muistithan laittaa koodin alkuun:

Code: Select all

Include C:\Program Files\CoolBasic\cbFUN\cbFUN.cb
CoolBasic henkilökuntaa
Kehittäjä
Eräs Vierailija

Re: Tyhmät kysymykset

Post by Eräs Vierailija »

Eräs Vierailija wrote:Noniin, minä täällä taas.

Vihuonkelma on nyt ratkaistu, mutta en saa niille tehtyä enuja, sillä iUkolla ei ole For i = 0 to jotain -juttua ennen Repeatia. Viitsisikö joku jelppiä?
No, nyt onnistuin ratkaisemaan tämän.

Sitten: Jostain kumman syystä oma pelihahmo animoituu liian nopeasti. Tämä alkoi noiden muiden vihujen lisäämisen jälkeen. Animointinopeuden muuttaminen ei auta mitään. :| Voisiko joku neuvoa?
Turtle Productions
Member
Posts: 91
Joined: Thu Dec 20, 2007 11:11 am
Location: Espoo

Re: Tyhmät kysymykset

Post by Turtle Productions »

Tapahtui kummia. CB huutaa "A fatal error occurred. Please contact us at our homepage. But as you can see, the program didn't crash :)"
Voiko tälle asialle tehdä mitään??
No, silti että näette pelini, muokatkaa tästä ladattuja objekteja jne.:

Code: Select all

maapa:
Include "C:\Program Files\CoolBasic\cbFUN\cbFUN.cb"
Include "SDK/include/cbTimer.cb"
Include "SDK/include/cbSpecialFX.cb"
Include "SDK/include/cbAPI.cb"
Include "SDK/include/cbMotion.cb"
Include "sdk/include/cbGravitationPhysics.cb"

ts1=LoadObject("Media/charmander.jpg")
img = LoadImage("Media/earth2.png")
boom = LoadSound("SDK/media/boom.wav")
sun = LoadObject("Media/sun.png")
mer = LoadObject("Media/mercurius.png")
ven = LoadObject("Media/venus.png")
mar = LoadObject("Media/mars.png")
cow = LoadObject("Media/cow3.bmp")
t = LoadObject("Media/torchic.bmp")
tt = LoadObject("Media/treecko.bmp")
mu = LoadObject("Media/mudkip.bmp")

pac = LoadObject("Media/pacman.bmp")
musa=PlaySound("Media/city5.wav")
muu = LoadSound ("Media/in.wav")
me=LoadSound ("Media/off.wav")
MaskObject mu,255,255,255
MaskObject tt,255,255,255
MaskObject t,255,255,255
ShowObject sun, OFF
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, OFF
ShowObject pac, OFF
ShowObject ts1, OFF
PositionObject t, 150,-50
PositionObject tt, -150,-50
PositionObject mu, 0,100

Locate 0,13 'Asetetaan Inputin sijainti
imageX = (ScreenWidth() - ImageWidth(img)) / 2
imageY = (ScreenHeight() - ImageHeight(img)) / 2

t = InitTimer(1000)
SetTimerLifeTime(t, 1)
Repeat 'Aloitetaan looppi
UpdateTimer()



Text 10,0,"Write something and press enter"
  teksti$ = Input(">> ") 'Käynnistetään input

    If IsTimerRunning(t) = False Then
        DrawImage img, imageX, imageY
  If teksti$ = "porsas" And KeyHit(cbkeyreturn) Then 'jos inputissa lukee possu...
 ExplodeImage(img, imageX, imageY, 30, 15, 1, 300, 1, 10, 0, 0)
 PlaySound boom
StartTimer(t)
EndIf
   If teksti$ = "kilpikonna" And KeyHit(cbkeyreturn) Then
If MessageBox("Oletko aivan varma?", "Vahvistus", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Then
If MessageBox("Oikeasti?", "SuperVahvistus", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Then
If MessageBox("Enpä uskoisi sinusta", "HyperVahvistus", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Then
If MessageBox("O'really?", "MegaVahvistus", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Then
MakeError ("Virus luotu koneellesi.")
EndIf
EndIf
EndIf  
EndIf
EndIf
  If teksti$ = "lol" And KeyHit(cbkeyreturn) Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNOThen
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Idiootti", "Idiootti", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON2) = IDYES Or IDNO Then
If MessageBox("Olet idiootti", "Idiootti", MB_YES, MB_DEFBUTTON2) = IDYES Then
MessageBox("HAAHAA!!", "HAAHAA!!", MB_YES, MB_DEFBUTTON2) = IDYES
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
  If teksti$ = "moi" And KeyHit(cbkeyreturn) Then
If SoundPlaying (musa) Then StopSound (musa)
If SoundPlaying (m2) Then StopSound (m2)
If SoundPlaying (m3) Then StopSound (m3)
If SoundPlaying (m4) Then StopSound (m4)
m=PlaySound ("Media\battle2.wav")
EndIf
  If teksti$ = "miisa" And KeyHit(cbkeyreturn) Then
If SoundPlaying (musa) Then StopSound (musa)
If SoundPlaying (m) Then StopSound (m)
If SoundPlaying (m3) Then StopSound (m3)
If SoundPlaying (m4) Then StopSound (m4)
m2=PlaySound ("Media\Ding Drum.mp3")
EndIf
  If teksti$ = "rasmus" And KeyHit(cbkeyreturn) Then
If SoundPlaying (musa) Then StopSound (musa)
If SoundPlaying (m) Then StopSound (m)
If SoundPlaying (m2) Then StopSound (m2)
If SoundPlaying (m4) Then StopSound (m4)
m3=PlaySound ("Media\Nintendo - Super Mario Bros Original Theme.mp3")
EndIf

  If teksti$ = "lohikäärme" And KeyHit(cbkeyreturn) Then
If SoundPlaying (musa) Then StopSound (musa)
If SoundPlaying (m) Then StopSound (m)
If SoundPlaying (m2) Then StopSound (m2)
If SoundPlaying (m3) Then StopSound (m3)
m4=PlaySound ("Media\city2.mid")
EndIf

  If teksti$ = "pig" And KeyHit(cbkeyreturn) Then
PlaySound muu
ShowObject sun,ON
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, OFF
ShowObject ts1,OFF
EndIf

  If teksti$ = "kissa" And KeyHit(cbkeyreturn) Then
PlaySound muu
ShowObject sun,OFF
ShowObject cow, ON
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, OFF
ShowObject ts1,OFF
EndIf

  If teksti$ = "nörtti" And KeyHit(cbkeyreturn) Then
PlaySound muu
ShowObject sun,OFF
ShowObject cow, OFF
ShowObject ven, ON
ShowObject mer, OFF
ShowObject mar, OFF
ShowObject ts1,OFF
EndIf

  If teksti$ = "manga" And KeyHit(cbkeyreturn) Then
  PlaySound muu
ShowObject sun,OFF
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, ON
ShowObject mar, OFF
ShowObject ts1,OFF
EndIf

  If teksti$ = "anime" And KeyHit(cbkeyreturn) Then
  PlaySound muu
ShowObject sun,OFF
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, ON
ShowObject ts1,OFF
EndIf

  If teksti$ = "koira" And KeyHit(cbkeyreturn) Then
  PlaySound me
ShowObject ts1,ON
ShowObject sun,OFF
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, OFF

EndIf

  If teksti$ = "omg" And KeyHit(cbkeyreturn) Then
  PlaySound me
ShowObject ts1,OFF
ShowObject sun,OFF
ShowObject cow, OFF
ShowObject ven, OFF
ShowObject mer, OFF
ShowObject mar, OFF
ShowObject pac, OFF
EndIf

  If teksti$ = "xD" And KeyHit(cbkeyreturn) Then
Goto omgah
EndIf

  If teksti$ = "jesse" And KeyHit(cbkeyreturn) Then
ShowObject pac, ON
EndIf
DrawGame
If teksti$ = "lopetus" And KeyHit(cbkeyreturn) Then
OpenCdTray(open=1)
    _DLL_InitMemBlock()            
    _DLL_PutByte(open) 
    _DLL_CallDll("_OpenCdTray")           
    _DLL_DeleteMemBlock()                          

EndIf
 UpdateEffects()
 
DrawToScreen
  DrawScreen
Forever


omgah:

SCREEN 800, 600
// Ladataan tähtäin
imgSight = LoadImage("media/target.bmp")
ShowMouse imgSight

// Ladataan lehmä ja siirretään piirtopiste (hotspot) keskelle
Global imgCow
imgCow = LoadImage("media/torchic.bmp")
HotSpot imgCow, 15, 12
MaskImage imgCow,255,255,255


// Lehmätaulukko
Const NUM_COWS = 5
Const COW_X   = 1
Const COW_Y   = 2
Const COW_VEL = 3
Dim aCows#(NUM_COWS, 3)
For i = 1 To NUM_COWS
    initCow(i)
Next i

Global iHit, iMiss, iDrown
iHit = 0: iMiss = 0: iDrown = 0

Randomize Timer()
ClsColor 128, 255, 255

Repeat
    UpdateFrameTimer()
    DrawScenery()
    DrawCows()
    UpdateEffects()
    Color 140, 50, 200
    Text 0, 20, "Osumia....: " + iHit
    Text 0, 35, "Huteja....: " + iMiss
    Text 0, 50, "Hukkuneita: " + iDrown
    DrawScreen
Forever



Function InitCow(cowNum)
    aCows(cowNum, COW_X)   = Rnd(0, 800)
    aCows(cowNum, COW_Y)   = 0
    aCows(cowNum, COW_VEL) = Rnd(80, 200)
End Function

Function DrawCows()
    mx = MouseX()
    my = MouseY()
    bHit = False
    // Otetaan mouseclick talteen
    bMouseClick = MouseHit(1)
    // Käydään lehmät läpi
    For i = 1 To NUM_COWS
        cx = aCows(i, COW_X)
        cy = aCows(i, COW_Y)
        If bMouseClick Then
            // Jos ollaan ammuttu niin tarkistetaan etäisyys lehmään
            If Distance(mx, my, cx, cy) < 15 Then
                // Osui! Verta kehiin
                Blood(mx, my)
                iHit + 1
If iHit = 16 Then MakeError "Tapoit liikaa Torchiceja!"
                // Lehmän ylösnousemus
                InitCow(i)
                bHit = True
            EndIf
        EndIf
        DrawImage imgCow, cx, cy
        aCows(i, COW_Y) = aCows(i, COW_Y) + aCows(i, COW_VEL) * FrameTime()
        // Tippuiko lehmä veteen
        If aCows(i, 2) > 500 Then
            Water(cx, 500, aCows(i, COW_VEL))
            iDrown + 1
            // Ja uutta lehmää peliin
            InitCow(i)
        EndIf
    Next i
    // Jos ollaan ammuttu mutta tuli huti niin tehdään savypöllähdys
    If bHit = False And bMouseClick = True Then 
        Smoke(mx, my)
        iMiss + 1
    EndIf
End Function


// <-- Piirretään lehmät

//==============================================================================
// Piirretään maisema
//==============================================================================
Function DrawScenery()
    // Aurinko
    Color 255, 255, 0
    Circle 400, 50, 150, ON
    // Auringonsäteet
    For i = 0 To 18
        a# = i * 20.0
        s# = Sin(a)
        c# = Cos(a)
        x1 = 475 - s * 80 
        x2 = 475 - s * 130 
        y1 = 125 - c * 80 
        y2 = 125 - c * 130 
        Line x1, y1, x2, y2
    Next i
    
    // Pilvi
    Color 255, 255, 255
    Circle 250, 60, 80, ON
    Circle 300, 70, 100, ON
    Circle 400, 90, 80, ON
    Circle 380, 130, 50, ON
    Circle 370, 80, 50, ON

    // Vesi
    Color 0, 0, 255
    Box 0, 500, 800, 100, ON
End Function
// <-- Piirretään maisema


//==============================================================================
// Veriroiske
//==============================================================================
Function Blood(x, y)
    dir     = 0         // Partikkelien lähtösuunta
    range   = 360       // Kuinka laajalle alueelle partikkelit leviää. Alkaen kulmasta "dir"
    amount  = 100       // Partikkelien lukumäärä
    size1   = 1         // Pienin mahdollinen partikkeli
    size2   = 10        // Suurin mahdollinen partikkeli
    speed1  = 10        // Pienin lähtönopeus (pikseliä sekunnissa)
    speed2  = 200       // Suurin lähtönopeus (pikseliä sekunnissa)
    shrink1 = 30        // Pienin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    shrink2 = 30        // Suurin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    fade1   = 0         // Vaalennus/tummennus. Pienin nopeus (väriarvoa sekunnissa)
    fade2   = 0         // Vaalennus/tummennus. Suurin nopeus (väriarvoa sekunnissa)
    gx      = 0         // Vaikutus sivuttaisliikkeeseem esim tuuli. (pikseliä sekunnissa)
    gy      = 600       // Vaikutus pystyliikkeesees esim painovoima. (pikseliä sekunnissa)
    colors$ = "r,255"   // Partikkelin väri on aina punainen
    CreateColorParticleEffect(x, y, dir, range, amount, size1, size2, speed1, speed2, shrink1, shrink2, fade1, fade2, gx, gy, colors)
    Return True
End Function
// <-- Veriroiske

//==============================================================================
// Vesiroiske
//==============================================================================
Function Water(x, y, power#)
    dir     = 45        // Partikkelien lähtösuunta
    range   = 90        // Kuinka laajalle alueelle partikkelit leviää. Alkaen kulmasta "dir"
    amount  = 100       // Partikkelien lukumäärä
    size1   = 1         // Pienin mahdollinen partikkeli
    size2   = power/20  // Suurin mahdollinen partikkeli
    speed1  = 10        // Pienin lähtönopeus (pikseliä sekunnissa)
    speed2  = power*2   // Suurin lähtönopeus (pikseliä sekunnissa)
    shrink1 = 20        // Pienin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    shrink2 = 20        // Suurin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    fade1   = 300       // Vaalennus/tummennus. Pienin nopeus (väriarvoa sekunnissa)
    fade2   = 300       // Vaalennus/tummennus. Suurin nopeus (väriarvoa sekunnissa)
    gx      = 0         // Vaikutus sivuttaisliikkeeseem esim tuuli. (pikseliä sekunnissa)
    gy      = 600       // Vaikutus pystyliikkeesees esim painovoima. (pikseliä sekunnissa)
    colors$ = "b,255"   // Partikkelin väri on aina sininen
    CreateColorParticleEffect(x, y, dir, range, amount, size1, size2, speed1, speed2, shrink1, shrink2, fade1, fade2, gx, gy, colors)
    Return True
End Function
// <-- Veriroiske

//==============================================================================
// Savupöllähdys
//==============================================================================
Function Smoke(x, y)
    dir     = 0         // Partikkelien lähtösuunta
    range   = 360       // Kuinka laajalle alueelle partikkelit leviää. Alkaen kulmasta "dir"
    amount  = 50        // Partikkelien lukumäärä
    size1   = 10        // Pienin mahdollinen partikkeli
    size2   = 30        // Suurin mahdollinen partikkeli
    speed1  = 5         // Pienin lähtönopeus (pikseliä sekunnissa)
    speed2  = 20        // Suurin lähtönopeus (pikseliä sekunnissa)
    shrink1 = 20        // Pienin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    shrink2 = 20        // Suurin yksittäisen partikkelin kutistuma (pikseliä sekunnissa)
    fade1   = -50       // Vaalennus/tummennus. Pienin nopeus (väriarvoa sekunnissa)
    fade2   = -50       // Vaalennus/tummennus. Suurin nopeus (väriarvoa sekunnissa)
    gx      = 0         // Vaikutus sivuttaisliikkeeseem esim tuuli. (pikseliä sekunnissa)
    gy      = 0         // Vaikutus pystyliikkeesees esim painovoima. (pikseliä sekunnissa)
    colors$ = "rgb,128-255" // Väriarvo väliltä 128-255 joka vaikuttaa jokaiseen värikomponenttiin
    CreateColorParticleEffect(x, y, dir, range, amount, size1, size2, speed1, speed2, shrink1, shrink2, fade1, fade2, gx, gy, colors)
    Return True
End Function
Siinä. Onko mitään mahdollisuutta toimimaan, please?! :cry: :cry: :lol: :?:
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
|T|u|r|t|l|e| |P|r|o|d|u|c|t|i|o|n|s|
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Jostakin luin täältä, että tollanen virhe tulee, kun on liikaa funktioita (Max 126). Kannattaa varmaan poistella liikoja noista liitetiedostoista.
Turtle Productions
Member
Posts: 91
Joined: Thu Dec 20, 2007 11:11 am
Location: Espoo

Re: Tyhmät kysymykset

Post by Turtle Productions »

Kokeilen, kiitos tiedosta
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
|T|u|r|t|l|e| |P|r|o|d|u|c|t|i|o|n|s|
+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+
Locked