Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Code: Select all

If kierros = 3 Then Goto valikko
No eihän toi koodinpätkä kerro mitään. Anna koko koodi niin nähdään. Tällä hetkellä voimme vain arvailla.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
superRAlly

Re: Tyhmät kysymykset

Post by superRAlly »

No eihän toi koodinpätkä kerro mitään. Anna koko koodi niin nähdään. Tällä hetkellä voimme vain arvailla.
siin ole hyvä!

Code: Select all

 FrameLimit 40
SCREEN 1024,768
Kierros = 0
Point = 0 
kartta = LoadMap("Media\autorata1.til","Media\tilesetauto.bmp")
PlayObject kartta,0,0,1
maali = LoadObject ("Media\maali.bmp")
piste = LoadObject ("Media\CheckPoint.bmp")

ukko = LoadObject ("Media\car.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,  -100,0  
PositionObject maali, -80,50
PositionObject piste, 560,-20
RotateObject ukko, 90



Repeat 
 
  
   If UpKey() Then MoveObject ukko,10
   If DownKey() Then MoveObject ukko,-8
   If LeftKey()And UpKey() Then TurnObject ukko,5
   If RightKey()And UpKey() Then TurnObject ukko,-5  
   If LeftKey()And DownKey() Then TurnObject ukko,5
   If RightKey()And DownKey() Then TurnObject ukko,-5
   If ObjectsOverlap (ukko,piste) Then Point = 1
   If ObjectsOverlap (ukko,maali) And point = 1 Then 
   Point = 0 
   Kierros +1 
  
If kierros = 3 Then Goto valikko
 EndIf
  Text 10,10,"Kierros:"+kierros  
   CloneCameraPosition ukko
 DrawScreen

Forever 

rata2:
 FrameLimit 40
SCREEN 1024,768
Kierros = 0
Point = 0 
kartta = LoadMap("Media\autorata2.til","Media\tilesetauto.bmp")
PlayObject kartta,0,0,1
maali = LoadObject ("Media\maali.bmp")
piste = LoadObject ("Media\CheckPoint.bmp")

ukko = LoadObject ("Media\car.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,  -100,0  
PositionObject maali, -80,50
PositionObject piste, 560,-20
RotateObject ukko, 90
Repeat 
   If UpKey() Then MoveObject ukko,10
   If DownKey() Then MoveObject ukko,-8
   If LeftKey()And UpKey() Then TurnObject ukko,5
   If RightKey()And UpKey() Then TurnObject ukko,-5  
   If LeftKey()And DownKey() Then TurnObject ukko,5
   If RightKey()And DownKey() Then TurnObject ukko,-5
   If ObjectsOverlap (ukko,piste) Then Point = 1
   If ObjectsOverlap (ukko,maali) And point = 1 Then 
   Point = 0 
   Kierros +1    
 If kierros = 3 Then Goto valikko
   EndIf
   Text 10,10,"Kierros:"+kierros  
   CloneCameraPosition ukko
 DrawScreen

forever
SupeRRallY

Re: Tyhmät kysymykset

Post by SupeRRallY »

Oho Öö.. en laittanu valikkoa mukaa, ja vimppaa kenttää.


täs neki

Code: Select all

SCREEN 1024,768 


valikko:
batavia=LoadFont ("batavia",30)
Repeat 
SetFont batavia 
If button ("Poistu",400,110) Then End 
If button ("rata1",400,210) Then Goto rata1 
If button ("rata2",400,310) Then Goto rata2 
If button ("rata3",400,410) Then Goto rata3
DrawScreen 
Forever 


rata1:
 FrameLimit 40
SCREEN 1024,768
Kierros = 0
Point = 0 
kartta = LoadMap("Media\autorata1.til","Media\tilesetauto.bmp")
PlayObject kartta,0,0,1
maali = LoadObject ("Media\maali.bmp")
piste = LoadObject ("Media\CheckPoint.bmp")

ukko = LoadObject ("Media\car.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,  -100,0  
PositionObject maali, -80,50
PositionObject piste, 560,-20
RotateObject ukko, 90



Repeat 
 
  
   If UpKey() Then MoveObject ukko,10
   If DownKey() Then MoveObject ukko,-8
   If LeftKey()And UpKey() Then TurnObject ukko,5
   If RightKey()And UpKey() Then TurnObject ukko,-5  
   If LeftKey()And DownKey() Then TurnObject ukko,5
   If RightKey()And DownKey() Then TurnObject ukko,-5
   If ObjectsOverlap (ukko,piste) Then Point = 1
   If ObjectsOverlap (ukko,maali) And point = 1 Then 
   Point = 0 
   Kierros +1 
  
If kierros = 3 Then Goto valikko
 EndIf
  Text 10,10,"Kierros:"+kierros  
   CloneCameraPosition ukko
 DrawScreen

Forever 

rata2:
 FrameLimit 40
SCREEN 1024,768
Kierros = 0
Point = 0 
kartta = LoadMap("Media\autorata2.til","Media\tilesetauto.bmp")
PlayObject kartta,0,0,1
maali = LoadObject ("Media\maali.bmp")
piste = LoadObject ("Media\CheckPoint.bmp")

ukko = LoadObject ("Media\car.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,  -100,0  
PositionObject maali, -80,50
PositionObject piste, 560,-20
RotateObject ukko, 90
Repeat 
   If UpKey() Then MoveObject ukko,10
   If DownKey() Then MoveObject ukko,-8
   If LeftKey()And UpKey() Then TurnObject ukko,5
   If RightKey()And UpKey() Then TurnObject ukko,-5  
   If LeftKey()And DownKey() Then TurnObject ukko,5
   If RightKey()And DownKey() Then TurnObject ukko,-5
   If ObjectsOverlap (ukko,piste) Then Point = 1
   If ObjectsOverlap (ukko,maali) And point = 1 Then 
   Point = 0 
   Kierros +1    
 If kierros = 3 Then Goto valikko
   EndIf
   Text 10,10,"Kierros:"+kierros  
   CloneCameraPosition ukko
 DrawScreen

Forever 

Global lisaa1,r 
Global lisaa,b 

Function button (txt$,x,y,x1=200,y1=50) 

If r = 0 Then lisaa1=1 
If r = 255 Then lisaa1=0 

If lisaa1 = 1 Then r+1 
If lisaa1 = 0 Then r-1

If b = 255 Then lisaa=0 
If b = 0 Then lisaa=1 

If lisaa = 0 Then b-1  
If lisaa = 1 Then b+1 

Color 0,255,255

Box x,y,x1,y1 

Color 255,255,255 

CenterText x+200/2,y+10,txt$ 

If BoxOverlap(MouseX(),MouseY(),10,10,x,y,x1,y1) And MouseHit(1) Then Return 1
End Function 

rata3:

 FrameLimit 40
SCREEN 1024,768
Kierros = 0
Point = 0 
kartta = LoadMap("Media\autorata3.til","Media\tilesetauto.bmp")
PlayObject kartta,0,0,1
maali = LoadObject ("Media\maali.bmp")
piste = LoadObject ("Media\CheckPoint.bmp")

ukko = LoadObject ("Media\car.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,  -100,0  
PositionObject maali, -80,50
PositionObject piste, 560,-20
RotateObject ukko, 90



Repeat 
 
  
   If UpKey() Then MoveObject ukko,10
   If DownKey() Then MoveObject ukko,-8
   If LeftKey()And UpKey() Then TurnObject ukko,5
   If RightKey()And UpKey() Then TurnObject ukko,-5  
   If LeftKey()And DownKey() Then TurnObject ukko,5
   If RightKey()And DownKey() Then TurnObject ukko,-5
   If ObjectsOverlap (ukko,piste) Then Point = 1
   If ObjectsOverlap (ukko,maali) And point = 1 Then 
   Point = 0 
   Kierros +1 
   If kierros = 3 Then Goto valikko 
 EndIf
   Text 10,10,"Kierros:"+kierros  
   CloneCameraPosition ukko
 DrawScreen
Forever
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Kyllä se sinne valikkoon menee ja kaikki toimii muuten normaalisti, mutta noi edelliset objektit ja kartta jää siihen näkyville ja peittää sen itse valikon. Tee vaikka näin:

Code: Select all

If kierros = 3 Then 
        DeleteObject maali
        DeleteObject piste
        DeleteObject kartta
        DeleteObject ukko
        Goto valikko
EndIf
Ja jos sulla on muitakin objekteja, niin muista poistaa nekin.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: Tyhmät kysymykset

Post by Eräs cb koodaaja »

superrally wrote:Koodasin autopeliini niin että sen pitäisi kolmenkierroksen jälkeen mennä valikkoon
mutta se ei mene :( peli vaan tilttaa ja pitää käynistää peli kokonaan uudelleen.
Olisi helpompi etsiä vikaa, jos viasta olisi kerrottu muutakin kuin peli kaatuu. Maviinko? Ja testaamallahan tuo selviäisi, jos olisi mediat.
EDIT:

Ärh! Muut ehti ensin ja vikakin löytyi jo

Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

Juu taas kerran on onkelmia... Päätin muokata pelipohjaa hieman...
Kun käynnistän pelin niin tulee taas tuttu Error memory access violat...

Ja koodi:

Code: Select all

FrameLimit 40

Const PAINOVOIMA = -0.1
yPlus#=0 


SCREEN 954,604
hiiri=LoadImage("Media\hiiri.bmp")


ShowMouse hiiri

alku = LoadImage("Media/j.tapettimies2/j.tapettimies2/taustat/logo kuva.bmp")

uusipeli = LoadImage("media/uusipeli.bmp")

exit1 = LoadImage("media/exit.bmp")



Repeat

hiiriX=MouseX()
hiiriY=MouseY()

DrawGame
DrawImage alku,0,0
DrawImage exit1,450,520
DrawImage uusipeli,20,480


If ObjectsOverlap(hiiri,uusipeli) And MouseHit(1) Then
Goto yli



yli:

kenttä = LoadMap("Media\j.tapettimies2\j.tapettimies2\kenttiä\kenttä1.til", "Media\j.tapettimies2\j.tapettimies2\kenttiä\karkkimaa.bmp")
ukko = LoadObject("Media\j.tapettimies2\j.tapettimies2\player\mini oikealle\Player mini.bmp")
SetupCollision ukko,kenttä,1,4,2
PositionObject ukko,6,12

If LeftKey() Then MoveObject ukko,3
If RightKey() Then MoveObject ukko,-3

If KeyHit(cbkeyrshift) And maassa Then
yplus#=4.5
EndIf



DrawScreen
EndIf 




Forever 
Mikäs on vikana???
Älä kysy multa!
Mysterius Coder
Active Member
Posts: 133
Joined: Mon Aug 27, 2007 8:13 pm

Re: Tyhmät kysymykset

Post by Mysterius Coder »

Code: Select all

If ObjectsOverlap(hiiri,uusipeli) And MouseHit(1) Then
Goto yli
Hiiri ja uusipeli ovat imageja ja yritätä objectsoverlappia, käytä imagesoverlappia.
Kyllä minä osaan, mutta kun mieli on tällasen kaaoksen vallassa, niin ei siitä mitään tule.
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

Mysterius Coder wrote:

Code: Select all

If ObjectsOverlap(hiiri,uusipeli) And MouseHit(1) Then
Goto yli
Hiiri ja uusipeli ovat imageja ja yritätä objectsoverlappia, käytä imagesoverlappia.
Kiitos... Mutta tou ei riitä... Sitten kun olen muuttanut sen niin samasta lauseesta tulee error:
code 78, not enought parametres at line 32 (32 on se rivi)...
Help! :|
Älä kysy multa!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Akatsuki wrote:
Mysterius Coder wrote:

Code: Select all

If ObjectsOverlap(hiiri,uusipeli) And MouseHit(1) Then
Goto yli
Hiiri ja uusipeli ovat imageja ja yritätä objectsoverlappia, käytä imagesoverlappia.
Kiitos... Mutta tou ei riitä... Sitten kun olen muuttanut sen niin samasta lauseesta tulee error:
code 78, not enought parametres at line 32 (32 on se rivi)...
Help! :|
Koska sille on annettava parametreinä myös kuvien koordinaatit, mistäs muusta ohjelma tietäisi missä törmättävät kuvat ovat? Niillä ei ole omia koordinaatteja kuten objekteilla. Eli If ImagesOverlap( hiiri, MouseX(), MouseY(), uusipeli, 20, 480 ) niin pitäisi toimia. Joskin hiiri piirretään keskitetysti eli MouseX()-Imagewidth(hiiri)/2, MouseY()-Imageheight(hiiri)/2
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Anti-alias pois.

Post by -Z- »

Yritin tällaisella systeemillä tehdä 800x600 ikkunaa puolella resoluutiolla:

Code: Select all

SCREEN 800, 600
SCREEN 400, 300,0,2
Mutta nyt kävi näin:
Anti-aliaaas...
Anti-aliaaas...
antialias.png (1.24 KiB) Viewed 7680 times
Siihen tulee jokin reunanpehmennys, jota ei tällä kertaa oikeastaan kaivata. Saako sitä mitenkään pois?
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Anti-alias pois.

Post by koodaaja »

Itse olen kokeillut samantapaista, muttei se kyllä millään tunnu poistuvan. Voit toki katsoa, josko näytönohjaimen asetuksista saisi säädettyä jotenkin.. Ainakaan CB:n omilla avuilla tuolle ei voi tehdä mitään. Todennäköisesti helpoimmalla pääset resizeimagen käytöllä.
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

koodaaja wrote:
Akatsuki wrote:
Mysterius Coder wrote:

Code: Select all

If ObjectsOverlap(hiiri,uusipeli) And MouseHit(1) Then
Goto yli
Hiiri ja uusipeli ovat imageja ja yritätä objectsoverlappia, käytä imagesoverlappia.
Kiitos... Mutta tou ei riitä... Sitten kun olen muuttanut sen niin samasta lauseesta tulee error:
code 78, not enought parametres at line 32 (32 on se rivi)...
Help! :|
Koska sille on annettava parametreinä myös kuvien koordinaatit, mistäs muusta ohjelma tietäisi missä törmättävät kuvat ovat? Niillä ei ole omia koordinaatteja kuten objekteilla. Eli If ImagesOverlap( hiiri, MouseX(), MouseY(), uusipeli, 20, 480 ) niin pitäisi toimia. Joskin hiiri piirretään keskitetysti eli MouseX()-Imagewidth(hiiri)/2, MouseY()-Imageheight(hiiri)/2
Kiitos... Nyt ei tule minkään näköistä erroria... Nytten heti kun käynnistän pelin niin alkuvalikossa ei näy:
1. Uusipeli painiketta
2. Hiirtä
3. Se ei sammu muuta kuin control,alt ja del napeilla... Ja sieltä sammuta ohjelma...Ei edes vaikka rämpyttää ruksia kulmasta...
Älä kysy multa!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

@Akatsuki:

Mikäli et sitä tehnyt kun viimeksi kehotin(sellaisen romaanin keskellä oli ettei mikään ihmekään jos missasit), niin siirrä DrawScreen Foreverin yläpuolelle, pitäähän se ruutu piirtääkin.
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

koodaaja wrote:@Akatsuki:

Mikäli et sitä tehnyt kun viimeksi kehotin(sellaisen romaanin keskellä oli ettei mikään ihmekään jos missasit), niin siirrä DrawScreen Foreverin yläpuolelle, pitäähän se ruutu piirtääkin.
Hei! Sain sen silloin toimiin! Nytten se on ihan oikeilla paikoilla! Eikä toimi!
Vielä kertaukseksi koodini:

Code: Select all

FrameLimit 40

Const PAINOVOIMA = -0.1
yPlus#=0 


SCREEN 954,604
hiiri=LoadImage("Media\hiiri.bmp")

ShowMouse hiiri
alku = LoadImage("Media/j.tapettimies2/j.tapettimies2/taustat/logo kuva.bmp")

uusipeli = LoadImage("media/uusipeli.bmp")

exit1 = LoadImage("media/exit.bmp")



Repeat
    hiiriX=MouseX()
    hiiriY=MouseY()

DrawGame
DrawImage alku,0,0
DrawImage exit1,450,520
DrawImage uusipeli,20,480


If ImagesOverlap(hiiri,MouseX(), MouseY(),uusipeli, 20, 480) And MouseHit(1) Then
Goto yli



yli:

kenttä = LoadMap("Media\j.tapettimies2\j.tapettimies2\kenttiä\kenttä1.til", "Media\j.tapettimies2\j.tapettimies2\kenttiä\karkkimaa.bmp")
ukko = LoadObject("Media\j.tapettimies2\j.tapettimies2\player\mini oikealle\Player mini.bmp")
SetupCollision ukko,kenttä,1,4,2
PositionObject ukko,6,12

If LeftKey() Then MoveObject ukko,3
If RightKey() Then MoveObject ukko,-3

If KeyHit(cbkeyrshift) And maassa Then
yplus#=4.5
EndIf



DrawScreen
EndIf 




Forever 
Kiitos kummiskin! Ja en missanut sitä! Se auttoi silloin yhteen ongelmaani ;)
Älä kysy multa!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Eikös sen pitäisi olla endiffän jälkeen? Katsohan, jos iffin ehto ei täyty, hypätään Endiffiin, jolloin loopistasi tulee tämänkaltainen:

Code: Select all

Repeat
    
    hiiriX=MouseX()
    hiiriY=MouseY()
    
    DrawGame
    DrawImage alku,0,0
    DrawImage exit1,450,520
    DrawImage uusipeli,20,480
    
Forever 
Sieltä puuttuu siis Drawscreen. Lisääpä sellainen Foreverin ja EndIffin väliin.
User avatar
valscion
Moderator
Moderator
Posts: 1598
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

Akatsuki wrote:
koodaaja wrote:@Akatsuki:

Mikäli et sitä tehnyt kun viimeksi kehotin(sellaisen romaanin keskellä oli ettei mikään ihmekään jos missasit), niin siirrä DrawScreen Foreverin yläpuolelle, pitäähän se ruutu piirtääkin.
Hei! Sain sen silloin toimiin! Nytten se on ihan oikeilla paikoilla! Eikä toimi!
Vielä kertaukseksi koodini:

Code: Select all

...koodia
Kiitos kummiskin! Ja en missanut sitä! Se auttoi silloin yhteen ongelmaani ;)
Ensiksikin ota yli: osio pois pääsilmukan sisältä ja käytä GoSub komentoa jos haluat vielä palata yli osiosta takaisin päälooppiin.
Olit laittanut if-lausekkeeseen jos hiiri ja uusipeli ovat päällekkäin, goto yli, mutta olit laittanut yli osion saman if-lausekkeen sisälle! Ei näin!
Yli osiossa latasit loopin sisällä kovalevyltä karttaa aina uudestaan mikä aiheutti suurta lagia, kun testasin koodia.

Tässä on korjattua koodia, vaihda kuvien poluiksi omat kuvasi. Muista "\" viivat oikein päin.

Code: Select all

FrameLimit 40
Const PAINOVOIMA = -0.1
yPlus#=0


SCREEN 954,604
hiiri=LoadImage("Media\cursor.bmp")

ShowMouse hiiri
alku = LoadImage("Media\sun.bmp")

uusipeli = LoadImage("Media\buttoni.bmp")

exit1 = LoadImage("Media\note.bmp")



Repeat
    hiiriX=MouseX()
    hiiriY=MouseY()

    DrawImage alku,0,0
    DrawImage exit1,450,520
    DrawImage uusipeli,20,480

	//Tarkistetaan josko hiiri osuu uusipeli kuvaan ja rikkoudutaan irti loopista
    If ImagesOverlap(hiiri,MouseX(), MouseY(),uusipeli, 20, 480) And MouseHit(1) Then Exit

	//Piirretään ruutu juuri ennen loopin loppua
    DrawScreen
Forever

//Tässä ladataan itse peli
    kenttä = LoadMap("Media\cdm2.til","Media\tileset.bmp")
	//ukon kääntymissuuntia ei tarvitse olla 360, se hidastaa peliä
    ukko = LoadObject("Media\guy.bmp", 72)
    SetupCollision ukko,kenttä,1,4,2
    PositionObject ukko,6,12

//Aloitetaan looppi
Repeat
	//Liikkumiset ja kääntymiset
    MoveObject ukko,(UpKey() - DownKey())*3 'Liikkumisvauhti 3
	TurnObject ukko,(LeftKey() - RightKey())*5 'Kääntymisvauhti 5

	//"hyppy" vaikkei siitä ole olemassa ollenkaan koodia
	If KeyHit(cbkeyrshift) And maassa Then
		yplus#=4.5
	EndIf
	
	//Lopuksi piirretään ruutu ja aloitetaan looppi alusta
	DrawScreen
Forever 
EDIT:

koodaaja: Kyllä sieltä paljon muutakin väärää löytyi kuin pelkkä If lauseke

niin, ja btw. aivan mahtava allekirjotus :lol:

Last edited by valscion on Sun Jan 06, 2008 1:48 pm, edited 1 time in total.
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
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

OonSuomesta wrote:
Akatsuki wrote:
koodaaja wrote:@Akatsuki:

Mikäli et sitä tehnyt kun viimeksi kehotin(sellaisen romaanin keskellä oli ettei mikään ihmekään jos missasit), niin siirrä DrawScreen Foreverin yläpuolelle, pitäähän se ruutu piirtääkin.
Hei! Sain sen silloin toimiin! Nytten se on ihan oikeilla paikoilla! Eikä toimi!
Vielä kertaukseksi koodini:

Code: Select all

...koodia
Kiitos kummiskin! Ja en missanut sitä! Se auttoi silloin yhteen ongelmaani ;)
Ensiksikin ota yli: osio pois pääsilmukan sisältä ja käytä GoSub komentoa jos haluat vielä palata yli osiosta takaisin päälooppiin.
Olit laittanut if-lausekkeeseen jos hiiri ja uusipeli ovat päällekkäin, goto yli, mutta olit laittanut yli osion saman if-lausekkeen sisälle! Ei näin!
Yli osiossa latasit loopin sisällä kovalevyltä karttaa aina uudestaan mikä aiheutti suurta lagia, kun testasin koodia.

Tässä on korjattua koodia, vaihda kuvien poluiksi omat kuvasi. Muista "\" viivat oikein päin.

Code: Select all

FrameLimit 40
Const PAINOVOIMA = -0.1
yPlus#=0


SCREEN 954,604
hiiri=LoadImage("Media\cursor.bmp")

ShowMouse hiiri
alku = LoadImage("Media\sun.bmp")

uusipeli = LoadImage("Media\buttoni.bmp")

exit1 = LoadImage("Media\note.bmp")



Repeat
    hiiriX=MouseX()
    hiiriY=MouseY()

    DrawImage alku,0,0
    DrawImage exit1,450,520
    DrawImage uusipeli,20,480

	//Tarkistetaan josko hiiri osuu uusipeli kuvaan ja rikkoudutaan irti loopista
    If ImagesOverlap(hiiri,MouseX(), MouseY(),uusipeli, 20, 480) And MouseHit(1) Then Exit

	//Piirretään ruutu juuri ennen loopin loppua
    DrawScreen
Forever

//Tässä ladataan itse peli
    kenttä = LoadMap("Media\cdm2.til","Media\tileset.bmp")
	//ukon kääntymissuuntia ei tarvitse olla 360, se hidastaa peliä
    ukko = LoadObject("Media\guy.bmp", 72)
    SetupCollision ukko,kenttä,1,4,2
    PositionObject ukko,6,12

//Aloitetaan looppi
Repeat
	//Liikkumiset ja kääntymiset
    MoveObject ukko,(UpKey() - DownKey())*3 'Liikkumisvauhti 3
	TurnObject ukko,(LeftKey() - RightKey())*5 'Kääntymisvauhti 5

	//"hyppy" vaikkei siitä ole olemassa ollenkaan koodia
	If KeyHit(cbkeyrshift) And maassa Then
		yplus#=4.5
	EndIf
	
	//Lopuksi piirretään ruutu ja aloitetaan looppi alusta
	DrawScreen
Forever 
EDIT:

koodaaja: Kyllä sieltä paljon muutakin väärää löytyi kuin pelkkä If lauseke

niin, ja btw. aivan mahtava allekirjotus :lol:


Kiitos erittäin paljon! Nyt toimii kuin unelma! Ja kiitos myös sinulle koodaaja kun autoit!
Älä kysy multa!
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

Hei... Taas tarttisin apua... Tällä kertaa pienemmässä muodossa...
En oikein keksi millä koodilla siirtyisin seuraavaan kenttään...
Tällä hetkellä yritin käyttää tämmöistä koodia:

Code: Select all

If GetMap(3,ObjectX,ObjectY)) = 1 And KeyHit(cbkeyreturn) Then Exit
Ja jos tosta ei löydy virhettä niin sitten koko koodin pätkä:

Code: Select all

    FrameLimit 40

    
    pv# = -0.1


    yplus#=0



    SCREEN 954,604
hiiri=LoadImage("Media\hiiri.bmp")
ShowMouse hiiri
alku = LoadImage("Media/j.tapettimies2/j.tapettimies2/taustat/logo kuva.bmp")

uusipeli = LoadImage("media/uusipeli.bmp")

exit1 = LoadImage("media/exit.bmp")


    Repeat
        hiiriX=MouseX()
        hiiriY=MouseY()

        DrawImage alku,0,0
        DrawImage exit1,450,520
        DrawImage uusipeli,20,480

       //Tarkistetaan josko hiiri osuu uusipeli kuvaan ja rikkoudutaan irti loopista
If ImagesOverlap(hiiri,MouseX(), MouseY(),uusipeli, 20, 480) And MouseHit(1) Then Exit

       //Piirretään ruutu juuri ennen loopin loppua
        DrawScreen
    Forever

    //Tässä ladataan itse peli
        kenttä = LoadMap("Media\j.tapettimies2\j.tapettimies2\kenttiä\kenttä1.til", "Media\j.tapettimies2\j.tapettimies2\kenttiä\karkkimaa.bmp")
       //ukon kääntymissuuntia ei tarvitse olla 360, se hidastaa peliä
        ukko = LoadObject("Media\j.tapettimies2\j.tapettimies2\player\mini oikealle\oma tap.bmp", 72)
        SetupCollision ukko,kenttä,1,4,2
        PositionObject ukko,6,12
CloneCameraPosition ukko
    //Aloitetaan looppi
    Repeat
        vauhti=0
       //Liikkumiset ja kääntymiset
    If RightKey() Then
    vauhti=2
    ElseIf LeftKey()
    vauhti=-2
        EndIf

    TranslateObject ukko,vauhti,yplus#
    yplus=yplus+pv

       //"hyppy" vaikkei siitä ole olemassa ollenkaan koodia


    'pelaaja1 törmäyksen tunnistus

    maassa=0
    törmäykset=CountCollisions(ukko)

    For i=1 To törmäykset
    If GetCollision (ukko,i)=kenttä

    If CollisionAngle (ukko,i)=90 Then
    yplus#=-1
    maassa=1
    EndIf

    If CollisionAngle(ukko,i)=270 Then
    yplus#=-1
    EndIf
    EndIf
    Next i

    If UpKey() And maassa Then
    yplus#=4.5
   EndIf 

If GetMap(3,ObjectX,ObjectY)) = 1 And KeyHit(cbkeyreturn) Then Exit

     
DrawScreen
Forever 

kenttä2 = LoadMap("Media\j.tapettimies2\j.tapettimies2\kenttiä\kenttä2.til", "Media\j.tapettimies2\j.tapettimies2\kenttiä\karkkimaa2.bmp")
        ukko = LoadObject("Media\j.tapettimies2\j.tapettimies2\player\mini oikealle\oma tap.bmp", 72)
        SetupCollision ukko,kenttä,1,4,2
        PositionObject ukko,3,2
CloneCameraPosition ukko

DrawScreen
Juu ja kiitti kun täällä viittitte autella :D
Täällä foorumilla on mukavaa väkee... :roll:
Älä kysy multa!
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Sitten vain lataat uuden kentän ja siirrät objektit (vihut(?) yms.) paikalleen. Eli teet if-lausekkeesta monirivisen.
Akatsuki
Member
Posts: 56
Joined: Thu Jan 03, 2008 1:39 pm
Location: Ylöjärvi
Contact:

Re: Tyhmät kysymykset

Post by Akatsuki »

koodaaja wrote:Sitten vain lataat uuden kentän ja siirrät objektit (vihut(?) yms.) paikalleen. Eli teet if-lausekkeesta monirivisen.
Juu mutta yksi koodi ei toimi...

Code: Select all

If GetMap(3,ObjectX,ObjectY)) = 1 And KeyHit(cbkeyreturn) Then Exit
Se herjaa että tossa on joku vika... Mikä? (Sori toi edellinen lause oli ehkä vähän epäselvä...)
Error:
cannot progress due to irregular brackets at line 82
Älä kysy multa!
Locked