Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Miten inputtiin pistettävää teksii voi rajata?
Siis että siihen ei voi kirjoittaa esim a eli jos vaikka kirjotan auto niin tulee uto
Vai onko tämmönen edes mahdollista?
Siis että siihen ei voi kirjoittaa esim a eli jos vaikka kirjotan auto niin tulee uto
Vai onko tämmönen edes mahdollista?
-
- Newcomer
- Posts: 27
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Kajaani
Re: Tyhmät kysymykset
Inputista saatavasta merkkijonosta voi poistaa tietyn merkin korvaamalla sen tyhjälläSuffer wrote:Miten inputtiin pistettävää teksii voi rajata?
Siis että siihen ei voi kirjoittaa esim a eli jos vaikka kirjotan auto niin tulee uto
Vai onko tämmönen edes mahdollista?
nimi=Replace(nimi,"a","")
Code: Select all
Repeat
nimi$=Input("")
nimi=Replace(nimi,"a","")
Text 0,15,nimi
DrawScreen
Until KeyHit(cbkeyreturn)
Re: Tyhmät kysymykset
Kaikki on mahdollista. Tässä pieni esimerkki:Suffer wrote:Miten inputtiin pistettävää teksii voi rajata?
Siis että siihen ei voi kirjoittaa esim a eli jos vaikka kirjotan auto niin tulee uto
Vai onko tämmönen edes mahdollista?
Code: Select all
locate -100,-100 'laitetaan input pois ruudusta
repeat
nimi$=input("")'inputti on käytössä, mutta ei näy ruudussa
nimi$=replace(nimi$,"a","")'poistetaan a - kirjaimet
text 0,0,nimi$+"|"'kirjoitetaan nimi + "|"- kursori
-Pate5
CoolBasic henkilökuntaa
Graafikko
Graafikko
Re: Tyhmät kysymykset
Ok.Juuri tuota tarkoitin. Kiitokset.
Re: Tyhmät kysymykset
Mikä tässä on vikana?
Code: Select all
SCREEN 600,400
Type BOTTI
Field obj
Field hp
Field esine$
Field puoli
EndType
Const OMA = 1
Const VIHU = 2
oma_master = LoadObject("Media\guy.bmp")
vihu_master = LoadObject("Media\car.bmp")
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(oma_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = OMA
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(oma_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = OMA
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(oma_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = OMA
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(vihu_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = VIHU
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(vihu_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = VIHU
robo.BOTTI = New(BOTTI)
robo\obj = CloneObject(vihu_master)
robo\hp = 100
robo\esine$ = "Gun"
robo\puoli = VIHU
oma_kohta = 0
vihu_kohta = 0
For robo.BOTTI = Each BOTTI
If robo\puoli = OMA Then
PositionObject robo\obj,-250,50+oma_kohta*64
oma_kohta + 1
EndIf
If robo\puoli = VIHU Then
PositionObject robo\obj,250,50+vihu_kohta*64
vihu_kohta + 1
EndIf
Next robo
Repeat
For robo.BOTTI = Each BOTTI
Select robo\esine$
Case "Gun"
lähin = 0
lähin_matka = 10000
For vihu.BOTTI = Each BOTTI
If Distance2 (vihu\obj, robo\obj) < lähin_matka And (Not vihu\puoli = robo\puoli) Then
lähin_matka = Distance2 (vihu\obj, robo\obj)
lähin = vihu\obj
EndIf
Next vihu
PointObject robo\obj, lähin
EndSelect
Next robo
DrawScreen
Forever
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Re: Tyhmät kysymykset
Yhden virheen löysin ainakin, riviltä joka näytti tältä
Tässä siis laitat muuttujan robo/puoli muuttujan arvoksi muuttujan VIHU, jota ei ilmeisesti ole olemassa
Otaksun että tarkoitit tällä tekstimuuttujaa, eli näin
Itse tekisin homman kyllä kokonaisluvulla, jos puoli = 0 se on oma, ja jos 1 niin vihu.
Code: Select all
robo\puoli = VIHU
Otaksun että tarkoitit tällä tekstimuuttujaa, eli näin
Code: Select all
robo\puoli = "VIHU"
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Mutta eihän puoli ole merkkijonomuuttujaCCE wrote:Yhden virheen löysin ainakin, riviltä joka näytti tältäTässä siis laitat muuttujan robo/puoli muuttujan arvoksi muuttujan VIHU, jota ei ilmeisesti ole olemassaCode: Select all
robo\puoli = VIHU
Otaksun että tarkoitit tällä tekstimuuttujaa, eli näinCode: Select all
robo\puoli = "VIHU"
Re: Tyhmät kysymykset
Code: Select all
Const VIHU = 2
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Kehittäjä
CoolBasic Classic
Re: Tyhmät kysymykset
Heti kun sen käynnistää tulee Memory Access Violation. Ja tuon koodin tarkoitus on kääntää robotti lähimpää vihollista päin.Ilmuri wrote:Sami345 voisi toki kertoa, että mikä siinä ei toimi oikein ja mitä sen pitäisi tehdä, jottei meidän tarvitsisi ruveta sitä arvailemaan.Code: Select all
Const VIHU = 2
EDIT:
Ja tuota robojen luontia ei tule lopulliseen peliin. Ne on siellä vain testausta varten. Lopulliseen peliin tulee kauppa josta saa ostaa robotteja ja aseita niille.
-
- Advanced Member
- Posts: 335
- Joined: Tue Aug 28, 2007 3:55 pm
- Location: Siellä jossain
Re: Tyhmät kysymykset
Ongelma taitaa tulee tuossa Select kohdassa, koska Selectissä ei varmaankaan voi käyttää merkkijonoa(?) en ole sitten tästä varma Mutta virhe ainakin tullee rivillä 68, eli "Select robo\esine$"
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee
Joku projekti meneillään... Mitähän siitäkin tulee
Re: Tyhmät kysymykset
Kyllä select - casella voi verrata myös merkkijonomuuttujia. Jos ei ole jostain asiasta varma, niin ainahan voi tehdä pikaisen testin cb:llä.
Sain toimimaan kun muutin for - each - silmukassa noi muuttujanimet erilaisiksi kun ne muuttujanimet, joilla loit ne. Eli ei enää robo ja vihu, vaan irobo ja ivihu.
Täytyy kyllä myöntää etten tiedä mistä se mavi lopulta tuli . Kai se jotenkin vertaili niitä siihen viimeksi luotuun bottiin ja sekoili jotenkin.
Sain toimimaan kun muutin for - each - silmukassa noi muuttujanimet erilaisiksi kun ne muuttujanimet, joilla loit ne. Eli ei enää robo ja vihu, vaan irobo ja ivihu.
Täytyy kyllä myöntää etten tiedä mistä se mavi lopulta tuli . Kai se jotenkin vertaili niitä siihen viimeksi luotuun bottiin ja sekoili jotenkin.
Re: Tyhmät kysymykset
Code: Select all
Const VIHU = 2
...
For vihu.BOTTI = Each BOTTI
Re: Tyhmät kysymykset
Entäs kuinka menetellään kun halutaan esim. kaikki aakkoset pois, ja jätetään vain numerot?project coder wrote:Inputista saatavasta merkkijonosta voi poistaa tietyn merkin korvaamalla sen tyhjälläSuffer wrote:Miten inputtiin pistettävää teksii voi rajata?
Siis että siihen ei voi kirjoittaa esim a eli jos vaikka kirjotan auto niin tulee uto
Vai onko tämmönen edes mahdollista?
nimi=Replace(nimi,"a","")
Inputissa ei varmaan suoraan voi rajata.Code: Select all
Repeat nimi$=Input("") nimi=Replace(nimi,"a","") Text 0,15,nimi DrawScreen Until KeyHit(cbkeyreturn)
Re: Tyhmät kysymykset
Vaikka näin:
Code: Select all
Repeat
nimi$=Input("")
For c = 0 To 255
If c < 48 Or c > 57 Then
nimi$ = Replace(nimi$,Chr(c),"")
EndIf
Next c
Text 0,15,nimi
DrawScreen
Forever
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Re: Tyhmät kysymykset
Tuo kirjoittaa silti Inputin näkyviin. Jos haluat etteivät kirjaimet näy milloinkaan, niin käytä Locate komentoa ja siirrä Input ruudun ulkopuolelle. Katso esimerkkikoodi:Harakka wrote:Vaikka näin:Code: Select all
Repeat nimi$=Input("") For c = 0 To 255 If c < 48 Or c > 57 Then nimi$ = Replace(nimi$,Chr(c),"") EndIf Next c Text 0,15,nimi DrawScreen Forever
Code: Select all
Locate 0,-13
Repeat
If Timer()>record+500 Then blink=Not blink:record=Timer()
nimi$=Input("")
For c = 0 To 255
If c < 48 Or c > 57 Then
nimi$ = Replace(nimi$,Chr(c),"")
EndIf
Next c
Text 0,0,nimi
If blink Then Box TextWidth(nimi$),TextHeight(nimi$),TextWidth("a"),1
DrawScreen
Forever
EDIT:
Lisäsin vielä omaan koodiini sen Inputin välkkyvän viivan.
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset
Mulla ois kolme todella tyhmää kysymystä. Elikkä siis 1.Miten luon alku valikon 2.Miten teen yhteen peliin useamman kentän niin että suraavaan kenttään pääsee tietystä kohtaa edellistä kenttää? ja 3.miten luon vihollisille tekoälyn niin että ne tulee ja koittaa tappaa sut niin ettei ne kuitenkaan tule seinien läpi.
Duuba dei!!
tekstiä kuvaan
eli voiko tekstiä kirjoittaa kuvaan?
HOX koodi on suoraan leikattu isommasta koodista joten siinä ei esitellä kuvamuuttujaa yms.
Code: Select all
Color 255,255,255
DrawToImage img1
Text MouseX(),MouseY(),texti$
DrawToScreen
SaveImage img1,"Text.bmp"
Re: Tyhmät kysymykset
Kyllä voi. Jos kuvaan ei ilmesty mitään, muuta y-kordinaatti negatiivikseksi (-Mousey()).
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Re: Tyhmät kysymykset
Eivät nämä nyt niin tyhmiä kysymyksiä ole.maukka wrote:Mulla ois kolme todella tyhmää kysymystä. Elikkä siis 1.Miten luon alku valikon 2.Miten teen yhteen peliin useamman kentän niin että suraavaan kenttään pääsee tietystä kohtaa edellistä kenttää? ja 3.miten luon vihollisille tekoälyn niin että ne tulee ja koittaa tappaa sut niin ettei ne kuitenkaan tule seinien läpi.
Tässä vähän apua:
1. Helpoiten voit tehdä vaikka näin:
Lataa haluamasi nappulat vaikka objekteina. Piilota hiiri ShowMouse-komennolla. Lataa myös hiiri objektina ja aseta se oikealle paikalle PositionObject-komennon ja MouseWX()- ja MouseWY()-funktioiden avulla. Tarkista hiiren ja nappuloiden päällekkyys ObjectsOverlap()-funktiolla. Tarkista klikkaukset MouseHit()-funktiolla. Jos hiiri on nappulan päällä ja hiirtä klikataan, siirrytään peliin GoTo-komennolla.
Esimerkki:
Code: Select all
showmouse off
nappula1=loadobject("media/uusipeli.png")
nappula2=loadobject("media/lopeta.png")
hiiri=loadobject("media/hiiri.png")
positionobject napppula2,0,-100
repeat
positonobject hiiri,mousewx(),mousewy()
if objectsoverlap(hiiri,nappula1)and mousehit(1) then goto peli
if objectsoverlap(hiiri,nappula2)and mousehit(1) then end
drawscreen
forever
2.Kannattaa asettaa ensimmäisen maan maaliin tile-editorilla datakerrokseen jokin numero, esimerkiksi 1. Tarkistet sitten GetMap()-funktiolla onko oma datakerroksen numero yhden kohdalla. Jos on mennään toiseen maahan. Kannattaa myös poistaa kaikki media ClearObjects-komennolla. Huomaa, että jos olet käyttänyt tyyppi-objekteja, poista ne DeleteObject-komennolla ennen ClearObjects:ia.
Esimerkki:
Code: Select all
Repeat
'tähän kaikki maan jutut
if getmap(3,objectx(oma),objecty(oma),maa)=1 then goto maa2
forever
maa2:
'poista kaikki objektit tyypeistä
clearobjects
'tähän maa2
Toivottavasti tästä selostuksesta oli apua.
-Pate5
CoolBasic henkilökuntaa
Graafikko
Graafikko
-
- Member
- Posts: 60
- Joined: Sun Sep 09, 2007 8:46 pm
Re: Tyhmät kysymykset
Nyt tulee tyhmin kysymys mitä täällä ollaan kysytty.En muista miten sai sellasen animoidun valikon. Tarkotan siis että kun hiiri on play nappulan päällä niin play nappula muuttuu erillaiseks animaatiossa on kaks framea sähläsin tällästä, mut ei toimi.
Ja jos jotain kiinnostaa millanen se peli on niin täs ois yks Screenshot : http://img232.imageshack.us/img232/340/kuvaty1.png
Code: Select all
If ObjectsOverlap(hiiri,multinappi) Then
päällä="MultiPlay"
ElseIf ObjectsOverlap(hiiri,playnappi) Then
päällä="Play"
Else
päällä=""
EndIf
If päällä="MultiPlay" Then
PlayObject multinappi,2
ElseIf päällä="Play" Then
PlayObject playnappi,2
Else
EndIf
If päällä="" Then
PlayObject multinappi,0
PlayObject playnappi,0
EndIf