Voit pyytää apua ohjelmointiongelmiin täältä.
-
BIG_BOMM
- Newcomer
- Posts: 7
- Joined: Fri Dec 30, 2011 1:08 pm
Post
by BIG_BOMM » Wed Jan 04, 2012 11:12 pm
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?
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: Sat Feb 06, 2010 12:36 am
- Location: Tornio
Post
by jaahas » Thu Jan 05, 2012 2:30 am
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 4:48 pm
- Location: Turku
Post
by skorpioni-cb » Thu Jan 05, 2012 10:57 am
Voiko joku kertoa, miksi tässä "pelissä" laatikko jumiutuu vasempaan alakulmaan eikä pääse pois
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

Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.
-
Awaclus
- Forum Veteran
- Posts: 2939
- Joined: Tue Aug 28, 2007 2:50 pm
Post
by Awaclus » Thu Jan 05, 2012 12:03 pm
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 4:48 pm
- Location: Turku
Post
by skorpioni-cb » Thu Jan 05, 2012 1:26 pm
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
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.
-
naputtelija
- Devoted Member
- Posts: 718
- Joined: Wed Nov 03, 2010 8:56 pm
- Location: Joku piste pohjoisessa.
Post
by naputtelija » Thu Jan 05, 2012 5:48 pm
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 4:48 pm
- Location: Turku
Post
by skorpioni-cb » Thu Jan 05, 2012 6:09 pm
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
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.
-
BIG_BOMM
- Newcomer
- Posts: 7
- Joined: Fri Dec 30, 2011 1:08 pm
Post
by BIG_BOMM » Thu Jan 05, 2012 9:21 pm
kiitos jaahas!
Mans got to do what mans got to do...
FACEPLANT!
-
CoolMan
Post
by CoolMan » Sun Jan 15, 2012 2:06 pm
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
Post
by Awaclus » Sun Jan 15, 2012 2:20 pm
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 4:55 pm
Post
by matsir » Sun Jan 15, 2012 3:13 pm
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.
-
Peltsi
- Active Member
- Posts: 121
- Joined: Thu Sep 30, 2010 12:16 pm
Post
by Peltsi » Sun Jan 15, 2012 5:45 pm
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: 1165
- Joined: Sat Sep 20, 2008 5:10 pm
- Location: Lempäälä
Post
by Latexi95 » Sun Jan 15, 2012 6:53 pm
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
Post
by Aral » Mon Jan 16, 2012 8:47 pm
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
Post
by Awaclus » Mon Jan 16, 2012 8:51 pm
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ä.
Vaihtoehtoinen toteutustapa, joka on FPS-riippuvaisissa peleissä luultavasti parempi (tosin yleensä pelit kannattaisi periaatteessa tehdä FPS-riippumattomiksi):
-
Aral
Post
by Aral » Mon Jan 16, 2012 9:04 pm
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
Post
by Awaclus » Mon Jan 16, 2012 9:12 pm
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 3:16 pm
Post
by Character » Tue Jan 17, 2012 6:55 pm
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
Post
by Awaclus » Tue Jan 17, 2012 8:09 pm
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 3:16 pm
Post
by Character » Tue Jan 17, 2012 8:41 pm
En tiedä/muista. Tämä on siis kaikissa projekteissani. Ennen toimi mutta nyt ei