Tyhmät kysymykset (I/2010)
Blogi - Peräpohjola - MERPG
-
- Advanced Member
- Posts:281
- Joined:Sat Jun 28, 2008 5:19 pm
- Location:Hämeessä miä
Re: Tyhmät kysymykset (I/2010)
writeline tallentaa merkkijonoiksi eli jos avaat tallennuksen notepadilla näet x:n ja y:n arvon numeroina,sankja wrote:Nassi_Setälle kysymys: Vaikka tuo tallennus ja lataus esimerkkisi toimiikin hyvin,niin ihmettelen seuraavaa...
Miten tuossa Nassi_Setän tallennus esimerkissä tuo latausjuttu pitäs ymmärtää, koska x ja y ladataan tiedostosta readline komennolla eli merkkeinä,niin miten circle käsky voi tulkita ne numeroiksi.Ja miten readline voi yleensäkään tallentaa x:ään ja y:hyn lataus kohdassa,kun ne eivät edes ole merkkijono muuttujia.
Voisiko Nassi_Setä tai joku muu valaista asiaa?
niin kuin ohjelma ne tallentaakin. Ja eikös numerotkin ole merkkejä

hupsista tuli kirjoitettua vähän hepreaa ja unohdettua 1 asia.
x ja y on määritelty globaaleiksi eli tuo funktio esimerkkini on pahaa purkkaa.
IMO parastapa toteuttaa tallennus\lataus on laittaa koodi suoraan päälooppiin ja unohtaa monimutkaiset funktiot
ja turhat globaali tsydeemit.


Re: Tyhmät kysymykset (I/2010)

Re: Tyhmät kysymykset (I/2010)

Re: Tyhmät kysymykset (I/2010)
elikkä?Nassi_Setä wrote:writeline tallentaa merkkijonoiksi eli jos avaat tallennuksen notepadilla näet x:n ja y:n arvon numeroina,sankja wrote:Nassi_Setälle kysymys: Vaikka tuo tallennus ja lataus esimerkkisi toimiikin hyvin,niin ihmettelen seuraavaa...
Miten tuossa Nassi_Setän tallennus esimerkissä tuo latausjuttu pitäs ymmärtää, koska x ja y ladataan tiedostosta readline komennolla eli merkkeinä,niin miten circle käsky voi tulkita ne numeroiksi.Ja miten readline voi yleensäkään tallentaa x:ään ja y:hyn lataus kohdassa,kun ne eivät edes ole merkkijono muuttujia.
Voisiko Nassi_Setä tai joku muu valaista asiaa?
niin kuin ohjelma ne tallentaakin. Ja eikös numerotkin ole merkkejä
EDIT:edit2: siis mäen osaa näit juttujahupsista tuli kirjoitettua vähän hepreaa ja unohdettua 1 asia.
x ja y on määritelty globaaleiksi eli tuo funktio esimerkkini on pahaa purkkaa.
IMO parastapa toteuttaa tallennus\lataus on laittaa koodi suoraan päälooppiin ja unohtaa monimutkaiset funktiot
ja turhat globaali tsydeemit., mutta kunhan pädin
Re: Tyhmät kysymykset (I/2010)
Itse katsoin parhaaksi tehdä tuon systeemin GoSub-aliohjelman avulla, eli periaatteessa sama kuin funktio..jaahas wrote:elikkä?Nassi_Setä wrote:writeline tallentaa merkkijonoiksi eli jos avaat tallennuksen notepadilla näet x:n ja y:n arvon numeroina,sankja wrote:Nassi_Setälle kysymys: Vaikka tuo tallennus ja lataus esimerkkisi toimiikin hyvin,niin ihmettelen seuraavaa...
Miten tuossa Nassi_Setän tallennus esimerkissä tuo latausjuttu pitäs ymmärtää, koska x ja y ladataan tiedostosta readline komennolla eli merkkeinä,niin miten circle käsky voi tulkita ne numeroiksi.Ja miten readline voi yleensäkään tallentaa x:ään ja y:hyn lataus kohdassa,kun ne eivät edes ole merkkijono muuttujia.
Voisiko Nassi_Setä tai joku muu valaista asiaa?
niin kuin ohjelma ne tallentaakin. Ja eikös numerotkin ole merkkejä
EDIT:edit2: siis mäen osaa näit juttujahupsista tuli kirjoitettua vähän hepreaa ja unohdettua 1 asia.
x ja y on määritelty globaaleiksi eli tuo funktio esimerkkini on pahaa purkkaa.
IMO parastapa toteuttaa tallennus\lataus on laittaa koodi suoraan päälooppiin ja unohtaa monimutkaiset funktiot
ja turhat globaali tsydeemit., mutta kunhan pädin
Code: Select all
A = 0
Repeat
A + 1
ClearText
AddText "A = "+A
AddText "Enter = Tallenna"
AddText "Backspace = Lataa"
If KeyHit(28) Then Gosub Tallenna // 28 = Enter
If KeyHit(14) Then Gosub Lataa // 14 = Backspace
DrawScreen
Forever
Tallenna:
Tallennus = OpenToWrite("Tallennus.dat")
WriteLine Tallennus, A
CloseFile Tallennus
Return
Lataa:
Tallennus = OpenToRead("Tallennus.dat")
A = ReadLine(Tallennus)
CloseFile Tallennus
Return
Re: Tyhmät kysymykset (I/2010)
-readline lukee tiedostossa olevan numeron numerona,jos on näin: a=readline(f)
-ja merkkeinä ,jos on näin: a$=readline(f).
Elikkä lukemistapa riippuisi muuttujasta,toivottavasti tässä on perää.

Re: Tyhmät kysymykset (I/2010)
Wut? En usko tuossa olevan mitään perää. ReadInt lukee 32bittisen kokonaisluvun, ReadLine sekä ReadString lukevat vain merkkijonon. Ja jos yrität laittaa muuttujaan jota ei ole määritelty merkkijonoksi, muuttujassa tulee olemana 0 tai 1.sankja wrote:Tota?! No ,kiitokset avusta.Elikkäs yhteenvetona tuosta vois vetäistä ,että
-readline lukee tiedostossa olevan numeron numerona,jos on näin: a=readline(f)
-ja merkkeinä ,jos on näin: a$=readline(f).
Elikkä lukemistapa riippuisi muuttujasta,toivottavasti tässä on perää.
Re: Tyhmät kysymykset (I/2010)
Lukemistapa ei riipu muuttujasta koska readline aina palauttaa merkkijonon. Eli ohjaa teksti merkkijonomuuttujaan ($-merkki muuttujanimen lopussa) niin saat sen varmasti oikeassa muodossa otettua talteen. Jos koitat sijoittaa merkkijonoa kokonaislukumuuttujaan niin CoolBasic koittaa muuntaa sen sellaiseksi. Esim.sankja wrote:Elikkä lukemistapa riippuisi muuttujasta,toivottavasti tässä on perää.
Code: Select all
SCREEN 800,600
a = "11x11"
b$ = "11x11"
Print "numeroksi suoraan muunnettuna: "+a+" merkkijonona: "+b$
WaitKey
Re: Tyhmät kysymykset (I/2010)

Re: Tyhmät kysymykset (I/2010)
Code: Select all
f=OpenToRead("tekstitiedosto.txt")
Dim _int(3) As Integer
For i=0 To 2
_int(i)=ReadLine(f)
Next i
For i=0 To 2
Text 0,10*i, _int(i)
Next i
Text 0,10*(i+1), ReadLine(f)
DrawScreen
WaitKey
Code: Select all
1
2
32
Ja katso, tekstiä!
E: Ja sitten kun pätemishalun laannuttua tutkin ylläolevia vastauksia, huomasin demonstroineeni täysin saman mitä yllä sanottiin...
Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (I/2010)
Elikkä jos writelinella on kirjoitettu tiedostoon vaikka luku 235 merkkijonona,niin se readlinella luetaan sieltä merkkijonona.
Mutta jos se luetaankin näin A=readline(f),niin tuo kokonaislukumuuttuja A muuttaa tuon merkkijono-"luvun" oikeaksi luvuksi 235.
Elikkä Mr Mondayn esimerkissä on nyt kommentoituna tuo kohta.

Code: Select all
A = 0
Repeat
A + 1
ClearText
AddText "A = "+A
AddText "Enter = Tallenna"
AddText "Backspace = Lataa"
If KeyHit(28) Then Gosub Tallenna // 28 = Enter
If KeyHit(14) Then Gosub Lataa // 14 = Backspace
DrawScreen
Forever
Tallenna:
Tallennus = OpenToWrite("Tallennus.dat")
'writeline tallentaa luvun tiedostoon merkkijonona
WriteLine Tallennus, A
CloseFile Tallennus
Return
Lataa:
Tallennus = OpenToRead("Tallennus.dat")
'tässä readline lukee koordinaatin merkkijonona
'tiedostosta ja tuo merkkijono sijoitetaan kokonaisluku
'muuttujaan->kokonaislukumuuttuja puolestaan muuttaa
'tuon koordinaatin kokonaisluvuksi
A = ReadLine(Tallennus)
CloseFile Tallennus
Return
Re: Tyhmät kysymykset (I/2010)
kun pyörrytän vihollisen niin se ei aina toimi, joten uskon että se on tuon koodinpätkän vika :S
Code: Select all
If newenemy\pyörtynyt=1 Then
If Timer()>seisoo+5000 Then
seisoo=Timer()
If newenemy\pyörtynyt=0
EndIf
EndIf
Re: Tyhmät kysymykset (I/2010)
Kokeileppas toimiiko tää:
Code: Select all
If newenemy\pyörtynyt=1 and Timer()>seisoo+5000 Then
seisoo=Timer()
newenemy\pyörtynyt=0
EndIf
Re: Tyhmät kysymykset (I/2010)

fixed
Code: Select all
If newenemy\pyörtynyt=1 Then
If Timer()>seisoo+5000 Then
seisoo=Timer()
newenemy\pyörtynyt=0
EndIf
EndIf
- koodaaja
- Moderator
- Posts:1583
- Joined:Mon Aug 27, 2007 11:24 pm
- Location:Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset (I/2010)
Lisäksi nimi "newenemy" vähän pelottaa, koska se kuulostaa vain uusimmalta viholliselta eikä for each-loopissa läpikäytävältä.
- Nameless_One
- Member
- Posts:63
- Joined:Fri Mar 26, 2010 5:05 pm
Re: Tyhmät kysymykset (I/2010)
Code: Select all
ukko=LoadObject("C:\Program Files\Coolbasic\Media\guy.bmp")
pelaaja=LoadObject("C:\Program Files\Coolbasic\Media\guy.bmp")
PositionObject ukko,83,74
MaskObject ukko,255,255,255
MaskObject pelaaja,255,255,255
x= 155
y= 155
s = 0 ' 0 = perustilanne, 1 = ylös, 2 = oikealle, 3 = alas, 4 = vasemmalle
i = 0 ' apumuuttuja joka laskee kierroksia
SetupCollision pelaaja,ukko,1,1,2
Repeat
ScreenPositionObject pelaaja,x,y
If LeftKey() And s=0 Then
s=4
i=1
PlayObject pelaaja,8,9
EndIf
If RightKey() And s=0 Then
s=2
i=1
PlayObject pelaaja,6,7
EndIf
If UpKey() And s=0 Then
s=1
i=1
PlayObject pelaaja,4,5
EndIf
If DownKey() And s=0 Then
s=3
i=1
PlayObject pelaaja,1,2
EndIf
If s>0 And i>0 Then
If s=1 Then y=y-1
If s=2 Then x=x+1
If s=3 Then y=y+1
If s=4 Then x=x-1
i=i+1
EndIf
If i = 17 Then
s=0
i=0
EndIf
DrawScreen
Until EscapeKey()
Semmonen jännä tasoloikka
Youtube-kanavani
Uusin video: Pelataas LoZ Oracle of Seasons - Osa 14 - Tarm Rauniot
Re: Tyhmät kysymykset (I/2010)
Danke, Jonez. CBKK helpottaisi tätä touhua kummasti...

Blogi - Peräpohjola - MERPG
Re: Tyhmät kysymykset (I/2010)
1.
obj_origoX = ruutu_origoX + ruutu_leveys / 2
obj_origoY = -ruutuOrigoY - ruutu_korkeus / 2
2. Objekteihin vaikuttaa kameran sijainti, kuviin ei.
Noista säätämällä saat

@Nameless_One:
Ongelmasi johtuu siitä, että vaikka ukko törmää esteeseen, x- ja y-koordinaatteja kasvatetaan silti jos etenemistä jatketaan. Kokeile vaikka kirjoittamalla ko. koordinaatit ruudulle. Kun koordinaatit ovat kohdassa jossa esteen törmäysalue ei enää vaikuta, ukko "hyppää" tähän kohtaan. SetupCollision on tarkoitettu käytettäväksi enemmänkin Translate- ja MoveObject-komentojen kanssa.
Mutta ei huolta. SetupCollision on aika huono valinta tällaisessa systeemissä muutenkin. Tee sen sijaan näin: Aina kun objektille annetaan käsky liikkua eteenpäin, tehdään aluksi tarkastus onko edessä seinä. Jos on, etenemistä ei suoriteta. Tässä on erittäin hyödyllistä käyttää vaikka kaksiulotteista taulukkoa.
- Nameless_One
- Member
- Posts:63
- Joined:Fri Mar 26, 2010 5:05 pm
Re: Tyhmät kysymykset (I/2010)
Kiitos!


Semmonen jännä tasoloikka
Youtube-kanavani
Uusin video: Pelataas LoZ Oracle of Seasons - Osa 14 - Tarm Rauniot