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.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
Tyhmät kysymykset (I/2011)
Re: Tyhmät kysymykset (I/2011)
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 (I/2011)
Mitenköhän tekisin hotspotin karttaan johon generoidaan esim. 5 vihollista? Ja kuinka saan viholliset spawnaamaan niin, etteivät ole toistensa päällä?
Re: Tyhmät kysymykset (I/2011)
Puhutko nyt tilekartoista?
Näin saat vihollisen haluttuun kohtaan:
Käy koko kartta läpija 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.
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
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.
Re: Tyhmät kysymykset (I/2011)
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?
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?
Re: Tyhmät kysymykset (I/2011)
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
Re: Tyhmät kysymykset (I/2011)
Kun ohjelma kohtaa Forever -lauseen, se hyppää välittömästi edelliseen Repeat -lauseeseen. Exit hyppää seuraavan Forever- tai Until -lauseen yli. Siinä kaikki.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
Re: Tyhmät kysymykset (I/2011)
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
Hetken junnaa tyhjää vaikka painan ja sitten taas ampuu.
Re: Tyhmät kysymykset (I/2011)
EXE Writer overflow?
- Attachments
-
- ewo.png (33.55 KiB) Viewed 14689 times
Re: Tyhmät kysymykset (I/2011)
Olet käyttänyt liian isoja lukuja muuttujissa? Itselläni ainakin heittää tuolloin saman errorin.DJ-Filbe wrote:EXE Writer overflow?
EDIT:
Esim.
Code: Select all
A=999999999999999999999999999999*9
B=99999999999999999999999999*9
Print A+B
"Baby," I said. "I'm a genius but nobody knows it but me."
Re: Tyhmät kysymykset (I/2011)
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?
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?
Re: Tyhmät kysymykset (I/2011)
1. Jonkunlaisella dll-systeemillä voisi onnistua...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?
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.
Re: Tyhmät kysymykset (I/2011)
Wanhalla CoolBasicilla 1. on mahdoton, ellet kirjoita omaa DLL kirjastoa siihen.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?
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...
Re: Tyhmät kysymykset (I/2011)
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ä...
Mitään erroriakaan se ei heitä...
Re: Tyhmät kysymykset (I/2011)
Vähän paha sanoa kun ei nää koodia, mutta jos laitat silmukkaasi tämän niin pitäisi näkyä...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ä...
Code: Select all
Color cbWhite //Siltä varalta että väri sattuisi olemaan taustanvärinen
Text 10,10,"FPS:"+FPS()
Re: Tyhmät kysymykset (I/2011)
Jooh nyt toimii, en vain ollut huomannut laittaa silmukkaan. Oli jäänyt ulkopuolelle kaiken muun "Addtext" hölskän kanssa.
Re: Tyhmät kysymykset (I/2011)
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ä .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?
EDIT:
Joo eihän siellä mitään System64 ole, vahingossa laskin luikuria
Last edited by Peltsi on Thu Feb 10, 2011 5:29 pm, edited 1 time in total.
- TheDuck
- Devoted Member
- Posts: 632
- Joined: Sun Aug 26, 2007 3:51 pm
- Location: C:\Program Files\Tuusula\
Re: Tyhmät kysymykset (I/2011)
Mulla ainakin on 64-bittinen käyttis ja prossu, mutta silti se on system32.Peltsi wrote: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ä .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?
^^
Re: Tyhmät kysymykset (I/2011)
Aa okei kiitosta vain. En olekaan vielä tuohon data -kerrokseen kerennyt tutustua.Jonez wrote:*snip*
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
- Attachments
-
- ???
- pröblem.png (53.68 KiB) Viewed 14451 times
Re: Tyhmät kysymykset (I/2011)
Kokeile laittaa ResetObjectCollision CloneObjectPositionin jälkeen. Kokeilin toistaa virheesi omalla koodilla (muokattu oppitunnista 11):
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.
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
Re: Tyhmät kysymykset (I/2011)
Nonnih, toimii ^^ Kiitos.