ongelma huoneiden kans

Voit pyytää apua ohjelmointiongelmiin täältä.
nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

ongelma huoneiden kans

Post by nassi-setä » Wed Oct 03, 2007 5:28 pm

tää on ehkä liijan pieni omaa topickkii varte mut kun teen yläviistost kuvattuu rgp peliä nii mten siihen sais toteutettuu huoneet
siis ku ukko menee talon oven kohalle ja painaa entterii nii se menis sisää?

TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: ongelma huoneiden kans

Post by TheFish » Wed Oct 03, 2007 5:42 pm

Tee type huoneita varten ja laitat siihen typeen kaikille huoneille oman numeron (huoneID tai jotain vastaavaa). Sitten laitat kartan data kerrokseen oven kohdalle sen huoneen numeron. Kun enteriä painetaan, tarkistat onko data kerroksessa jonkun huoneen numero, ja jos on niin siirryt siihen huoneeseen.
En ole testannut tuommoista, mutta saattaisi toimia.
CoolBasic henkilökuntaa
Kehittäjä

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Wed Oct 03, 2007 6:38 pm

siis miten ne huaneet tehää ku laitaa gosub huone
ni se menee huone:
mitä mitä sit huoneesee laitetaa ladataaks mappi ja kaikki muut vai?

User avatar
Pie2
Member
Posts: 55
Joined: Mon Aug 27, 2007 8:14 pm
Location: Porvoo

Re: ongelma huoneiden kans

Post by Pie2 » Wed Oct 03, 2007 6:56 pm

Jos gosubilla teet niin kannattais tehdä näin:

Code: Select all

IF painetaan entteriä oikeassa kohdassa THEN
gosub laatahuone 2 & laita objektit oikeille paikoilleen
ENDIF
En tosin suosittele gosubin käyttöä. Jos mahdollista niin tee se funktioilla.
Since 24-March 05

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Thu Oct 04, 2007 4:59 pm

pitääks sie "huoneessa" ladata objektit mappi ja muut tsydeemit sitä hain takaa
ja huonee tarkotus on ooll trainig-room siel siis mätkitää äijii

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: ongelma huoneiden kans

Post by FuJi » Thu Oct 04, 2007 9:24 pm

nassi-setä wrote:pitääks sie "huoneessa" ladata objektit mappi ja muut tsydeemit sitä hain takaa
ja huonee tarkotus on ooll trainig-room siel siis mätkitää äijii
Tietysti mapit ja objektit täytyy ladata.

Itse tekisin tällaisen systeemin luultavasti functionoilla.

Eli tarkista mapin data-kerros GetMap-komennolla, jos ukkon koordinaatit täsmäävät tilen kanssa niin...

Code: Select all

If GetMap (3, ObjectX(ukko), ObjectY(ukko)) = 1 Then
*toiminnot*
EndIf
Tarkistetaan data-kerros ja jos ukon koordinaatit täsmäävät tileen ja enter on pohjassa siirrytään huoneeseen:

Code: Select all

If GetMap (3, ObjectX(ukko), ObjectY(ukko)) = 1 And KeyDown(cbKeyReturn) Then
huone1()
Endif
Tämä ei kuitenkaan ihan näin pelkästään toimi vaan tarvitaan huone1 niminen function, jossa ladataan uusi mappi ja piilotetaan mahdollinen vanha mappi, ladataan uudet objektit (pelihahmoa, joka on ladattu jo aikaisemmin ei tarvitse enää ladata).

Ja jos haluat huoneeseen vihuja, joita saa mätkiä sen voi luoda vaikka typeillä. Luo type opas manuaalista ;)

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Fri Oct 05, 2007 2:47 pm

ongelmana on se etten älyy yhtikäs mitään funktioista

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: ongelma huoneiden kans

Post by FuJi » Fri Oct 05, 2007 2:55 pm

Functioilla luodaan lisää komentoja CB:hen. Funktio voi toimia siis samalla tavalla kuin esimerkiksi kuin LoadObject, mutta sinun täytyy itse "rakentaa" functio eli tavallaan luoda uusi komento.

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Fri Oct 05, 2007 9:46 pm

ok,mut tuli toine ongnelma se valittaa sitä:can`t find missing REPEAT

täs koodii mikä olis vikana

Code: Select all

Type AMMUS
Field obj
EndType 

Type VIHUT
Field obj2
Field elu
Field ase
EndType 



kartta = LoadMap("Media\alku1.til","Media\tileset3.bmp")
PlayObject kartta,0,0,1
miekka=LoadObject("media\miekka.bmp",90)

ukko1=LoadObject("media\vasen.bmp")
 MaskObject ukko1,cbMagenta
ShowObject ukko1,OFF
ukko2=LoadObject("media\oikee.bmp")
 MaskObject ukko2,cbMagenta
ShowObject ukko2,OFF
ukko3=LoadObject("media\taka.bmp")
 MaskObject ukko3,cbMagenta
 ShowObject ukko3,OFF
 

ukko4=LoadObject("Media\etu.bmp")
MaskObject ukko4,cbMagenta
ShowObject ukko4,OFF

talo=LoadObject("media\talo.bmp")

pati=LoadObject("media\nuoli.bmp",90)

ukko = CloneObject (ukko4) 
M_vihu=LoadObject("media\etu.bmp")
SetupCollision ukko, kartta, 1, 4, 2



lvl=1
attack=1
defu=1
Strr=1




AddText "LVL="+lvl
AddText "attack="+attack
AddText "defense="+defu
AddText "strenght="+Strr










Repeat

CloneObjectPosition miekka,ukko
MoveObject miekka,7



PositionObject talo,-50,80



    'Ukon ohjaus
    If LeftKey() Then
    MoveObject ukko,-5
    PaintObject ukko,ukko1
    EndIf 
    
    
    If RightKey() Then
    MoveObject ukko,5
    PaintObject ukko,ukko2
    EndIf 
    
    
    If UpKey() Then
    MoveObject ukko,0,-5  
    PaintObject ukko,ukko3
    EndIf 
    
    
    If DownKey() Then
    MoveObject ukko,0,5
    PaintObject ukko,ukko4
    
EndIf 
    UpdateGame

    CloneCameraPosition ukko
    
  If KeyDown(cbKeyZ) Then TurnObject miekka,12

 If KeyDown(cbKeyX) Then TurnObject miekka,-12
 
 
If ObjectsOverlap(ukko,talo) And KeyHit(28) Then
   vihu.VIHUT = New(VIHUT) 'luo uusi ammus
        vihu\obj2=CloneObject(M_vihu) 'tee klooni
        
         vihu.VIHUT = New(VIHUT) 'luo uusi ammus
        vihu\ase=CloneObject(miekka)
          CloneObjectPosition vihu\ase,vihu\obj2                
        'käännetään pati samaan suuntaan
         
        
    'Päivitä kaikki ammukset
    For vihu.VIHUT = Each VIHUT
        MoveObject vihu\obj2,1
        PointObject vihu\obj2,ukko
        PointObject Vihu\ase,ukko
        SetupCollision ukko,vihu\obj2
        vihu\elu=20
        If vihu\elu=0 Then
        DeleteObject vihu\obj2
        Delete vihu
        EndIf
        
If ObjectsOverlap(miekka,vihu\obj2) Then
vihu\elu=-5        
 EndIf            
    Next vihu

 
 
 
 
 
    DrawScreen

Until EscapeKey()

User avatar
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: ongelma huoneiden kans

Post by Harakka » Fri Oct 05, 2007 9:49 pm

Yksi endiffi puuttui, ja lisäksi SetupCollisionista puuttui törmäystyypin parametrit. Kolmanteja virheenä yritit käyttää vihu\obj21:stä, jota ei ollut olemassa. Korjasin virheet.

Code: Select all

Type AMMUS
Field obj
EndType 

Type VIHUT
Field obj2
Field elu
Field ase
EndType 



kartta = LoadMap("Media\alku1.til","Media\tileset3.bmp")
PlayObject kartta,0,0,1
miekka=LoadObject("media\miekka.bmp",90)

ukko1=LoadObject("media\vasen.bmp")
MaskObject ukko1,cbMagenta
ShowObject ukko1,OFF
ukko2=LoadObject("media\oikee.bmp")
MaskObject ukko2,cbMagenta
ShowObject ukko2,OFF
ukko3=LoadObject("media\taka.bmp")
MaskObject ukko3,cbMagenta
ShowObject ukko3,OFF


ukko4=LoadObject("Media\etu.bmp")
MaskObject ukko4,cbMagenta
ShowObject ukko4,OFF

talo=LoadObject("media\talo.bmp")

pati=LoadObject("media\nuoli.bmp",90)

ukko = CloneObject (ukko4) 
M_vihu=LoadObject("media\etu.bmp")
SetupCollision ukko, kartta, 1, 4, 2



lvl=1
attack=1
defu=1
Strr=1




AddText "LVL="+lvl
AddText "attack="+attack
AddText "defense="+defu
AddText "strenght="+Strr










Repeat

CloneObjectPosition miekka,ukko
MoveObject miekka,7



PositionObject talo,-50,80



    'Ukon ohjaus
    If LeftKey() Then
    MoveObject ukko,-5
    PaintObject ukko,ukko1
    EndIf 
    
    
    If RightKey() Then
    MoveObject ukko,5
    PaintObject ukko,ukko2
    EndIf 
    
    
    If UpKey() Then
    MoveObject ukko,0,-5  
    PaintObject ukko,ukko3
    EndIf 
    
    
    If DownKey() Then
    MoveObject ukko,0,5
    PaintObject ukko,ukko4
    
EndIf 
    UpdateGame

    CloneCameraPosition ukko
    
  If KeyDown(cbKeyZ) Then TurnObject miekka,12

If KeyDown(cbKeyX) Then TurnObject miekka,-12


If ObjectsOverlap(ukko,talo) And KeyHit(28) Then
   vihu.VIHUT = New(VIHUT) 'luo uusi ammus
        vihu\obj2=CloneObject(M_vihu) 'tee klooni
        
         vihu.VIHUT = New(VIHUT) 'luo uusi ammus
        vihu\ase=CloneObject(miekka)
          CloneObjectPosition vihu\ase,vihu\obj2                
        'käännetään pati samaan suuntaan
 EndIf
        
    'Päivitä kaikki ammukset
    For vihu.VIHUT = Each VIHUT
        MoveObject vihu\obj2,1
        PointObject vihu\obj2,ukko
        PointObject Vihu\ase,ukko
        SetupCollision ukko,vihu\obj2,1,4,2
        vihu\elu=20
        If vihu\elu=0 Then
        DeleteObject vihu\obj2
        Delete vihu
        EndIf
        
If ObjectsOverlap(miekka,vihu\obj2) Then
vihu\elu=-5        
EndIf            
    Next vihu






    DrawScreen

Until EscapeKey()
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: ongelma huoneiden kans

Post by koodaaja » Fri Oct 05, 2007 10:50 pm

Itse tekisin ison kartan, jossa kaikki huoneet ovat. Huoneet voivat olla myös erillään, jolloin seuraavaa ei näe seinän läpi.

ÖffTöpik:
Puhutaan mieluummin suomea, eikö? Ei siis function, functio tms. vaan funktio, tai tuttavallisemmin funkkari.

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Sat Oct 06, 2007 10:38 am

kiitti sain peliini tosipaljo etee päin

tää ei kyl liity tähän mut voiko komennolla RAND tehä tämmösen et ku miekka osuu vihuu niise arpoo kuoleeko vai torjuuko vihu iskun?

User avatar
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: ongelma huoneiden kans

Post by Harakka » Sat Oct 06, 2007 11:29 am

nassi-setä wrote:kiitti sain peliini tosipaljo etee päin

tää ei kyl liity tähän mut voiko komennolla RAND tehä tämmösen et ku miekka osuu vihuu niise arpoo kuoleeko vai torjuuko vihu iskun?
Kyllä.

Code: Select all

If Rand(1) then
  'vihollinen kuolee
Else
  'vihollinen torjuu
Endif
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Sat Oct 06, 2007 3:02 pm

mä oon teijän mielest varmaa avuton pikku kakru ku kyselen koko ajan kaikkee
mut kummiskin miten pystyy laittaa tyypeil tehyille vihuille heltin oon yrittäny käyttää tämmöstä ku

Code: Select all

 Type VIHUT
    Field obj2
    Field elu
    EndType
mut en älyy miten tot field elu:uu käytetää

User avatar
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: ongelma huoneiden kans

Post by iTKEVAnAKKI » Sat Oct 06, 2007 3:13 pm

Esim kun ukko menettää enkkua komennat

Code: Select all

For vihu.VIHUT=Each VIHUT
  vihu\elu-1
next vihu
Toivottavasti tajusit idean. Ja jos haluat laittaa alussa, kun luot vihun, enkuksi vaikka 100 laitat vain luonnin perään vihu\elu=100 eli aivan niinkuin muuttujaa :D Ja en pidä sua tyhmänä, itelläkin oli typeriä ongelmia aluksi...
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Sun Oct 07, 2007 1:51 pm

tokavika kysymys voisko joku tehä mulle xp laskurin etku miekka osuu vihuu nii tulee vaik 2xp tä ja sit ku on vaik 20xp nii attack nousee levelil?
koitin tehä mut ei onnistunu
Last edited by nassi-setä on Sun Oct 07, 2007 3:10 pm, edited 1 time in total.

User avatar
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: ongelma huoneiden kans

Post by Harakka » Sun Oct 07, 2007 2:21 pm

Code: Select all

Repeat
If keyhit(cbkeyspace) then 'vaihda tohon vihuun osuminen
  xp + 2
EndIf
If xp > 20 then
  lvl + 1
  xp = 0
Endif

Text 0,0,"XP: " + xp
text 0,13,"LVL: " + lvl
DrawScreen
Forever
Vaikka näin.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: ongelma huoneiden kans

Post by FuJi » Sun Oct 07, 2007 5:23 pm

nassi-setä wrote:tokavika kysymys voisko joku tehä mulle xp laskurin etku miekka osuu vihuu nii tulee vaik 2xp tä ja sit ku on vaik 20xp nii attack nousee levelil?
koitin tehä mut ei onnistunu
viewtopic.php?f=12&t=61

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: ongelma huoneiden kans

Post by nassi-setä » Sat Oct 13, 2007 4:12 pm

taas kysyisin tämmöstä että miten pystyy tekemään sillee et miekka liikkuu sopivaa vauhtia jonkin matkaa sivulle ja sit palaa takas
ymmärskö kukaa?

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: ongelma huoneiden kans

Post by FuJi » Sat Oct 13, 2007 6:51 pm

nassi-setä wrote:taas kysyisin tämmöstä että miten pystyy tekemään sillee et miekka liikkuu sopivaa vauhtia jonkin matkaa sivulle ja sit palaa takas
ymmärskö kukaa?
Sinun täytyy luoda se frameilla. Oletan, että se on ukko, jonka tulisi lyödä miekalla.
Eli siis sisnun täytyy luoda kuvaan frameja ja se objekti täytyy ladata loadanimobjectilla.
Esimerkkinä tästä on vaikka CoolBasicin media kansiossa oleva ampu.bmp kuva. Jokaisen framen täytyy olla samankokoinen.
Katso vaikka oppitunti 19: Painovoima. Siinä käytetään animoituja objekteja.

Eli ne ladataan näin:

Code: Select all

ukko = loadanimobject("media\ukko.bmp",30,20,11,0.5)
Suluissa on enismmäisenä tiedosto, joka ladataan. Toisena on animaation yhden framen leveys. Kolmanteka sen korkeus. Neljäntenä framejen yhteismäärä ja viiemisenä toistonopeus. Animaation voi toistaa PlayObject komennolla.

Post Reply