Tyhmät kysymykset (I/2010)
Re: Tyhmät kysymykset (I/2010)
Toimii muuten ihan hienosti, mutta sitten pitäisi saada avaus - ja sulkutagin väliin sijoittuva teksti vielä erilleen:
<background>kuva.png</background>
mites nyt?
mulla kun lukee koodissa että kun kohdataan tietty tagi, niin kutsutaan funktiota joka laittaisi kuvan näytölle. Millä nappaan kuvan nimen tuosta välistä?
<background>kuva.png</background>
mites nyt?
mulla kun lukee koodissa että kun kohdataan tietty tagi, niin kutsutaan funktiota joka laittaisi kuvan näytölle. Millä nappaan kuvan nimen tuosta välistä?
Re: Tyhmät kysymykset (I/2010)
Näin nappaat tagien välistä tekstiä:
Code: Select all
Print GetTag("randomtekstiä<background>kuva.png</background>ja pikkasen enemmän","background")
WaitKey
Function GetTag(txt$,tag$)
alku=InStr(txt$,"<"+tag$+">")
loppu=InStr(txt$,"</"+tag$+">")
If alku And loppu Then
l=Len(tag$)
Return Mid(txt$,alku+l+2,loppu-(alku+l+2))
EndIf
End Function
Re: Tyhmät kysymykset (I/2010)
Kuinka toteuttaa ammuntapelin näkökenttä niin, että kaikki, minne hahmo ei nää, on mustaa? Esim. Tapan Kaikki 4
Re: Tyhmät kysymykset (I/2010)
Tarvitsen funktion, joka palauttaa tageja 1 kerrallaan ohjelman käsiteltäväksi. Mitä hyötyä minulle tästä on kun ei ole edes kommentteja ja merkkijonojen käsittely ei ole hallinnassa cb:llä?MetalRain wrote:Tässä nyt eräänlainen tagintarkistus. Osaa katsoa merkkijonosta onko siinä joku tagi ja osaa listata merkkijonon tagit. Korjaa/muuttele jos syntaksi ei sovi omiin tarkoituksiisi.DJ-Nerd wrote:Terve taas
Teen omaa tyylitiedostokieltä cb:lle (vain omaan käyttöön toistaiseksi).
Miten saan tulkin lukemaan ja erottelemaan useita tageja samalta riviltä, kun tagit merkitään "<tagi>" - syntaksilla?Code: Select all
Print IsTagged("hauki on <kala>","kala") Print ListTags("<huono><tyhmä>joo<p>ajoo<olio>hahaha") WaitKey Function IsTagged(txt$,tag$) If InStr(txt$,"<"+tag$+">") Then Return 1 Else Return 0 End Function Function ListTags(txt$) list$="" l=Len(txt$) edellinen=0 alku=InStr(txt$,"<") While alku<l And alku<>-1 pituus=InStr(Mid(txt$,edellinen+alku+1),">")-1 If pituus Then list$=list$+Mid(txt$,edellinen+alku+1,pituus)+" " EndIf edellinen=edellinen+alku+pituus+1 alku=InStr(Mid(txt$,edellinen),"<")-1 Wend Return Trim(list$) End Function
Tarvitsen funktion, joka syöttää tiedostosta yhden tagin kerrallaan käsiteltäväksi, joka laukaisee funktion, joka käsittelee tagin sisällön ja käsittelyn jälkeen siirtyy tarkastelemaan seuraavaa tagia.
Tiedoston syntaksi on joko:
<tagi1>sisältö</tagi1><tagi2>sisältö</tagi2>
tai
<tagi1>sisältö</tagi1>
<tagi2>sisältö</tagi2>
Re: Tyhmät kysymykset (I/2010)
Siitä vain opettelemaan. Avainsana: GetWordDJ-Nerd wrote:Tarvitsen funktion, joka palauttaa tageja 1 kerrallaan ohjelman käsiteltäväksi. Mitä hyötyä minulle tästä on kun ei ole edes kommentteja ja merkkijonojen käsittely ei ole hallinnassa cb:llä?MetalRain wrote:Tässä nyt eräänlainen tagintarkistus. Osaa katsoa merkkijonosta onko siinä joku tagi ja osaa listata merkkijonon tagit. Korjaa/muuttele jos syntaksi ei sovi omiin tarkoituksiisi.DJ-Nerd wrote:Terve taas
Teen omaa tyylitiedostokieltä cb:lle (vain omaan käyttöön toistaiseksi).
Miten saan tulkin lukemaan ja erottelemaan useita tageja samalta riviltä, kun tagit merkitään "<tagi>" - syntaksilla?Code: Select all
Print IsTagged("hauki on <kala>","kala") Print ListTags("<huono><tyhmä>joo<p>ajoo<olio>hahaha") WaitKey Function IsTagged(txt$,tag$) If InStr(txt$,"<"+tag$+">") Then Return 1 Else Return 0 End Function Function ListTags(txt$) list$="" l=Len(txt$) edellinen=0 alku=InStr(txt$,"<") While alku<l And alku<>-1 pituus=InStr(Mid(txt$,edellinen+alku+1),">")-1 If pituus Then list$=list$+Mid(txt$,edellinen+alku+1,pituus)+" " EndIf edellinen=edellinen+alku+pituus+1 alku=InStr(Mid(txt$,edellinen),"<")-1 Wend Return Trim(list$) End Function
Sillä pitäisi onnistua tuosta MetalRainin funktiosta napsittua. (En kyllä testannut koodia mutta koodia katsomalla ilmeisesti listaa tagit välilyönnillä eroteltuna)
Re: Tyhmät kysymykset (I/2010)
Kaikkein yksinkertaisimmillaan tämä onnistuu niin, että teet liitteenä olevan laisen kuvan, ja piirrät sen kaiken päälle oikeassa kulmassa (ja maskaat magentalla).Warlock wrote:Kuinka toteuttaa ammuntapelin näkökenttä niin, että kaikki, minne hahmo ei nää, on mustaa? Esim. Tapan Kaikki 4
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset (I/2010)
Pyöritetyissä objekteissa maskivärin on pakko olla musta (ellei haluta armotonta bugailua) , muuten juurikin näin.Chaosworm wrote:Kaikkein yksinkertaisimmillaan tämä onnistuu niin, että teet liitteenä olevan laisen kuvan, ja piirrät sen kaiken päälle oikeassa kulmassa (ja maskaat magentalla).Warlock wrote:Kuinka toteuttaa ammuntapelin näkökenttä niin, että kaikki, minne hahmo ei nää, on mustaa? Esim. Tapan Kaikki 4
Re: Tyhmät kysymykset (I/2010)
Viltzu wrote:Siitä vain opettelemaan. Avainsana: GetWordDJ-Nerd wrote:Tarvitsen funktion, joka palauttaa tageja 1 kerrallaan ohjelman käsiteltäväksi. Mitä hyötyä minulle tästä on kun ei ole edes kommentteja ja merkkijonojen käsittely ei ole hallinnassa cb:llä?MetalRain wrote:...
Sillä pitäisi onnistua tuosta MetalRainin funktiosta napsittua. (En kyllä testannut koodia mutta koodia katsomalla ilmeisesti listaa tagit välilyönnillä eroteltuna)
Code: Select all
a=OpenToRead("tiedot.CBSS")
Repeat
tarkista(a)
Until EOF(a)
Repeat
DrawScreen
Forever
function tarkista(a)
rivi$=Trim(ReadLine(a))
rivi$=listtags(rivi$)
asd=CountWords(rivi$)
For i=1 to asd
Select rivi$
Case "<otsikko>"
otsikko(ReadLine(a))
Case "<tausta>"
tausta(a)
EndSelect
Next i
EndFunction
Function otsikko(mj$)
SetWindow "***" + mj$ + "***"
EndFunction
Function tausta(a)
s$=ReadLine(a)
floor=MakeObjectFloor()
grid=LoadImage(s$)
PaintObject floor,grid
EndFunction
'__________________________________________________________
Function ListTags(txt$)
list$=""
l=Len(txt$)
edellinen=0
alku=InStr(txt$,"<")
While alku<l And alku<>-1
pituus=InStr(Mid(txt$,edellinen+alku+1),">")-1
If pituus Then
list$=list$+Mid(txt$,edellinen+alku+1,pituus)+" "
EndIf
edellinen=edellinen+alku+pituus+1
alku=InStr(Mid(txt$,edellinen),"<")-1
Wend
Return "" + Trim(list$)
EndFunction
eli mitä helvettiä?
Re: Tyhmät kysymykset (I/2010)
En kokeillut, mutta veikkaan että koetat käyttää Mid funktiota siten, että aloitus paikka on 0.
Cb:n Mid ei osaa aloittaa ensimmäisesta kirjaimesta.
Käytä siihen Left funktiota.
Cb:n Mid ei osaa aloittaa ensimmäisesta kirjaimesta.
Käytä siihen Left funktiota.
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset (I/2010)
Itselläni tuo kääntyy vallan mainiosti, olisi siis kiva tietää mikä rivi ongelman kenties aiheuttaa.DJ-Nerd wrote:plåplåplåå
Re: Tyhmät kysymykset (I/2010)
Koodasin funktion joka ei vastaa täysin hakemaasi, mutta kykenee palauttamaan tekstiä tiettyjen avainsanojen perusteella. Pienellä säädöllä saat siitä varmasti sellaisen joka tukee montaa eri avainsanaa. Funktiossa ilmsteyvä 6 tarkoittaa sanan <tagi> pituutta, eli joudut sitä muuttamaan jos haluat eri avainsanoja. Tällä hetkellä funktio ei välttämättä toimi kunnolla jos päättävä avainsana on eripituinen kuin yhden merkin verran aloittavaa avainsanaa pidempi.DJ-Nerd wrote: Tarvitsen funktion, joka syöttää tiedostosta yhden tagin kerrallaan käsiteltäväksi, joka laukaisee funktion, joka käsittelee tagin sisällön ja käsittelyn jälkeen siirtyy tarkastelemaan seuraavaa tagia.
Tiedoston syntaksi on joko:
<tagi1>sisältö</tagi1><tagi2>sisältö</tagi2>
tai
<tagi1>sisältö</tagi1>
<tagi2>sisältö</tagi2>
Code: Select all
Print PalautaTagi( "<tagi></tagi><tagi>g</tagi><tagi></tagi><tagi>Tämä teksti palautetaan</tagi> TÄMÄ EI NÄY <tagi>tämä myös</tagi> mitä jos tänne lisäilee jotain?" )
WaitKey
Function PalautaTagi( _str As String )
vasen = 1
While True
vasen = InStr( _str, "<tagi>", vasen ) + 6
If vasen = 6 Then Return txt$
oikea = InStr( _str, "</tagi>", vasen )
If oikea >= vasen + 1 Then txt$ = txt + Mid( _str, vasen, oikea - vasen ) + " "
vasen = oikea + 7
Wend
EndFunction
Re: Tyhmät kysymykset (I/2010)
Tota oon iteki kokeillu, mutta menee kyl aika hirmu kauan ladata sitä, olisko kevyempää vaihtoehtoa?Chaosworm wrote:Kaikkein yksinkertaisimmillaan tämä onnistuu niin, että teet liitteenä olevan laisen kuvan, ja piirrät sen kaiken päälle oikeassa kulmassa (ja maskaat magentalla).Warlock wrote:Kuinka toteuttaa ammuntapelin näkökenttä niin, että kaikki, minne hahmo ei nää, on mustaa? Esim. Tapan Kaikki 4
-
- Member
- Posts: 55
- Joined: Fri Apr 30, 2010 10:55 pm
Re: Tyhmät kysymykset (I/2010)
tää on kyl aika tyhmä kysymys mut voiko cb:hen tehä mappei muilla tileset ohjelmil ku tilesteril?
Re: Tyhmät kysymykset (I/2010)
No tietysti käyttää ympyränmuotoista aluetta, jolloin kestänee vain noin 2-3 sekuntia kun ei tarvitse pyörittää.Warlock wrote:Tota oon iteki kokeillu, mutta menee kyl aika hirmu kauan ladata sitä, olisko kevyempää vaihtoehtoa?Chaosworm wrote:Kaikkein yksinkertaisimmillaan tämä onnistuu niin, että teet liitteenä olevan laisen kuvan, ja piirrät sen kaiken päälle oikeassa kulmassa (ja maskaat magentalla).Warlock wrote:Kuinka toteuttaa ammuntapelin näkökenttä niin, että kaikki, minne hahmo ei nää, on mustaa? Esim. Tapan Kaikki 4
Oblivios: Voi. Etsi hakusanoilla "TileGen" ja "Stigmator".
-
- Member
- Posts: 55
- Joined: Fri Apr 30, 2010 10:55 pm
Re: Tyhmät kysymykset (I/2010)
kiitti.
mutta nyt törmäsin muutamaan muuhun ongelmaan.
latasin tilegenin btw.
en löydä mitään hyviä valmiiksi tehtyjä tilesettejä enkä haluaisi ensimmäiseen peliin tehdä itse.
en ole kovin hyvä piirtämään (vielä) enkä edes tiedä mitään hyvää(ja halpaa/ilmaista) ohjelmaa sellaisen tekoon
ja probleemo löytämissäni tileseteissä on se että niissä on pienet valkoiset viivat tiilien välissä joka ärsyttää minua...
e: niin ja voiko tilesettiin luoda kaltevaa tasoa?
e2:sitte olis semmone ongelma pelissä jota olen tällä hetkellä suunnittelemassa että miten voi tehdä vai voiko ylipäätänsä liikkuvia
alustoja. toiseksi miten voi tehdä tappavan tiilen?
mutta nyt törmäsin muutamaan muuhun ongelmaan.
latasin tilegenin btw.
en löydä mitään hyviä valmiiksi tehtyjä tilesettejä enkä haluaisi ensimmäiseen peliin tehdä itse.
en ole kovin hyvä piirtämään (vielä) enkä edes tiedä mitään hyvää(ja halpaa/ilmaista) ohjelmaa sellaisen tekoon
ja probleemo löytämissäni tileseteissä on se että niissä on pienet valkoiset viivat tiilien välissä joka ärsyttää minua...
e: niin ja voiko tilesettiin luoda kaltevaa tasoa?
e2:sitte olis semmone ongelma pelissä jota olen tällä hetkellä suunnittelemassa että miten voi tehdä vai voiko ylipäätänsä liikkuvia
alustoja. toiseksi miten voi tehdä tappavan tiilen?
Re: Tyhmät kysymykset (I/2010)
Tilesettejä löytyy ainakin foorumien yleinen alueen vaapaasti käytettävät kuvat- topikkista.oblivios_tha_koodari wrote:kiitti.
mutta nyt törmäsin muutamaan muuhun ongelmaan.
latasin tilegenin btw.
en löydä mitään hyviä valmiiksi tehtyjä tilesettejä enkä haluaisi ensimmäiseen peliin tehdä itse.
en ole kovin hyvä piirtämään (vielä) enkä edes tiedä mitään hyvää(ja halpaa/ilmaista) ohjelmaa sellaisen tekoon
ja probleemo löytämissäni tileseteissä on se että niissä on pienet valkoiset viivat tiilien välissä joka ärsyttää minua...
e: niin ja voiko tilesettiin luoda kaltevaa tasoa?
e2:sitte olis semmone ongelma pelissä jota olen tällä hetkellä suunnittelemassa että miten voi tehdä vai voiko ylipäätänsä liikkuvia
alustoja. toiseksi miten voi tehdä tappavan tiilen?
Kaltevaa tasoa?
Liikkuvia alustoja.. voi, tietysti. CB:hen voi tehdä mitä vain, mielikuvitus rajana(no ei ehkä voi kääntää kännykälle yhteensopivaksi yms. ääripää juttuja). Teet objektin ja liikutat sitä edestakaisin, asetat törmäyksen ukkoon ja voìla. Tappava tile, katsot GetMap funktiolla osuiko ukko johonkin tietynlaiseen tileen, ja sitten esim. vähennät elämiä tai tapat ukon, jollain tapaa.
Re: Tyhmät kysymykset (I/2010)
Aiheuttaako tämä ohjelma kenellekkään mavia?
Itselle on jäänyt hieman epäselväksi, voiko cb:ssä palauttaa muistipalassa useamman kuin yhden kuvan osoitteen ilman ongelmia. Tässä ohjelmassa ei ole juurikaan hyötyä palauttaa kuvia muistipaloissa, mutta minulla on tekeillä ohjelma, missä haluaisin yhden tyypin soluun usean variaation samasta kuvasta, joka onnistuisi helpoiten tällä tyylillä..
Itselle on jäänyt hieman epäselväksi, voiko cb:ssä palauttaa muistipalassa useamman kuin yhden kuvan osoitteen ilman ongelmia. Tässä ohjelmassa ei ole juurikaan hyötyä palauttaa kuvia muistipaloissa, mutta minulla on tekeillä ohjelma, missä haluaisin yhden tyypin soluun usean variaation samasta kuvasta, joka onnistuisi helpoiten tällä tyylillä..
Code: Select all
img = LoadImage("media\map.bmp")
mem = return2picture( img )
AddText "paina hiirtä"
Repeat
If MouseHit(1) Then id = Not id
Drawimages( mem, 0,0, id )
DrawScreen
Forever
Function Drawimages( mem, x,y, id )
If id = 0 Then
DrawImage PeekInt(mem,0), x,y
Else
DrawImage PeekInt(mem,4), x,y
EndIf
EndFunction
Function return2picture( kuva )
mem = MakeMEMBlock(8)
img = CloneImage( kuva )
ResizeImage img, ImageWidth(kuva)/2, ImageHeight(kuva)/2
PokeInt mem, 0, kuva
PokeInt mem, 4, img
Return mem // palauttaa kuvien osoitteet muistipalassa..
EndFunction
Re: Tyhmät kysymykset (I/2010)
Ei aiheuta mavia, tuo on aivan toimiva systeemi.muistipala wrote:Aiheuttaako tämä ohjelma kenellekkään mavia?
Re: Tyhmät kysymykset (I/2010)
En millään saa toimivaa viivaa, tai tiedä minkäänlaista selitystä miten sen tekisin. A paikasta B viiva systeemi ois tarkoitus olla viivan tyyli. Klick piste klick johtaa sen sinhe.
edit:Ei enhää, mitää.
edit2: datsuni, tuokin on toimiva kiitos : )
edit:Ei enhää, mitää.
edit2: datsuni, tuokin on toimiva kiitos : )
Last edited by rami123 on Sun May 02, 2010 9:49 pm, edited 1 time in total.
Re: Tyhmät kysymykset (I/2010)
Tällaista?
Code: Select all
Dim POINTS(1, 1) As Integer, set%
Repeat
If MouseHit(1) Then
If set = 2 Then set = 0
POINTS(set, 0) = MouseX()
POINTS(set, 1) = MouseY()
set = set + 1
EndIf
If set = 2 Then Line POINTS(0, 0), POINTS(0, 1), POINTS(1, 0), POINTS(1, 1)
DrawScreen
Forever
EDIT:
Jaa.
Hengität nyt manuaalisesti.