Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion »

mika132 wrote:Nyt kun tuohon ns. Mustaan taustaan tulostuu minulla tekstiä melkoisen suuri määrä niin olisi hyvä, jos saisin tehtyä niin, että tuo muuttuisi "rullattavaksi" tai että kamera liikkuisi alaspäin tietynmäärän koko ajan.

Siis kun koodini on netti dataa jotka liitetään AddText "" komennolla
Tee iiiiso kuva MakeImage()-funktiolla ja piirrä Text-komennolla nettisivustolta saamasi tavara kyseiseen kuvaan. Sitten voit vain liikutella kuvaa ympäriinsä ja näin käyttää "kameraa". Joudut kuitenkin muuttamaan kuvan alotuskoordinaatteja, ellet tee siitä objektia - jos teet objektin, niin se MoveCamera toimisi.
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
Paroni
Newcomer
Posts: 20
Joined: Sun Jan 16, 2011 2:39 am

Re: Tyhmät kysymykset (I/2011)

Post by Paroni »

Mitenköhän tekisin hotspotin karttaan johon generoidaan esim. 5 vihollista? Ja kuinka saan viholliset spawnaamaan niin, etteivät ole toistensa päällä?
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Puhutko nyt tilekartoista?

Näin saat vihollisen haluttuun kohtaan:
Käy koko kartta läpi

Code: Select all

for x = 1 to MapWidth()
for y ...

next x
next y
ja tarkasta kartan datatiedot GetMap2-funktiolla.

Jos törmätään tileen jossa on haluttu data-arvo, luodaan vihollinen, katsotaan tilen maailmakoordinaatit ja asetetaan tälle tilelle. Tilen datakerrosta voi muokata sekä tile-editorilla, että CB:llä itsellään. Esimerkkejä tilekoordinaattien muuttamisesta kuva- tai maailmakoordinaatteihin löytyy ympäri foorumia.

Näin estät päällekkäisyydet:
Luo viholliset käyttäen tyyppejä (ks. Type manuaalista, sekä oppitunti 18). Kun vihollinen luodaan, luodaan tyyppikokoelmaan uusi jäsen. Luonnin yhteydessä (esim. juuri ennen luontia) käydään kaikki vihu-jäsenet läpi, ja olemassa olevien objektien koordinaatteja luontikoordinaatteihin. Jos objektit ovat liian lähellä toisiaan, ei luontia tapahdu, tai objekti luodaan toiseen paikkaan.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Eräs Vierailija

Re: Tyhmät kysymykset (I/2011)

Post by Eräs Vierailija »

Tervehdys taas pitkästä aikaa.

Kiintolevyni heitti veivinsä vähän aikaa sitten, ja sen mukana kaikki CB-tiedostoni. Olin joskus ladannut tämän, ja juuri nyt kun sitä tarvitsisin, latauslinkki on siirtynyt manan majoille. Onko tuota mahdollista saada enää mistään?
Vieraas

Re: Tyhmät kysymykset (I/2011)

Post by Vieraas »

Voisiko joku selittää minulle repeat/exit/forever -komentojen käyttämisen seuraavanlaisessa esimerkkikoodissa, kun en sitä ole koskaan oppinut tuollaisessa käyttämään? Kaikki CB:n manuaalit ja oppaat olen käynyt läpi mutta silti ei jotenkin meikäläisen päähän mene... :-/

Code: Select all

AddText "Oletko noob?"
AddText " (1) Kyllä"
AddText " (2) Ei"
DrawScreen
If KeyHit (2) Then
Goto kylla
EndIf
If KeyHit (3) Then
Goto ei
EndIf
Forever

kylla:

ClearText
AddText "OIKEESTI?!!"
AddText "(1) JOO!!"
AddText "(2) En, huijasin"
DrawScreen
If KeyHit (2) Then
Goto kylla11
EndIf
If KeyHit (3) Then
Goto kylla12
EndIf

ei:

ClearText
AddText "Really?"
AddText "(1) Joo"
AddText "(2) No en..."
DrawScreen
If KeyHit (2) Then
Goto ei11
EndIf
If KeyHit (3) Then
Goto ei12
EndIf

ei11:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey


ei12:

ClearText
AddText "Voitit pelin"
DrawScreen
WaitKey


kylla11:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey


kylla12:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe »

Vieraas wrote:Voisiko joku selittää minulle repeat/exit/forever -komentojen käyttämisen seuraavanlaisessa esimerkkikoodissa, kun en sitä ole koskaan oppinut tuollaisessa käyttämään? Kaikki CB:n manuaalit ja oppaat olen käynyt läpi mutta silti ei jotenkin meikäläisen päähän mene... :-/

Code: Select all

AddText "Oletko noob?"
AddText " (1) Kyllä"
AddText " (2) Ei"
DrawScreen
If KeyHit (2) Then
Goto kylla
EndIf
If KeyHit (3) Then
Goto ei
EndIf
Forever

kylla:

ClearText
AddText "OIKEESTI?!!"
AddText "(1) JOO!!"
AddText "(2) En, huijasin"
DrawScreen
If KeyHit (2) Then
Goto kylla11
EndIf
If KeyHit (3) Then
Goto kylla12
EndIf

ei:

ClearText
AddText "Really?"
AddText "(1) Joo"
AddText "(2) No en..."
DrawScreen
If KeyHit (2) Then
Goto ei11
EndIf
If KeyHit (3) Then
Goto ei12
EndIf

ei11:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey


ei12:

ClearText
AddText "Voitit pelin"
DrawScreen
WaitKey


kylla11:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey


kylla12:

ClearText
AddText "Hävisit"
DrawScreen
WaitKey
Kun ohjelma kohtaa Forever -lauseen, se hyppää välittömästi edelliseen Repeat -lauseeseen. Exit hyppää seuraavan Forever- tai Until -lauseen yli. Siinä kaikki.
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Code: Select all

If MouseHit(1) And reload=0 Then    
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati) 
  
CloneObjectPosition luoti\obj,ukko                
  
CloneObjectOrientation luoti\obj,ukko            
reload=25        
EndIf
 
If reload>0 Then reload=reload-1

For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,15
If ObjectX(luoti\obj)<-1400 Or ObjectX(luoti\obj)>1400 Or ObjectY(luoti\obj)<-1400 Or ObjectY(luoti\obj)>1400 Then
               
DeleteObject luoti\obj
Delete luoti
EndIf        
Next luoti
Mikä vikana, kun hiiren 1 painiketta painaessa peräkkäin saattaa ampua vain sen 2-3 kertaa?
Hetken junnaa tyhjää vaikka painan ja sitten taas ampuu.
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe »

EXE Writer overflow?
Attachments
ewo.png
ewo.png (33.55 KiB) Viewed 14599 times
Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Hene »

DJ-Filbe wrote:EXE Writer overflow?
Olet käyttänyt liian isoja lukuja muuttujissa? Itselläni ainakin heittää tuolloin saman errorin.
EDIT:

Esim.

Code: Select all

A=999999999999999999999999999999*9
B=99999999999999999999999999*9
Print A+B
[/edit]
"Baby," I said. "I'm a genius but nobody knows it but me."
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

1. Millaisella koodilla olisi mahdollista saada poimittua tietokoneen suoritinkäytön, jonka voisi sitten piirtää ruudulle?
Onko mahdollista mitenkään?

2. Kuinka luon oman fontin? Olisi käytössä digitaalilook- fontti numerot 0-9. Olisi tarkoitus käyttää tätä kirjoituksessa.
Kuinka saan asetettua sen käytettäväksi fontiksi?
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

ItzRaines wrote:1. Millaisella koodilla olisi mahdollista saada poimittua tietokoneen suoritinkäytön, jonka voisi sitten piirtää ruudulle?
Onko mahdollista mitenkään?

2. Kuinka luon oman fontin? Olisi käytössä digitaalilook- fontti numerot 0-9. Olisi tarkoitus käyttää tätä kirjoituksessa.
Kuinka saan asetettua sen käytettäväksi fontiksi?
1. Jonkunlaisella dll-systeemillä voisi onnistua...

2. Sen verran hankalaa että kannattaa mielummin tehdä oma tekstin piirto funktio joka käyttää kuvia fontistasi. Täältä foorumeilta kyllä löytyy valmiitakin systeemeitä sitä varten joten kannattanee kokeilla hakua.
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Tyhmät kysymykset (I/2011)

Post by JATothrim »

ItzRaines wrote:1. Millaisella koodilla olisi mahdollista saada poimittua tietokoneen suoritinkäytön, jonka voisi sitten piirtää ruudulle?
Onko mahdollista mitenkään?

2. Kuinka luon oman fontin? Olisi käytössä digitaalilook- fontti numerot 0-9. Olisi tarkoitus käyttää tätä kirjoituksessa.
Kuinka saan asetettua sen käytettäväksi fontiksi?
Wanhalla CoolBasicilla 1. on mahdoton, ellet kirjoita omaa DLL kirjastoa siihen.
2. on varsin mahdollinen, joko kaivat netistä aidon fonttieditorin jolla saa luotua LoadFont():n tukemia fonttitiedostoja, tai käytät ns. "kuvafonttia" ja piirrät tekstin itse. Esimerkki koodeissa taisi olla varsin tuore tapaus kuvafonteista.
EDIT:

tupla vastaus.. :( Kumpa foorumisoftassa olisi ominaisuus, joka näyttäisi välittömästi kaikille ketjua lukeville: "<nimimerkki> on kirjoittamassa tälle viestille jatkoa" viestin alla. Lainaa-nappi tökkäisi tämän oletuksellisesti päälle.

-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Miksei FPS näy pelissäni, vaikka lisään sen siihen ohjeiden mukaan ja olen yrittänyt kaikkia muuttujia. Mutta ei sitä silti ole ilmestynyt ruutuun. Missä vika?
Mitään erroriakaan se ei heitä...
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

ItzRaines wrote:Miksei FPS näy pelissäni, vaikka lisään sen siihen ohjeiden mukaan ja olen yrittänyt kaikkia muuttujia. Mutta ei sitä silti ole ilmestynyt ruutuun. Missä vika?
Mitään erroriakaan se ei heitä...
Vähän paha sanoa kun ei nää koodia, mutta jos laitat silmukkaasi tämän niin pitäisi näkyä...

Code: Select all

Color cbWhite //Siltä varalta että väri sattuisi olemaan taustanvärinen
Text 10,10,"FPS:"+FPS()
User avatar
ItzRaines
Active Member
Posts: 211
Joined: Sat Feb 05, 2011 6:59 pm

Re: Tyhmät kysymykset (I/2011)

Post by ItzRaines »

Jooh nyt toimii, en vain ollut huomannut laittaa silmukkaan. Oli jäänyt ulkopuolelle kaiken muun "Addtext" hölskän kanssa. :oops:
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Peltsi »

ItzRaines wrote: 2. Kuinka luon oman fontin? Olisi käytössä digitaalilook- fontti numerot 0-9. Olisi tarkoitus käyttää tätä kirjoituksessa.
Kuinka saan asetettua sen käytettäväksi fontiksi?
Ainakin Windows XP:ssä on System32 (jos 64bit versio niin System64) kansiossa eudcedit.exe niminen fonttieditori. Kokeile sitä jos saisit sillä fonttis väsättyä :D .
EDIT:

Joo eihän siellä mitään System64 ole, vahingossa laskin luikuria :D

Last edited by Peltsi on Thu Feb 10, 2011 5:29 pm, edited 1 time in total.
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Tyhmät kysymykset (I/2011)

Post by TheDuck »

Peltsi wrote:
ItzRaines wrote: 2. Kuinka luon oman fontin? Olisi käytössä digitaalilook- fontti numerot 0-9. Olisi tarkoitus käyttää tätä kirjoituksessa.
Kuinka saan asetettua sen käytettäväksi fontiksi?
Ainakin Windows XP:ssä on System32 (jos 64bit versio niin System64) kansiossa eudcedit.exe niminen fonttieditori. Kokeile sitä jos saisit sillä fonttis väsättyä :D .
Mulla ainakin on 64-bittinen käyttis ja prossu, mutta silti se on system32.
^^
User avatar
Paroni
Newcomer
Posts: 20
Joined: Sun Jan 16, 2011 2:39 am

Re: Tyhmät kysymykset (I/2011)

Post by Paroni »

Jonez wrote:*snip*
Aa okei kiitosta vain. En olekaan vielä tuohon data -kerrokseen kerennyt tutustua.

Perään kuitenkin uutta probleemaa. Olen nyt jonkin aikaa kranaateilla leikkinyt ja päätin kokeilla liittää siihen kimmoisuuden käyttäen CollisionAngle esimerkkiä. Muuten ihan hyvin toimii, mutta kun liikun tarpeeksi kauas aloituskohdasta, kranaatit alkavat ilmestyä juuri siitä kohdasta mistä mappi alkaa (katso liite).

Tässä vielä koodi:

Code: Select all

If grenades >0 Then
    If KeyHit (cbkeyQ) Then
        'grenades = grenades -1
        kranaatti.Kranaatit = New (Kranaatit)
        kranaatti\obj = CloneObject (Kranaattipohja)
        SetupCollision kranaatti\obj, kartta01, 2, 4, 1
        ResetObjectCollision kranaatti\obj
        CloneObjectPosition kranaatti\obj, pelaaja
        CloneObjectOrientation kranaatti\obj, pelaaja
        kranaatti\plusx# = Cos (ObjectAngle (kranaatti\obj)) *6
        kranaatti\plusy# = Sin (ObjectAngle (kranaatti\obj)) *6
        kranaatti\aika = 60
    EndIf
EndIf

For kranaatti.Kranaatit = Each Kranaatit
        TranslateObject kranaatti\obj, kranaatti\plusx#, kranaatti\plusy#
        TurnObject kranaatti\obj, 40
        If CountCollisions (kranaatti\obj) Then
            angle = CollisionAngle (kranaatti\obj, 1)
            If angle = 0 Or angle = 180 Then
                kranaatti\plusx# = -kranaatti\plusx#
            EndIf
            If angle = 90 Or angle = 270 Then
                kranaatti\plusy# = -kranaatti\plusy#
            EndIf
            TranslateObject kranaatti\obj, kranaatti\plusx#, kranaatti\plusy#
        EndIf
        kranaatti\aika = kranaatti\aika -1
        If kranaatti\aika = 0 Then
            DeleteObject kranaatti\obj
            Delete kranaatti
        EndIf
Next kranaatti
Mistäköhän vois johtua :?
Attachments
???
???
pröblem.png (53.68 KiB) Viewed 14361 times
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Kokeile laittaa ResetObjectCollision CloneObjectPositionin jälkeen. Kokeilin toistaa virheesi omalla koodilla (muokattu oppitunnista 11):

Code: Select all

FrameLimit 40 'rajoita nopeutta

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

ukko = LoadObject ("Media\guy.bmp",72)

SetupCollision ukko, kartta, 1, 4, 2

cow = LoadObject( "media\cow.bmp" )
ShowObject cow, OFF

Type lehmat
    Field obj
EndType

Repeat

    'Ukon ohjaus
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2

    If KeyHit( CbKeyReturn ) Then
        nl.lehmat = New( lehmat )
        nl\obj = CloneObject( cow )
        ResetObjectCollision nl\obj
        CloneObjectPosition nl\obj, ukko
        SetupCollision nl\obj, kartta, 2, 4, 1
        
    EndIf
    
    ll.lehmat = Last( lehmat )
    If ll <> NULL Then
        ll = Last( lehmat )
        if CountCollisions( ll\obj ) <> 0 Then MakeError "F"
    EndIf
    
    UpdateGame

    CloneCameraPosition ukko


    DrawScreen

Forever
Edit. pieni huomautus vielä, että törmäystä ei tapahdu vaikka ResetObjectCollision olisi ennen objektin siirtämistä, jos törmäystunnistus on 2, 4, 2. Taas näitä cb:n hienouksia.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
User avatar
Paroni
Newcomer
Posts: 20
Joined: Sun Jan 16, 2011 2:39 am

Re: Tyhmät kysymykset (I/2011)

Post by Paroni »

Nonnih, toimii ^^ Kiitos.
Locked