Tyhmät kysymykset (I/2012)

Voit pyytää apua ohjelmointiongelmiin täältä.
User avatar
BIG_BOMM
Newcomer
Posts: 7
Joined: Fri Dec 30, 2011 12:08 pm

Re: Tyhmät kysymykset (I/2011)

Post by BIG_BOMM »

Ja vielä yks ongelma... on nyt ollu niin miljoona ongelmaa noitten vihujen luomisen kanssa (typeillä), että voisko joku kiltti ihminen postata toimivan typemallin vihuista niin että näkisin mikä on mun koodissa mennyt vikaan. muuten oon saanut jo kaikki melkein ookoo toimimaan, muuta elkkujen vähennys ei toimi... pitääkö muuttuja esimerkiksi lisätä Fieldinä typeen? :oops:



tämmösillä taikasanoilla oon yrittäny...

Code: Select all

Type ykkösvihu
    Field obj
    Field EV1 As Integer
    End Type

C=Rand(-150,150)
D=Rand(-150,150)


If ST=0 Then 
PV.ykkösvihu = New(ykkösvihu)
    PV\obj = CloneObject(vihu1)
        PositionObject PV\obj,C,D
        PV\EV1=10
        ST=2000
EndIf
   If ST>0 Then ST=ST-1           
     For PV.ykkösvihu = Each ykkösvihu
            PointObject PV\obj,player
            MoveObject PV\obj,1,0
                If ObjectsOverlap(laser\obj,PV\obj,3) Then
                    PV\EV1=PV\EV1-1
                           If PV\EV1=0 Then 
                            DeleteObject(PV\obj)
                            Delete PV
                EndIf            
       EndIf
     Next PV
ja kiitokset niille jotka jo aikasemmin tätä vyyhtiä selvensi...
Mans got to do what mans got to do...

FACEPLANT!
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: Tyhmät kysymykset (I/2011)

Post by jaahas »

BIG_BOMM wrote:...

Code: Select all

...
   If ST>0 Then ST=ST-1           
     For PV.ykkösvihu = Each ykkösvihu
            PointObject PV\obj,player
            MoveObject PV\obj,1,0
                If ObjectsOverlap(laser\obj,PV\obj,3) Then
                    PV\EV1=PV\EV1-1
                           If PV\EV1=0 Then 
                            DeleteObject(PV\obj)
                            Delete PV
                EndIf            
       EndIf
     Next PV
...
Jos ymmärsin oikein, EV1 on elämät. Lisää "For PV.ykkösvihu" silmukkaan laser typen läpikäynti.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post by skorpioni-cb »

Voiko joku kertoa, miksi tässä "pelissä" laatikko jumiutuu vasempaan alakulmaan eikä pääse pois
Ellei sitten se johdu siitä että mä teen linuxilla :?
Koodi:

Code: Select all

//We limit FPS in here
FrameLimit 40
//Set screen widht and height and bss and window's type
SCREEN 800,600,0,1

//Set color into red
Color 255,0,0

//X-coordinate,Y-coordinate,and Widht,Height
x=0
y=0
Const WH=20
Const SPEED = 20

Repeat
	//Checks if you press Up,Down,Left or Right
	If LeftKey() Then x = x - SPEED
	If RightKey() Then x = x + SPEED
	If UpKey() Then y = y - SPEED
	If DownKey() Then y = y + SPEED
	//Go to sub-program where we check collission
	Gosub checkCollission
	//Draw box
	Box x,y,WH,WH
	//U know what this make ;D
	DrawScreen
Forever

//Actual collission-checking
checkCollission:

	If(x < 0) Then x = 0
	If(x+WH > 400) Then x = 800-WH
	If(y<0) Then y = 0
	If(y+WH > 300) Then y = 600-WH
//Now we leave this Logic-part and we go back to 
//main program
Return  
Ja tää on mun oma kirjoittama ohjelma, että en oo kopioinut mistään :D
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

skorpioni-cb wrote:

Code: Select all

	If(x < 0) Then x = 0
	If(x+WH > 400) Then x = 800-WH 'WHhan on 20, joten jos x sattuu jossain vaiheessa olemaan yli 380, sen jälkeen se on koko loppu pelin ajan 780 koska myös 780 on enemmän kuin 380
	If(y<0) Then y = 0
	If(y+WH > 300) Then y = 600-WH 'ja sama tässä
Olen koulussa, joten nyt en pääse testaamaan ja 100% varmuudella en voi sanoa, mutta väittäisin melkeinpä, että tuossa on vika.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post by skorpioni-cb »

Chaosworm wrote:
skorpioni-cb wrote:

Code: Select all

	If(x < 0) Then x = 0
	If(x+WH > 400) Then x = 800-WH 'WHhan on 20, joten jos x sattuu jossain vaiheessa olemaan yli 380, sen jälkeen se on koko loppu pelin ajan 780 koska myös 780 on enemmän kuin 380
	If(y<0) Then y = 0
	If(y+WH > 300) Then y = 600-WH 'ja sama tässä
Olen koulussa, joten nyt en pääse testaamaan ja 100% varmuudella en voi sanoa, mutta väittäisin melkeinpä, että tuossa on vika.
Jos tuo toimii niin sitten mä tajuun, kun en muokannut kaikkee
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija »

Muutin fullscreeniksi ja korjasin mittavirheet loppukoodissa. Korjautui.

Code: Select all

    //We limit FPS in here
    FrameLimit 40
    //Set screen widht and height and bss and window's type
    SCREEN 800,600,0,0

    //Set color into red
    Color 255,0,0

    //X-coordinate,Y-coordinate,and Widht,Height
    x=0
    y=0
    Const WH=20
    Const SPEED = 20

    Repeat
       //Checks if you press Up,Down,Left or Right
       If LeftKey() Then x = x - SPEED
       If RightKey() Then x = x + SPEED
       If UpKey() Then y = y - SPEED
       If DownKey() Then y = y + SPEED
       //Go to sub-program where we check collission
       Gosub checkCollission
       //Draw box
       Box x,y,WH,WH
       //U know what this make ;D
       DrawScreen
    Forever

    //Actual collission-checking
    checkCollission:

       If(x < 0) Then x = 0
       If(x+WH > 800) Then x = 800-WH
       If(y<0) Then y = 0
       If(y+WH > 600) Then y = 600-WH
    //Now we leave this Logic-part and we go back to
    //main program
    Return  
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2011)

Post by skorpioni-cb »

naputtelija wrote:Muutin fullscreeniksi ja korjasin mittavirheet loppukoodissa. Korjautui.

Code: Select all

    //We limit FPS in here
    FrameLimit 40
    //Set screen widht and height and bss and window's type
    SCREEN 800,600,0,0

    //Set color into red
    Color 255,0,0

    //X-coordinate,Y-coordinate,and Widht,Height
    x=0
    y=0
    Const WH=20
    Const SPEED = 20

    Repeat
       //Checks if you press Up,Down,Left or Right
       If LeftKey() Then x = x - SPEED
       If RightKey() Then x = x + SPEED
       If UpKey() Then y = y - SPEED
       If DownKey() Then y = y + SPEED
       //Go to sub-program where we check collission
       Gosub checkCollission
       //Draw box
       Box x,y,WH,WH
       //U know what this make ;D
       DrawScreen
    Forever

    //Actual collission-checking
    checkCollission:

       If(x < 0) Then x = 0
       If(x+WH > 800) Then x = 800-WH
       If(y<0) Then y = 0
       If(y+WH > 600) Then y = 600-WH
    //Now we leave this Logic-part and we go back to
    //main program
    Return  
Sorry,Chaosworm ehti ekaksi XD
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
User avatar
BIG_BOMM
Newcomer
Posts: 7
Joined: Fri Dec 30, 2011 12:08 pm

Re: Tyhmät kysymykset (I/2011)

Post by BIG_BOMM »

kiitos jaahas!
Mans got to do what mans got to do...

FACEPLANT!
CoolMan

Re: Tyhmät kysymykset (I/2011)

Post by CoolMan »

Kuinka saisin tehtyä silleen että kun auto osuu esim. laatikkoo niin kuuluu ääni, laatikko häviää ja siirtyy eri paikkaan kentässä?
Kiitos!
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

CoolMan wrote:Kuinka saisin tehtyä silleen että kun auto osuu esim. laatikkoo niin kuuluu ääni, laatikko häviää ja siirtyy eri paikkaan kentässä?
Kiitos!
Koodaamalla. Hyväksi voi käyttää esimerkiksi komentoa PositionObject ja funktioita PlaySound ja ObjectsOverlap.
matsir
Newcomer
Posts: 1
Joined: Thu Jan 12, 2012 3:55 pm

Objektin häviäminen, kun ammus osuu

Post by matsir »

Ongelmani on objektin poisto, kun siihen osuu toinen objekti. Esimerkki: Kun ukkeli ampuu toiseen ukkeliin luodin, pitäisi osuman saaneen ukkelin hävitä. Eli, voisiko joku tehdä mahdollisimman yksinkertaisen esimerkin kyseisestä asiasta, kun en millään ole keksinyt ratkaisua tähän asiaan. Kiitos.
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Objektin häviäminen, kun ammus osuu

Post by Peltsi »

matsir wrote:Ongelmani on objektin poisto, kun siihen osuu toinen objekti. Esimerkki: Kun ukkeli ampuu toiseen ukkeliin luodin, pitäisi osuman saaneen ukkelin hävitä. Eli, voisiko joku tehdä mahdollisimman yksinkertaisen esimerkin kyseisestä asiasta, kun en millään ole keksinyt ratkaisua tähän asiaan. Kiitos.
Katso manuaalista "DeleteObject" ja "ObjectsOverlap".
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Objektin häviäminen, kun ammus osuu

Post by Latexi95 »

matsir wrote:Ongelmani on objektin poisto, kun siihen osuu toinen objekti. Esimerkki: Kun ukkeli ampuu toiseen ukkeliin luodin, pitäisi osuman saaneen ukkelin hävitä. Eli, voisiko joku tehdä mahdollisimman yksinkertaisen esimerkin kyseisestä asiasta, kun en millään ole keksinyt ratkaisua tähän asiaan. Kiitos.
Tarkista ObjectsOverLapin avulla ovatko luoti ja ukkeli päällekäin. DeleteObjectilla saat poistettua luodin ja ukkelin. Luodit varmaankin ovat toteutettu Typejen avulla? Silloin muista poistaa ensiksi luodin objecti ja sen jälkeen Tyypin jäsen. Muista sitten, että kun olet poistanut ukkelin DeleteObjectilla et voi käyttää sitä enää missään. Muista tehdä jokin tarkistus, että ukkeli on olemassa ennen kuin esim. liikutat sitä. Muuten seurauksena on MAV.
Aral

Re: Tyhmät kysymykset (I/2011)

Post by Aral »

Ongelmani on se että en saa tehtyä millään ajastinta jossa on 1min aikaa ja kun aika loppuu niin peli loppuu.
Onko tälläinen vaikea tehdä?
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Aral wrote:Ongelmani on se että en saa tehtyä millään ajastinta jossa on 1min aikaa ja kun aika loppuu niin peli loppuu.
Onko tälläinen vaikea tehdä?
Ei ole vaikea tehdä.

Code: Select all

SCREEN 800, 600
aika = Timer()
Repeat
    Text 0, 0, "Tämä teksti näkyy minuutin ajan ja sitten ohjelma sulkeutuu. Aikaa kulunut: "+Int(Timer()-aika)+" millisekuntia."
    DrawScreen
Until Timer()-aika > 60000
Vaihtoehtoinen toteutustapa, joka on FPS-riippuvaisissa peleissä luultavasti parempi (tosin yleensä pelit kannattaisi periaatteessa tehdä FPS-riippumattomiksi):

Code: Select all

SCREEN 800, 600
FrameLimit 60
Repeat
    aika+1
    Text 0, 0, "Tämä teksti näkyy minuutin ajan ja sitten ohjelma sulkeutuu. Frameja kulunut: "+aika
    DrawScreen
Until aika > 3600
Aral

Re: Tyhmät kysymykset (I/2011)

Post by Aral »

Kyllähän tuo noinkin käy, mutta tarkoitin aluksi sellaista joka lähtee 60 ja etenee siitä 59, 58, 57...
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Aral wrote:Kyllähän tuo noinkin käy, mutta tarkoitin aluksi sellaista joka lähtee 60 ja etenee siitä 59, 58, 57...
Katso esimerkkiä noista laittamistani koodeista ja hyväksikäytä miinusmerkkiä jossain välissä.
Character
Active Member
Posts: 113
Joined: Thu Nov 27, 2008 2:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Character »

Miksiköhän pukkaa aina mavia kun yritän jotain kuvaa ladata? :( Ennen on toiminut hyvin.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Character wrote:Miksiköhän pukkaa aina mavia kun yritän jotain kuvaa ladata? :( Ennen on toiminut hyvin.
Mitä sellaista olet tehnyt, joka olisi mahdollisesti voinut aiheuttaa virheen?
Character
Active Member
Posts: 113
Joined: Thu Nov 27, 2008 2:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Character »

En tiedä/muista. Tämä on siis kaikissa projekteissani. Ennen toimi mutta nyt ei
Locked