Tyhmät kysymykset (II/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Viltzu »

matti3 wrote: Lataa_peli :
ff = OpenToRead("save/"+slot+"_"+slot_j +".bm")
ReadLine ff
CloseFile ff[/code]
matti3 wrote:Kyllä tuon osaan, mutta peli jumittuu, kun yrittää ladata jotain.
Readline on funktio, joten se palauttaa jotain. Tässä tapauksessa lukee rivin tiedostosta, mutta sitä ei saa tallennettua mihinkään koska et tavallaan ole määritellyt sille muuttujaa, eli esim. rivi$=Readline (ff)
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Nyt toimii muuten, mutta yksi pikkuinen ongelma. Tuo ei löydä Slot_1 tekstiä. :OO
talennus_nimet.td:

Code: Select all

Slot_1=jouluo
exe:

Code: Select all

Ladataan_peli :

    Include "data/tallennus_nimet.td"
    Wait 500
    Goto Ladataan
Ladataan :
AddText "(1)" +Slot_1

Repeat 
  If KeyHit(cbkey1) Then
    ClearKeys
    ClearText
    slot_j=1
    Goto Lataa_peli
  EndIf

  DrawScreen
Until KeyHit(cbkeyreturn)

End
Tiedän vian:
Slot_1 ei ole merkkijono, mutta miten muutan sen?
Koitin:
Sloot$ = Slot_1
Ei
Sloot$ = "Slot_1"
Juu
Tulostaa:
(1)Slot_1
Sitten
Sloot$ = ""+Slot_1
Ei mitään. :)
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Sumppi
Active Member
Posts: 163
Joined: Wed Dec 03, 2008 8:07 pm

Re: Tyhmät kysymykset (II/2009)

Post by Sumppi »

matti3 wrote: Slot_1 ei ole merkkijono, mutta miten muutan sen?
tallennus_nimet.td:

Code: Select all

Slot_1$="jouluo"
Grandi wrote:Sumpille piste. Jos nimimerkin m-kirjain muutetaan r:ksi, p-kirjain v:ksi ja 3 viimeistä kirjainta "vor":iksi, saadaan "survivor", eli suomeksi selviytyjä. Melkoinen yhteensattuma!
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Sitten vielä viimeinen kysymys tähän liittyen (toivottavasti) :D

WriteLine r,"Slot_1$=" +nimi
Se ei tallenna sitä tuossa kohtaa "" merkkien sisään. Vaan suoraan. Miten voin laittaa tuohon ne heittomerkit? Jos laitan näin.

WriteLine r,"Slot_1$=" +"nimi"
Niin ei toimi. :D
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by Viltzu »

matti3 wrote:Sitten vielä viimeinen kysymys tähän liittyen (toivottavasti) :D

WriteLine r,"Slot_1$=" +nimi
Se ei tallenna sitä tuossa kohtaa "" merkkien sisään. Vaan suoraan. Miten voin laittaa tuohon ne heittomerkit? Jos laitan näin.

WriteLine r,"Slot_1$=" +"nimi"
Niin ei toimi. :D
Laita WriteLine r,"Slot_1$ = "+Chr(34)+nimi+Chr(34)
Chr muuttaa siis asciin merkiksi, ja 34 on lainausmerkki.

btw. heittomerkki on ´ eikä " ;D " on lainausmerkit.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Nyt olen miettinyt pääni puhki ja katsonut manuaalia, mutta en keksi vikaa :x

Tässä ollaan siis lataamassa tietoja.

Code: Select all

Lataa_peli :
Include "save/" +Slot_1 +"_"+slot_j +".bm"
Rahat=Rahaat
AddText "Lataus suoritettu "
AddText "Odota hetki... "
DrawScreen
Wait 500
Goto Aloita_peli
Kaikki tiedosto nimet ovat mielestäni oikein, mutta silti tuo ei ymmärrä sitä, että ottaa ne muuttujat tiedostosta vaan esimerkiksi Rahat on pyöreä NOLLA. :D

Tässä on tuo save tiedosto:

Code: Select all

Rahaat=400
kauppa$="Kaupunkissa oleva talo"
kauppa_taso=6
ps: Kiitos kaikille auttajille ja etukäteen kiitos jos autatte tähän. :)
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by valscion »

matti3 huomhuomhuom!!! Älä käytä Include-komentoa kun haluat tallennustiedoston! Include-komennolla lisätyt tiedostot lisätään koodiin suoraan kääntövaiheessa, eikä siis julkaisuversiossa tallennus toimi! Käytä mielummin ReadString ja ReadInt -komentoja

EDIT: Luinkin edelliseltä sivulta viestejä. Siltikin, täytyy itsekin sanoa, että _UNOHDA_ Include-komento, kun haluat tehdä tallennustiedostoja. Se ei toimi muilla kuin sinulla, jos siis jossain vaiheessa haluat peliäsi jakaakin eteenpäin.
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
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Jaa-a en tiä minulla ainakin toimi nämä:

Code: Select all

//Main file
Include "kokeilu.CB"

rahat=rahat2

Text 0,0,rahat
Text 0,20,rahat2
DrawScreen
WaitKey

Code: Select all

//kokeilu.CB
rahat2=400

Edit: Niin tosiaan, kuten VesQ sanoi, niin kannattaa tehdä oma systeemi, siten voit myös salata tietoa.
Edit2: ReadString on vähän... Joten jos yhdellä rivillä on yksi "tieto" niin käytä ReadLine:ä.
Image
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (II/2009)

Post by valscion »

phons wrote:Jaa-a en tiä minulla ainakin toimi nämä:

Code: Select all

//Main file
Include "kokeilu.CB"

rahat=rahat2

Text 0,0,rahat
Text 0,20,rahat2
DrawScreen
WaitKey

Code: Select all

//kokeilu.CB
rahat2=400

Edit: Niin tosiaan, kuten VesQ sanoi, niin kannattaa tehdä oma systeemi, siten voit myös salata tietoa.
Edit2: ReadString on vähän... Joten jos yhdellä rivillä on yksi "tieto" niin käytä ReadLine:ä.
Käännäppä eka tuo "Main file" EXE:ksi, sitten muuta "kokeilu.CB" tiedostossa rivi muotoon "rahat2=700". Muuttuuko se rahojen määrä silloin muka myös EXE:ssä? Epäilen...
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
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (II/2009)

Post by phons »

Tiedän hyvin ettei se toimi EXEnä. Ratkoin vain hänen ongelmansa eikä hän edes puhunut mitään exeksi käännöstä.

Tässä sinulle pieni tallennus filun avaus systeemi.

Code: Select all


Dim intit(2) As Integer
Dim nimi As String

Function OpenSaveFile(file$)
    filu=OpenToWrite(file$)
    For i=1 To 2
        intit(i)=ReadInt(filu) //Eka luettava(intit(1)) on vaikka asukasmäärä ja toka(intit(2)) on vaikka vuosi
        nimi=ReadLine(filu) //Kaupungin nimi
    Next i
EndFunction
Tässä esimerkki filu:
Eka numero on siis vaikka asukasmäärä, toka on vuosi ja viimeinen teksti on kaupungin nimi.

Code: Select all

100000
2100
Phonsland
Image
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset (II/2009)

Post by Jani »

phons wrote:Tiedän hyvin ettei se toimi EXEnä. Ratkoin vain hänen ongelmansa eikä hän edes puhunut mitään exeksi käännöstä.

Tässä sinulle pieni tallennus filun avaus systeemi.

Code: Select all


Dim intit(2) As Integer
Dim nimi As String

Function OpenSaveFile(file$)
    filu=OpenToWrite(file$)
    For i=1 To 2
        intit(i)=ReadInt(filu) //Eka luettava(intit(1)) on vaikka asukasmäärä ja toka(intit(2)) on vaikka vuosi
        nimi=ReadLine(filu) //Kaupungin nimi
    Next i
EndFunction
Tässä esimerkki filu:
Eka numero on siis vaikka asukasmäärä, toka on vuosi ja viimeinen teksti on kaupungin nimi.

Code: Select all

100000
2100
Phonsland
Noin tuo ei takuulla toimi. ReadInt(filu) -> ReadLine(filu) jos tuollasella systeemillä jatkaa.
Lisäksi nimen luku pois silmukasta.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Tässä on tallennus/save engine, mutta tuo ei ymmärrä noita minun muuttujia. Aina kun lataa rahaa on 0 vaikka tallensin 700. :O

Code: Select all

'This sub-program will save game 
savegame:

    f=OpenToWrite("save\Save.dat")
    
        WriteInt f,"Rahat=" +Rahat
        WriteInt f,"kauppa$=" +Chr(34)+kauppa+Chr(34)
    
    CloseFile f
    AddText "Onnistunut tallennus. =)"
    DrawScreen
    WaitKey
    Goto Aloita_peli
Return

'This sub-program will load game 
loadgame:

    f=OpenToRead("save\Save.dat")
    
        Rahat=ReadInt(f)
        kauppa=ReadInt(f)
    
    CloseFile f
    Goto Aloita_peli
Return
E. Ja siis tiedot tallentuvat tällä tavalla:

Code: Select all

NULNULNULNULNULNULNULNUL
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset (II/2009)

Post by Sly_Jack0 »

Teinpä pienen esimerkin tästä tallennusjutusta. Olepa hyvä.

Code: Select all

Global player, rahat

player = LoadObject("media/guy.bmp",72)

rahat = 100

Repeat
	
	MoveObject player,(UpKey() - DownKey()) * 2
	TurnObject player,(LeftKey() - RightKey()) * 5
	
	If KeyDown(cbkeyr)
		rahat = rahat +1
	EndIf
	
	//F5 tallentaa ja F6 lataa pelin.
	If KeyHit(cbkeyf5)
		saveGame()
	ElseIf KeyHit(cbkeyf6)
		loadGame()
	EndIf
	
	Text 0,0,"Rahat: " + rahat
	
	DrawScreen
	
Forever

//Pelin tallennus
Function saveGame()
	
	f = OpenToWrite("save.sav") //Avataan tallennustiedosto
		
		//Kirjoitetaan pelaajan nykyiset koordinaatit tiedostoon.
		WriteInt f,ObjectX(player)
		WriteInt f,ObjectY(player)
		
		//Myös rahat
		WriteInt f,rahat
		
	CloseFile f

EndFunction

//Pelin lataus
Function loadGame()
	
	//Jos tallennus ON olemassa niin avataan se.
	If FileExists("save.sav")
	
		f = OpenToRead("save.sav")
			
			//Luetaan koordinaatit samassa järjestyksessä kuin ne kirjoitettiinkin
			tmpX = ReadInt(f)
			tmpY = ReadInt(f)
			
			//Luetaan rahan määrä
			rahat = ReadInt(f)
			
		CloseFile f
		
		//Asetetaan pelaaja juuri ladattuihin koordinaatteihin.
		PositionObject player,tmpX,tmpY
		
	EndIf
	
EndFunction
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Kohta loppuu mielenkiinto ohjelmointiin. Vaikka annoit toimivan niin ei toimi. Se kun ei perhana vaihda tuota raha määrää ladatuksi pelissäni. : OOO

Joten laitan koko paskan tänne. :O

Code: Select all

FrameLimit 40

SCREEN 640,480


AddText "Ladataan..."

Goto Alku_valikko

Uusi_peli :
Rahat=1000
kauppa$="Pieni kioski"
kauppa_taso=6
tyon_tekijat=1
menot=0
tulot=0
paiva=1
kuukausi=1
vuosi=2009
valittu=0
tuotteita=0
tuotteita_mahtuu=100
Goto Aloita_peli

Alku_valikko :
ClearText
AddText "V.1.0"
AddText ""
AddText ""
AddText "(1) Aloita uusi peli"
AddText "(1) Lataa vanha peli"
AddText "(2) Opas"
AddText "(3) Lopeta"

Repeat 
  If KeyHit(cbkey1) Then
    ClearKeys
    ClearText
    Goto Uusi_peli
  EndIf
  If KeyHit(cbkey2) Then
    ClearKeys
    ClearText
    Goto Tallenna_lataa
  EndIf
  If KeyHit(cbkey3) Then
    ClearKeys
    ClearText
    Goto Lopeta
  EndIf

  DrawScreen
Until KeyHit(cbkeyreturn)

End

Juoni :
ClearText
AddText "Pelissä voit tehdä kaiken näköistä."
WaitKey
Goto Alku_valikko

Aloita_peli :

Include "data/kauppa_taso.td"

    ClearText
    Locate 30,10 
    AddText "Päivämäärä: " +paiva +"." +kuukausi +"." +vuosi
    Locate 30,45 
    AddText "(1)Osta tuotteita varastoosi"
    AddText "(2)Säädä tuotteesi hintoja"
    AddText "(3)Palkkaa työntekijöitä"
    AddText "(4)Laajenna kauppaasi"
    AddText "(5)Seuraava viikko"
    AddText "(6)Tietoa firmastasi"
    AddText "(A)Lopeta"
    Locate 290,10
    AddText "Rahasi: " +Rahat
    AddText "Kauppasi: " +kauppa
    AddText "Työntekijäsi: " +tyon_tekijat
    AddText "Tuotteita varastossasi: " +tuotteita
    AddText "Tuotteita mahtuu varastoon: " +tuotteita_mahtuu
    AddText ""
    AddText "Tuottosi/menosi"
    AddText "Tuottosi: " +tulot
    AddText "Menosi: " +menot

Repeat
  
  If KeyHit(cbkey1) Then 
    ClearKeys 
    ClearText 
    Goto Osta_tuotteita_varastoon
  EndIf
  If KeyHit(cbkey2) Then
    ClearKeys
    ClearText
    Goto Tallenna_lataa
  EndIf
  If KeyHit(cbkey3) Then
    ClearKeys
    ClearText
    Goto Aloita_peli
  EndIf
If kokouksia > 2 Then
  If KeyHit(cbkey4) Then
    ClearKeys
    ClearText
    Goto Aloita_peli
  EndIf
EndIf
  If KeyHit(cbkey5) Then
    ClearKeys
    ClearText
    Goto Aloita_peli
  EndIf
  If KeyHit(cbkey6) Then
    ClearKeys
    ClearText
    End
  EndIf
  DrawScreen
Until KeyHit(cbkeyreturn)



Osta_tuotteita_varastoon :
ClearText
Repeat
Include "data/osta_tuotteita.td"

DrawScreen()

Until KeyHit(cbkeyspace)
CloseInput
Goto Aloita_peli



Tallenna_lataa :
Repeat
   //F5 tallentaa ja F6 lataa pelin.
   If KeyHit(cbkeyf5)
      saveGame()
   ElseIf KeyHit(cbkeyf6)
      loadGame()
   EndIf
   If KeyHit(cbkeyh)
      Goto Aloita_peli
   EndIf
   
   Text 0,0,"Rahat: " + Rahat
   Text 0,20,"F5 Savegame"
   Text 0,40, "F6 Loadgame"
   DrawScreen
   
Forever

//Pelin tallennus
Function saveGame()
   
   f = OpenToWrite("save.sav") //Avataan tallennustiedosto
   
      //Myös rahat
      WriteInt f,Rahat
      
   CloseFile f

EndFunction

//Pelin lataus
Function loadGame()
   
   //Jos tallennus ON olemassa niin avataan se.
   If FileExists("save.sav")
   
      f = OpenToRead("save.sav")
       
         //Luetaan rahan määrä
         Rahat = ReadInt(f)
         
      CloseFile f

   EndIf
   
EndFunction




Lopeta :


End

Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset (II/2009)

Post by Sly_Jack0 »

Koitappas asettaa Rahat - muuttuja globaaliksi. Muuten et voi käyttää sitä funktiossa.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset (II/2009)

Post by matti3 »

Nyt toimii kiitos. :D

Nyt tulee varmaan aika vaikea kysymys ja jos vaikea toteuttaa niin krediittiä tulee. :O

Miten saa sellaisen, että autot liikkuvat maan tiellä ja ihmiset kävely tiellä? :O
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (II/2009)

Post by Hene »

Miten saan luodin pysähtymään, kun se osuu seinään? Käytössä yksi näistä CB:n oletusmapeista.
"Baby," I said. "I'm a genius but nobody knows it but me."
Nasse-setä
Member
Posts: 54
Joined: Fri Apr 03, 2009 8:12 pm
Location: Loviisa

Re: Tyhmät kysymykset (II/2009)

Post by Nasse-setä »

Pysähtymään? Vai tarkoitatko miten poistaa se jos se osuu seinään?
Osallistu suuren tilastoon -> viewtopic.php?f=13&t=1756
Nassi_Setä
Advanced Member
Posts: 281
Joined: Sat Jun 28, 2008 5:19 pm
Location: Hämeessä miä

Re: Tyhmät kysymykset (II/2009)

Post by Nassi_Setä »

Hene wrote:Miten saan luodin pysähtymään, kun se osuu seinään? Käytössä yksi näistä CB:n oletusmapeista.
jos käytät tyyppejä tarkistat osuuko luoti seinään,vaikkapa näin:

Code: Select all

'Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then 'jos luoti osuu kartan hit-kerrokseen
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
        EndIf        
    Next luoti
\../(-_-)\../ <---klick MyBrute Image
Jotain evilii on tekeillä....
Nasse-setä
Member
Posts: 54
Joined: Fri Apr 03, 2009 8:12 pm
Location: Loviisa

Re: Tyhmät kysymykset (II/2009)

Post by Nasse-setä »

Kertokaas helppokäyttöinen rar-purkuohjelma. Ei mitään kuukauden ilmaisversioita yms.
EDIT: Laittaisitko vielä latauslinkin? Kun googletuksella tulokset olivat vähän niitä jä näitä.
Last edited by Nasse-setä on Fri Jul 03, 2009 3:28 am, edited 2 times in total.
Osallistu suuren tilastoon -> viewtopic.php?f=13&t=1756
Locked