lataa ja tallenna peli

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
Nassi-setä(en muista salista)

lataa ja tallenna peli

Post by Nassi-setä(en muista salista) »

niin mul ois semmonen ongelma et en tiiä miten ladataan ja tallennetaan peli kunnolla?
(ei CB:n omia komentoja hajeta,ne ei toimi kunolla)
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: lataa ja tallenna peli

Post by vilQuri »

Code: Select all

AddText "Liiku nuolista"
AddText "F5 = Tallenna"
AddText "F7 = Lataa"

'Default Position 
x=200
y=150

Repeat

    'Upadte controls
    If LeftKey() Then x=x-1
    If RightKey() Then x=x+1
    If UpKey() Then y=y-1
    If DownKey() Then y=y+1 

    'draw the ball
    Color cbred
    Circle x-16,y-16,32,32
    
    'Save/load
    If KeyHit(cbkeyf5) Then Gosub TALLENNUS
    If KeyHit(cbkeyf7) Then Gosub LATAUS
    
    
    Text 300,0,x
    Text 300,20,y
    
    DrawScreen

Until EscapeKey()

TALLENNUS:

l=OpenToWrite("media\joku.joku")//Avataan tidosto kirjoittamista varten jos sitä ei ole luodaan se
 WriteInt l,x//Kirjoitetaan tiedostoon muuttuja X:än tiedot
 WriteInt l,y//ja sama taas mutta Y:llä
 CloseFile l//suljetaan tiedosto käytön jälkeen
Return

LATAUS:

l=OpenToRead("media\joku.joku")
 x=ReadInt(l)//Luetaan tiedostosta muuttujan x tiedot
 y=ReadInt(l)//ja sama y:llä
 CloseFile l//suljetaan tiedosto käytön jälkeen
Return 
Elikkä katso toi, saat lisää tietoa noista OpenToWrite ja OpenToRead käskyistä manuaalista :P
Vähän muunneltu manuaalin esimerkki
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: lataa ja tallenna peli

Post by valscion »

Looppaa kaikkien objektien läpi NextObject() ja InitObjectList() komennoilla ja tallenna jokaisen objektin koordinaatit ja kääntymiskulman ObjectAngle(objekti) komennolla. Tallenna nämä tiedot vaikkapa .dat tiedostoon tietyssä järjestyksessä ja ladatessasi pelin tarkistat nuo tiedot ja asetat objekteille nämä arvot.
Kannattaa käyttää "ObjectString objekti, arvo" komentoa asettamaan objekteille "otsikon" ja tallennat nämä siihen tiedostoon myös, että tiedät mikä arvo kuuluu millekin objektille.

Apuna voisit käyttää Config -komentoja, jotka löydät CBKK:sta -> http://cbkk.systec.fi/koodi.php?id=29

Vielä siihen loppuun suosittelisin kryptaamaan tiedoston, ettei tietoja voisi muuttaa ja näin esim. asettaa pelaajalle täydet elämät, kun näin ei ole. Käytä Encrypt(lähde, kohde, salasana$ ) ja Decrypt(lähde, kohde, salasana$ ) komentoja tähän.
EDIT:

vilQuri wrote:

Code: Select all

koodia...
Elikkä katso toi, saat lisää tietoa noista OpenToWrite ja OpenToRead käskyistä manuaalista :P
Vähän muunneltu manuaalin esimerkki
Tuo sopii kyllä yhden objektin (tai tässä tapauksessa pallon) tietojen tallentamiseksi, mutta entäs sitten kun palloja onkin kaksi? Tai viisi? Tai sata??[/edit]
Last edited by valscion on Fri Dec 28, 2007 7:36 pm, edited 1 time in total.
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
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: lataa ja tallenna peli

Post by vilQuri »

OonSuomesta wrote:Looppaa kaikkien objektien läpi NextObject() ja InitObjectList() komennoilla ja tallenna jokaisen objektin koordinaatit ja kääntymiskulman ObjectAngle(objekti) komennolla. Tallenna nämä tiedot vaikkapa .dat tiedostoon tietyssä järjestyksessä ja ladatessasi pelin tarkistat nuo tiedot ja asetat objekteille nämä arvot.
Kannattaa käyttää "ObjectString objekti, arvo" komentoa asettamaan objekteille "otsikon" ja tallennat nämä siihen tiedostoon myös, että tiedät mikä arvo kuuluu millekin objektille.

Apuna voisit käyttää Config -komentoja, jotka löydät CBKK:sta -> http://cbkk.systec.fi/koodi.php?id=29

Vielä siihen loppuun suosittelisin kryptaamaan tiedoston, ettei tietoja voisi muuttaa ja näin esim. asettaa pelaajalle täydet elämät, kun näin ei ole. Käytä Encrypt(lähde, kohde, salasana$ ) ja Decrypt(lähde, kohde, salasana$ ) komentoja tähän.
EDIT:

vilQuri wrote:

Code: Select all

koodia...
Elikkä katso toi, saat lisää tietoa noista OpenToWrite ja OpenToRead käskyistä manuaalista :P
Vähän muunneltu manuaalin esimerkki
Tuo sopii kyllä yhden objektin (tai tässä tapauksessa pallon) tietojen tallentamiseksi, mutta entäs sitten kun palloja onkin kaksi? Tai viisi? Tai sata??[/edit]
for-looppilla on ihan mahdollista ja helppoa jos vain pikkuisen virittää
Guest

Re: lataa ja tallenna peli

Post by Guest »

voisko joku tehdä esimerkin miten saa vihut talletettua kans ?
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: lataa ja tallenna peli

Post by elmo123 »

Höh, CB:ssä on komennot SaveProgram, LoadProgram ja GotoSavedLocation. SaveProgram tallettaa kaikki pelin muuttujat ja LoadProgram lataa ne. GotoSavedLocation taas siirtää ohjelman talletuspaikkaan.

Katso manuaalin esimerkki niin hoksaat, miten homma pelaa ;)
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: lataa ja tallenna peli

Post by koodaaja »

elmo123 wrote:Höh, CB:ssä on komennot SaveProgram, LoadProgram ja GotoSavedLocation. SaveProgram tallettaa kaikki pelin muuttujat ja LoadProgram lataa ne. GotoSavedLocation taas siirtää ohjelman talletuspaikkaan.

Katso manuaalin esimerkki niin hoksaat, miten homma pelaa ;)
Mutta katso manuaalista myös komentojen tiedot, niin huomaat Zeron kehottavan koodaamaan omat, nuo kun ovat virhealttiita. Sitäpaitsi on aivan turha ruveta tallentamaan kaikkien objektien paikkoja, tuskin nyt räiskintäpelissä kesken taistelun haluaa kukaan tallentaa? (Quicksave on toki oma lukunsa) Asettaa objektit samoihin aloituspaikkoihin joka kerta, toimii vallan hyvin eikä tule isoja tiedostoja.
Post Reply