Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

Tarvitsen apua! En tajua kuinka animobjekti toimii ?? :oops:
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Laurenzo wrote:Tarvitsen apua! En tajua kuinka animobjekti toimii ?? :oops:
Se toimii siten, että ensin lataat objektin, joka on animoitu (kuvatiedosto, jossa on monta kuvaa peräkkäin ja annat sitten funktion parametreinä yhden kuvan korkeuden ja leveyden) ja sitten toistat animaatiota.
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

Chaosworm wrote:
Laurenzo wrote:Tarvitsen apua! En tajua kuinka animobjekti toimii ?? :oops:
Se toimii siten, että ensin lataat objektin, joka on animoitu (kuvatiedosto, jossa on monta kuvaa peräkkäin ja annat sitten funktion parametreinä yhden kuvan korkeuden ja leveyden) ja sitten toistat animaatiota.
Kiitos! :mrgreen:
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

aani1 on tällainen:Maaaaaaaaliiiiiiiiiiiii!!!!!!!!!!
aani2 on tälläinen:siellä lepää!!!!!!!!!!!!
aani3 on tällainen:Ja sitten on kiieekkkooo maaaliiissaaa!!!!!!
kuinka onnistuu se että kun kiekko menee maaliin niin ei aina tule sama ääni:maaaaaaaliiiiiiiiiiiiiiii!!!!!!!!!!!!
vaan että tulee satunnaisesti
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

Laurenzo wrote:
aani1 on tällainen:Maaaaaaaaliiiiiiiiiiiii!!!!!!!!!!
aani2 on tälläinen:siellä lepää!!!!!!!!!!!!
aani3 on tällainen:Ja sitten on kiieekkkooo maaaliiissaaa!!!!!!
kuinka onnistuu se että kun kiekko menee maaliin niin ei aina tule sama ääni:maaaaaaaliiiiiiiiiiiiiiii!!!!!!!!!!!!
vaan että tulee satunnaisesti
No vaikka näin:

Code: Select all

If kiekkomaalissa then
    ääni = Rand(2) 
    If ääni = 0 then
         PlaySound aani1
    ElseIf ääni = 1
         PlaySound aani2
    Else
         PlaySound aani3
    EndIf
EndIf
Lazyanttu
Newcomer
Posts: 29
Joined: Sat May 16, 2009 10:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by Lazyanttu »

Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Peltsi »

Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa... :D
*Editoitu moka pois...*
Last edited by Peltsi on Mon Aug 08, 2011 4:04 pm, edited 1 time in total.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Peltsi wrote:
Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa... :D Ja muuta en pysty ilman lähdekoodia sanomaan kuin että, oletko varma että kutsut oikean nimistä aliohjelmaa?

Code: Select all

GoSub peruna
prenuna:
Esim. tuossa on kirjoitusvirhe. Tarkastas ne. :D
Paitsi, että tuollaisen kirjoitusvirheen sattuessa jo compiler heittää erroria.
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Peltsi »

Chaosworm wrote:
Peltsi wrote:Laitas lähdekoodi mukaan kun kaikkilla ei ole kristallipalloa... :D Ja muuta en pysty ilman lähdekoodia sanomaan kuin että, oletko varma että kutsut oikean nimistä aliohjelmaa?

Code: Select all

GoSub peruna
prenuna:
Esim. tuossa on kirjoitusvirhe. Tarkastas ne. :D
Paitsi, että tuollaisen kirjoitusvirheen sattuessa jo compiler heittää erroria.
Eiku nii, mikä lie aivopieru sattu... Mut Lazyanttu voi silti pistää sorsaa tuleen :D
Lazyanttu wrote:Tuli sellainen jännä ongelma vastaan, että kun kutsun gosubilla aliohjelmaa, niin sain MAV:in. Makeerrorilla testasin, että ongelma ei varmasti tule ennen subin kutsumista. Mutta kun laitoin makeerrorin subin alkuun (ennenkuin siinä tehtiin mitään muuta) sain MAV:in. En ymmärrä missä meni vikaan :O...
No voikohan tuo olla niitä CB:n ihmeellisyyksiä sitte? :)
Lazyanttu
Newcomer
Posts: 29
Joined: Sat May 16, 2009 10:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by Lazyanttu »

Voin kyllä laittaa lähdekoodin, mutta asiaa saattaa hankaloittaa seuraavat seikat:
1) Se on lähes 2500 rivinen
2) Ongelma tuli kun muutin kolmea asiaa joilla ei pitäisi olla mitään tekemistä kyseisen subin kanssa.

Kysyin lähinnä sitä varten jos tiedätte, että onko gosub:issa jokin bugi, sillä kun kutsun kyseistä subia, MAVi tulee ennenkuin kyseinen subi edes tekee mitään. Kyseinen bugi tuli kun lisäsin uuden yksikön peliin, mutta ei poistunut vaikka poistin kyseisen yksikön. Olisi pitänyt tehdä versioita useammin, viimeisin toimiva versio on pelin aivan alkupuolelta...

EDIT: 3) Koodaus/muuttujien nimeäminen/kommentointi vähän niin sun näin.

EDIT2: Kokeilin laittaa subin sisällön suoraan ohjelmaan ja sekin heitti MAV:ia.

Code: Select all

	For remove.ATTACK = Each ATTACK
		DeleteObject remove\obj
		Delete remove
	Next remove
Ja oudointa tuossa on se, että kyseinen kohta on toiminut tähän asti aina enkä ole sitä mennyt muuttamaan. "Remove"-osoitinta ei käytetä missään muualla, ATTACK on tyyppi eikä sitäkään käytetä missään väärin, sekä kaikissa attackeissa on varmasti objekti. Kaiken lisäksi MAV tulee ennen makeerroria seuraavassa tilanteessa:

Code: Select all

	For remove.ATTACK = Each ATTACK
		MakeError ""
		DeleteObject remove\obj
		Delete remove
	Next remove
Onko CB:ssä jotain rajoituksia (funktiorajan tiedän, se ei missään nimessä ole ylitetty) esim. "for"-looppien määrälle, muuttujien määrälle tms.? Näyttää siltä, että heti kun päästään for-läpikäyntiin niin tulee MAV vaikkei siellä mitään ehditä tekemäänkään.

EDIT3: (pahoittelen postin sekalaisuutta)

Nyt alkaa tosiaan tuntua siltä, että kaikki ei ole ihan kunnossa :P

Code: Select all

	For i = 0 To 10
		AddText "toistun"
		DrawScreen
	Next i
Kyseinen jäi looppaamaan ikuisesti eikä 11 kertaa... Sijoitin sen kohtaan ennen kyseistä subia ja olen varma ettei se ole loopin sisällä...
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 »

Onkos nyt varma ettei mikään virustorjuntaohjelmistosi ala tökkimään tai koneessasi ole jotain muuta pielessä? Eikä Windowsin DEP-toiminto (tietojen suorittamisen estämistoiminto) ole päällä kaikille ohjelmille? Ei kuulosta oikein normaalilta toiminnalta edes CB:lle.

Jos kaikki on mielestäsi oikein niin laita sitä lähdekoodia tulemaan vaikkapa zippinä, jos koet 2500:n rivin olevan liikaa pasteta suoraan foorumiviestiin.
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
Lazyanttu
Newcomer
Posts: 29
Joined: Sat May 16, 2009 10:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by Lazyanttu »

Tarkistin DEP-toiminnot, sekä virustorjuntajärjestelmän, mutta ei toiminut. Tänä illalla pääsen kokeilemaan toisellakin koneella ohjelmaani, ja jos silläkin tökkii, niin sitten postaan koodini tänne muiden riesaksi :P. Mihinkään vastaavaan en ole aiemmin törmännyt, mutta se saattaa hyvinkin olla koneestaki kiinni. Tai sitten olen vain möhlännyt koodissa jotain todella pieleen.
Kumiankka
Member
Posts: 65
Joined: Wed May 18, 2011 5:17 pm
Location: Artjärvi

Re: Tyhmät kysymykset (I/2011)

Post by Kumiankka »

Samaan tapaan kuin ScaleImage korvaa cb:n ResizeImagen niin olisiko cb:n RotateImagelle mitään nopeampaa vaihtoehtoa?
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

Kumiankka wrote:Samaan tapaan kuin ScaleImage korvaa cb:n ResizeImagen niin olisiko cb:n RotateImagelle mitään nopeampaa vaihtoehtoa?
Ei tietääkseni.
Kumiankka
Member
Posts: 65
Joined: Wed May 18, 2011 5:17 pm
Location: Artjärvi

Re: Tyhmät kysymykset (I/2011)

Post by Kumiankka »

Tässä eräs keskeneräinen väkerrys... Se heittää jostain syystä "MakeImage failed", mutta en ymmärrä miksi...

Code: Select all

Dim OtusKuva(359, 100, 100)

PreRender()

WaitKey 

Function PreRender()
	//Lock
		For rot = 0 To 7
			For xs = 1 To 100
				For ys = 1 To 100
				
					h2# = xs / 2.0 
					v2# = ys / 2.0
					xx1# = Cos(rot)*v2       //laatikon kulman x-suunnan x koordinaatti
					xy1# = Cos(rot+90.0)*h2  //laatikon kulman y-suunnan x koordinaatti
					yx1# = - Sin(rot)*v2     //laatikon kulman x-suunnan y koordinaatti
					yy1# = - Sin(rot+90.0)*h2 //laatikon kulman y-suunnan y koordinaatti
				
					x1 = _x + xx1 + xy1      //oikea yläkulma
					y1 = _y + yx1 + yy1
					x2 = _x - xx1 + xy1   //vasen yläkulma
					y2 = _y - yx1 + yy1
					x3 = _x - xx1 - xy1   //vasen alakulma
					y3 = _y - yx1 - yy1
					x4 = _x + xx1 - xy1       //oikea alakulma
					y4 = _y + yx1 - yy1
					
					xss = RoundUp(Distance(x2, 0, x4, 0))
					yss = RoundUp(Distance(y2, 0, y4, 0))
					
					OtusKuva(rot, xs, ys) = MakeImage(xss, yss)
					
					DrawToImage OtusKuva(rot, xs, ys)
						//trifiller(x1,y1,x2,y2,x3,y3)
						//trifiller(x1,y1,x4,y4,x3,y3)
					DrawToScreen
				Next ys
			Next xs
		Next rot
	//Unlock
End Function 
User avatar
Rohmu
Newcomer
Posts: 29
Joined: Fri Apr 15, 2011 12:48 pm
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Rohmu »

Kumiankka wrote:Tässä eräs keskeneräinen väkerrys... Se heittää jostain syystä "MakeImage failed", mutta en ymmärrä miksi...

Code: Select all

Dim OtusKuva(359, 100, 100)

PreRender()

WaitKey 

Function PreRender()
	//Lock
		For rot = 0 To 7
			For xs = 1 To 100
				For ys = 1 To 100
				
					h2# = xs / 2.0 
					v2# = ys / 2.0
					xx1# = Cos(rot)*v2       //laatikon kulman x-suunnan x koordinaatti
					xy1# = Cos(rot+90.0)*h2  //laatikon kulman y-suunnan x koordinaatti
					yx1# = - Sin(rot)*v2     //laatikon kulman x-suunnan y koordinaatti
					yy1# = - Sin(rot+90.0)*h2 //laatikon kulman y-suunnan y koordinaatti
				
					x1 = _x + xx1 + xy1      //oikea yläkulma
					y1 = _y + yx1 + yy1
					x2 = _x - xx1 + xy1   //vasen yläkulma
					y2 = _y - yx1 + yy1
					x3 = _x - xx1 - xy1   //vasen alakulma
					y3 = _y - yx1 - yy1
					x4 = _x + xx1 - xy1       //oikea alakulma
					y4 = _y + yx1 - yy1
					
					xss = RoundUp(Distance(x2, 0, x4, 0))
					yss = RoundUp(Distance(y2, 0, y4, 0))
					
					OtusKuva(rot, xs, ys) = MakeImage(xss, yss)
					
					DrawToImage OtusKuva(rot, xs, ys)
						//trifiller(x1,y1,x2,y2,x3,y3)
						//trifiller(x1,y1,x4,y4,x3,y3)
					DrawToScreen
				Next ys
			Next xs
		Next rot
	//Unlock
End Function 
Muuttujat xss ja yss saavat arvoksi 0 tai vähemmän jossain vaiheessa.
Roolipeliprojekti: Endless Travels
viewtopic.php?t=2548
Offonn
Newcomer
Posts: 1
Joined: Thu Sep 23, 2010 9:24 pm

Re: Tyhmät kysymykset (I/2011)

Post by Offonn »

Tervehdys!

Minulla olisi ongelma johon en löydä vastausta. Jos aseella ampuu liian nopeasti niin tulee MAV,
mutta jos ampuu hitaasti panos kerrallaan niin silloin ei tule.
Eli miksi näin tapahtuu?

Kiitoksia etukäteen.

Code: Select all

SCREEN 400,550
Type Enemys//tehdään tyyppi nimeltä enemys
    Field obj
EndType

Type Player//tehdään tyyppi nimeltä player
    Field hp%
    Field score%
    Field lifes%
    Field speed%
    Field obj
End Type

Type Bullets//tehdään tyyppi nimeltä bullets
    Field obj
EndType

//luodaan pelaaja
pelaaja.Player = New(Player)
pelaaja\hp% = 100//määritellään statsit
pelaaja\score% = 0
pelaaja\lifes% = 5
pelaaja\speed% = 5

vihu = LoadObject("Media\vihu.bmp")//lataa vihu
human = LoadObject("Media\ship.bmp")//lataa pelaaja
panos = LoadObject("Media\bullet.bmp")//lataa panos

ShowObject vihu,OFF//piilota vihu
ShowObject panos,OFF//piilota panos
ShowObject human,OFF//piilota pelaaja
PositionObject human,0,-155//sijoita pelaaja

pelaaja\obj = CloneObject(human)
CloneObjectPosition pelaaja\obj,human

Repeat



//liikuta pelaajaa
If LeftKey() Then MoveObject pelaaja\obj,-pelaaja\speed
If RightKey() Then MoveObject pelaaja\obj,pelaaja\speed

//jos menee yli rajojen siirä takaisin rajojen sisälle
If ObjectX(pelaaja\obj)<-200 Then PositionObject pelaaja\obj,-195,-155 
If ObjectX(pelaaja\obj)>200 Then PositionObject pelaaja\obj,195,-155

//kun LCTRL on pohjassa ammu
If KeyDown(cbKeyLCONTROL) And reload=0 Then
    nBullet.Bullets = New(Bullets)
    nBullet\obj = CloneObject(panos)
    CloneObjectPosition nBullet\obj,pelaaja\obj
    MoveObject nBullet\obj,0,-15
    reload=10
EndIf

//liikutetaan luoteja
For iBullet.Bullets = Each Bullets
    MoveObject iBullet\obj,0,-7
    If ObjectY(iBullet\obj)>275 Then
        DeleteObject iBullet\obj
        Delete iBullet
    EndIf
Next iBullet

If reload>0 Then reload=reload-1


//500 millisekunnin jälkeen vihu
If Timer()>rec+500 Then
    blink = Not blink
    rec = Timer()
EndIf

//luodaan vihuja
If blink And Ereload=0 Then
    enm.Enemys = New(Enemys)
    enm\obj = CloneObject(vihu)
    PositionObject enm\obj,Rand(-178,178),280
    Ereload =25
    SetupCollision enm\obj,pelaaja\obj,2,2,1
EndIf

If Ereload> 0 Then Ereload=Ereload-1

//liikutetaan vhuja
For iEnm.Enemys = Each Enemys
    MoveObject iEnm\obj,0,3
    If ObjectY(iEnm\obj)<= -275 Then
        DeleteObject iEnm\obj
        Delete iEnm
    EndIf
    For Enm2.Enemys = Each Enemys
        If ObjectsOverlap(pelaaja\obj,Enm2\obj,2) Then//jos pelaaja ja vihu törmäävät tuhotaan vihu
            Delete Enm2
            DeleteObject Enm2\obj
        EndIf
        For tBullet.Bullets = Each Bullets//jos luoti osuu vihuun tuhotaan vihu ja panos
            If ObjectsOverlap(tBullet\obj,Enm2\obj,2) Then
                Delete tBullet
                Delete Enm2
                DeleteObject tBullet\obj
                DeleteObject Enm2\obj
            EndIf
        Next tBullet
    Next Enm2
Next iEnm

DrawScreen
//luodaan hud
Color cbBlue
Box 5,500,390,45,ON
Color cbBlack
Box 8,508,60,20,ON
Color cbWhite
Text 10,510,"HP:"+pelaaja\hp
Text 100,510,"LIFES:"+pelaaja\lifes
Text 200,510,"SCORE:"+pelaaja\score



Forever
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe »

Offonn wrote:Tervehdys!

Minulla olisi ongelma johon en löydä vastausta. Jos aseella ampuu liian nopeasti niin tulee MAV,
mutta jos ampuu hitaasti panos kerrallaan niin silloin ei tule.
Eli miksi näin tapahtuu?

Kiitoksia etukäteen.

Code: Select all

SCREEN 400,550
Type Enemys//tehdään tyyppi nimeltä enemys
    Field obj
EndType

Type Player//tehdään tyyppi nimeltä player
    Field hp%
    Field score%
    Field lifes%
    Field speed%
    Field obj
End Type

Type Bullets//tehdään tyyppi nimeltä bullets
    Field obj
EndType

//luodaan pelaaja
pelaaja.Player = New(Player)
pelaaja\hp% = 100//määritellään statsit
pelaaja\score% = 0
pelaaja\lifes% = 5
pelaaja\speed% = 5

vihu = LoadObject("Media\vihu.bmp")//lataa vihu
human = LoadObject("Media\ship.bmp")//lataa pelaaja
panos = LoadObject("Media\bullet.bmp")//lataa panos

ShowObject vihu,OFF//piilota vihu
ShowObject panos,OFF//piilota panos
ShowObject human,OFF//piilota pelaaja
PositionObject human,0,-155//sijoita pelaaja

pelaaja\obj = CloneObject(human)
CloneObjectPosition pelaaja\obj,human

Repeat



//liikuta pelaajaa
If LeftKey() Then MoveObject pelaaja\obj,-pelaaja\speed
If RightKey() Then MoveObject pelaaja\obj,pelaaja\speed

//jos menee yli rajojen siirä takaisin rajojen sisälle
If ObjectX(pelaaja\obj)<-200 Then PositionObject pelaaja\obj,-195,-155 
If ObjectX(pelaaja\obj)>200 Then PositionObject pelaaja\obj,195,-155

//kun LCTRL on pohjassa ammu
If KeyDown(cbKeyLCONTROL) And reload=0 Then
    nBullet.Bullets = New(Bullets)
    nBullet\obj = CloneObject(panos)
    CloneObjectPosition nBullet\obj,pelaaja\obj
    MoveObject nBullet\obj,0,-15
    reload=10
EndIf

//liikutetaan luoteja
For iBullet.Bullets = Each Bullets
    MoveObject iBullet\obj,0,-7
    If ObjectY(iBullet\obj)>275 Then
        DeleteObject iBullet\obj
        Delete iBullet
    EndIf
Next iBullet

If reload>0 Then reload=reload-1


//500 millisekunnin jälkeen vihu
If Timer()>rec+500 Then
    blink = Not blink
    rec = Timer()
EndIf

//luodaan vihuja
If blink And Ereload=0 Then
    enm.Enemys = New(Enemys)
    enm\obj = CloneObject(vihu)
    PositionObject enm\obj,Rand(-178,178),280
    Ereload =25
    SetupCollision enm\obj,pelaaja\obj,2,2,1
EndIf

If Ereload> 0 Then Ereload=Ereload-1

//liikutetaan vhuja
For iEnm.Enemys = Each Enemys
    MoveObject iEnm\obj,0,3
    If ObjectY(iEnm\obj)<= -275 Then
        DeleteObject iEnm\obj
        Delete iEnm
    EndIf
    For Enm2.Enemys = Each Enemys
        If ObjectsOverlap(pelaaja\obj,Enm2\obj,2) Then//jos pelaaja ja vihu törmäävät tuhotaan vihu
            Delete Enm2
            DeleteObject Enm2\obj
        EndIf
        For tBullet.Bullets = Each Bullets//jos luoti osuu vihuun tuhotaan vihu ja panos
            If ObjectsOverlap(tBullet\obj,Enm2\obj,2) Then
                Delete tBullet
                Delete Enm2
                DeleteObject tBullet\obj
                DeleteObject Enm2\obj
            EndIf
        Next tBullet
    Next Enm2
Next iEnm

DrawScreen
//luodaan hud
Color cbBlue
Box 5,500,390,45,ON
Color cbBlack
Box 8,508,60,20,ON
Color cbWhite
Text 10,510,"HP:"+pelaaja\hp
Text 100,510,"LIFES:"+pelaaja\lifes
Text 200,510,"SCORE:"+pelaaja\score



Forever
En nyt koodia pahemmin katsonut mutta luulisin että yrität käyttää typeä, jota ei ole olemassa. Kun panokset loppuvat ja yritetään ampua niin mavaa. En ole varma, koska en tosiaan koodia tutkinut :/
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Ensiki, sinulla on kaksi enemy-silmukkaa sisäkkäin, ja tämä on ihan okei, jos joudut tekemään tarkastuksia vihollisten kesken. Mutta kaikki muu joka tehdään näissä silmukoissa suoritetaan liian monta kertaa, ja se vie konetehoja. Jos vihollisia on vaikka 10, ja luoteja on 5, niin luotien ja vastustajien välisiä törmäystarkistuksia on sillon 10 * 10 * 5, eli 500, kun selviäisit vain 10 * 5 = 50 tarkastuksella.

MAVhan tulee aina kun käytetään jotain mediaa jota ei ole olemassa. Tässä tapauksessa poistettua objektia:
Kysymäsi ongelma on samassa enemies-silmukassa. Ongelmasi johtuu siitä, että luodit-silmukka on enemies-silmukassa sisällä. Kun törmäys tapahtuu, sekä luoti että vihu poistetaan. Jos luoteja on enemmän kuin yksi, tarkastetaan törmäyksen jälkeen seuraava luoti _saman_ vihollisen kanssa. Vihollisen joka jo tuhottiin. Seuraa mav. Eli poista vihollinen luodit-silmukan ulkopuolella.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
jkhkjh

Re: Tyhmät kysymykset (I/2011)

Post by jkhkjh »

Pystyyko Coolbasic rivittämään automaattisesti tekstiä? Siis esim. seuraavassa koodissa teksti menee reunoilta yli.

Code: Select all

'make window bigger as otherwise the text won't fit 
SCREEN 580,420,16,cbwindowed

'open the file 
f=OpenToRead("license.txt")

textline=0

'print the whole file to the screen 
While Not EOF(f)

    Text 0,textline,ReadLine(f)
    
    textline=textline+12

Wend

'show the screen 
DrawScreen

'don't forget this! 
CloseFile f

WaitKey
 
Locked