Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (I/2011)

Post by TheFish »

Geewilliam wrote:Hmh, ärsyttää, mutta pommitan lisää erittäin tyhmillä kysymyksillä.
Saanko if-lauseeseen ehdon "if x= >1 and <maara then...". Eli siis, jos x on suurempi, kuin 1 ja pienempi kuin muutuja maara. Tai olisiko joku hyvä keino saada jollain muulla komennolla? Tarkoitus siis saada tekemään jotain, kun/jos x on jokin luku 1-maara, jos ei, kysytään uudestaan tai tulee valitus. (Esim. while- voisi olla hyvä, että kysytään kunnes luku on 1-maara.)

Code: Select all

if x > 1 and x < maara then ...
CoolBasic henkilökuntaa
Kehittäjä
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 »

Geewilliam wrote:Hmh, ärsyttää, mutta pommitan lisää erittäin tyhmillä kysymyksillä.
Saanko if-lauseeseen ehdon "if x= >1 and <maara then...". Eli siis, jos x on suurempi, kuin 1 ja pienempi kuin muutuja maara. Tai olisiko joku hyvä keino saada jollain muulla komennolla? Tarkoitus siis saada tekemään jotain, kun/jos x on jokin luku 1-maara, jos ei, kysytään uudestaan tai tulee valitus. (Esim. while- voisi olla hyvä, että kysytään kunnes luku on 1-maara.)

Code: Select all

If x => 1 And x < maara
Pitää vain aina laittaa molempiin puoliin se x-muuttuja myös, koska nuo ehtolauseen osaset ovat itsenäisiä kokonaisuuksia, jotka And-operaattori linkittää toisiinsa.
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
User avatar
Noun
Newcomer
Posts: 19
Joined: Sun May 08, 2011 8:17 pm
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Noun »

Tattis paljon noista kartantallennusavuista. Mutta nyt, kuinka saan estettyä kameraa näyttämästä kartan ulkopuolista aluetta? Niin, että se pysähtyisi kun tullaan maailman laidalle.
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 »

Noun wrote:Tattis paljon noista kartantallennusavuista. Mutta nyt, kuinka saan estettyä kameraa näyttämästä kartan ulkopuolista aluetta? Niin, että se pysähtyisi kun tullaan maailman laidalle.
Tässäpä koodiesimerkki:

Code: Select all

FrameLimit 60 'rajoita nopeutta

// Ikkunan leveys ja korkeus jo vakioissa, säästytään usealta 
// ScreenWidth() ja ScreenHeight() -kutsulta
Const ScreenW = 640
Const ScreenH = 480
SCREEN ScreenW,ScreenH

// Kartan leveys ja korkeus, säästytään usealta
// MapWidth() ja MapHeight() -kutsulta
Const MapW = 40
Const MapH = 40

kartta = MakeMap( MapW, MapH, 32, 32 )
tileset = LoadImage("Media\tileset.bmp")
PaintObject kartta, tileset

// Reunat
For i=1 To MapW
    EditMap map,0,i,1,113 'Kuva
    EditMap map,2,i,1,1   'Törmäys
    
    EditMap map,0,i,MapW,113
    EditMap map,2,i,MapW,1
Next i
For i=1 To MapH
    EditMap map,0,1,i,113
    EditMap map,2,1,i,1
    
    EditMap map,0,MapW,i,113
    EditMap map,2,MapW,i,1
Next i

// Kartan lattia
For x=2 To MapW-1
    For y=2 To MapH-1
        EditMap map,0,x,y,153
    Next y
Next x

// Animoidaan vielä reunat ;)
SetTile 113, 1
PlayObject kartta,0,0,1

ukko = LoadObject ("Media\guy.bmp",72)

// Asetetaan törmäys ukolle ja kartalle
SetupCollision ukko,kartta,1,4,2

Repeat

    'Ukon ohjaus
    If LeftKey() Then TurnObject ukko,10
    If RightKey() Then TurnObject ukko,-10
    If UpKey() Then MoveObject ukko,5
    If DownKey() Then MoveObject ukko,-5

    // Rajoitetaan kamera kartan reunoihin
    camX = ObjectX(ukko)
    camY = ObjectY(ukko)
    If camX < (ScreenW-ObjectSizeX(kartta))/2 Then camX = (ScreenW-ObjectSizeX(kartta))/2
    If camX > (ObjectSizeX(kartta)-ScreenW)/2 Then camX = (ObjectSizeX(kartta)-ScreenW)/2
    If camY < (ScreenH-ObjectSizeY(kartta))/2 Then camY = (ScreenH-ObjectSizeY(kartta))/2
    If camY > (ObjectSizeY(kartta)-ScreenH)/2 Then camY = (ObjectSizeY(kartta)-ScreenH)/2
    
    PositionCamera camX, camY

    DrawScreen

Forever
Tuossa se maaginen kohta on siis tämä:

Code: Select all

    camX = ObjectX(ukko)
    camY = ObjectY(ukko)
    If camX < (ScreenW-ObjectSizeX(kartta))/2 Then camX = (ScreenW-ObjectSizeX(kartta))/2
    If camX > (ObjectSizeX(kartta)-ScreenW)/2 Then camX = (ObjectSizeX(kartta)-ScreenW)/2
    If camY < (ScreenH-ObjectSizeY(kartta))/2 Then camY = (ScreenH-ObjectSizeY(kartta))/2
    If camY > (ObjectSizeY(kartta)-ScreenH)/2 Then camY = (ObjectSizeY(kartta)-ScreenH)/2
   
    PositionCamera camX, camY
Siinä lasketaan suurimmat ja pienimmät x- ja y-koordinaatit, jotka kameralle voi tulla ja pidetään huoli ettei kamera ylitä niitä arvoja ja lopuksi asetetaan kamera kyseisiin koordinaatteihin.

Kannattaa ehkä ottaa ObjectSizeX(kartta) ja ObjectSizeY(kartta) johonkin vakioon/muuttujaan ylös, niin säästyy parit turhat ja toistuvat funktiokutsut.
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
Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen »

Code: Select all

For vihu_spear.enemy_spear = Each enemy_spear
For keihäs.spear = Each spear


If Distance2(vihu_spear\obj,keihäs\obj) > 60 Then
PointObject vihu_spear\obj,keihäs\obj


If ObjectX(vihu_spear\obj) < ObjectX(keihäs\obj) Then
PaintObject vihu_spear\obj, spear_oikea
PlayObject vihu_spear\obj,2,11,0.10
MoveObject vihu_spear\obj,2

ElseIf ObjectX(vihu_spear\obj) > ObjectX(keihäs\obj) Then
PaintObject vihu_spear\obj, spear_vasen
PlayObject vihu_spear\obj,2,11,0.10
MoveObject vihu_spear\obj,2


EndIf
EndIf
Mulla tuli sellainen ongelma, että kunn nämä "vihut"(vihu_spear\obj) liikkuvat tuntuu siltä, että mitä enemmän näitä "keihäitä"(keihäs\obj) on sitä kovempaa nämä "vihut" liikkuva, vaikka olen laittanut että ne liikkuisivat vain "2".
Saisinko jollain rajoitettua tuota nopeutta, tai että "vihu osoittaisi" vain sitä lähimpänä olevaa objektia(keihäs\obj)", ja johtuuko tämä tuosta PointObject:ista, vai mistä?
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2011)

Post by esa94 »

Ihminen wrote:

Code: Select all

For vihu_spear.enemy_spear = Each enemy_spear
For keihäs.spear = Each spear


If Distance2(vihu_spear\obj,keihäs\obj) > 60 Then
PointObject vihu_spear\obj,keihäs\obj


If ObjectX(vihu_spear\obj) < ObjectX(keihäs\obj) Then
PaintObject vihu_spear\obj, spear_oikea
PlayObject vihu_spear\obj,2,11,0.10
MoveObject vihu_spear\obj,2

ElseIf ObjectX(vihu_spear\obj) > ObjectX(keihäs\obj) Then
PaintObject vihu_spear\obj, spear_vasen
PlayObject vihu_spear\obj,2,11,0.10
MoveObject vihu_spear\obj,2


EndIf
EndIf
Mulla tuli sellainen ongelma, että kunn nämä "vihut"(vihu_spear\obj) liikkuvat tuntuu siltä, että mitä enemmän näitä "keihäitä"(keihäs\obj) on sitä kovempaa nämä "vihut" liikkuva, vaikka olen laittanut että ne liikkuisivat vain "2".
Saisinko jollain rajoitettua tuota nopeutta, tai että "vihu osoittaisi" vain sitä lähimpänä olevaa objektia(keihäs\obj)", ja johtuuko tämä tuosta PointObject:ista, vai mistä?
Ne liikkuvat 2 pikseliä eteenpäin joka kerta kun ObjectX(vihu_spear\obj) < ObjectX(keihäs\obj) eli parhaimmillaan tuplasti spear-tyypin jäsenten määrän verran. En kylläkään ole varma mitä tässä yritetään.
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 »

Kuinka html:ssä onnistuu se että kun linkki on musta ja kun hiiren vie linkin kohdalle linkin väri muuttuu esim punaiseksi?
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

Laurenzo wrote:Kuinka html:ssä onnistuu se että kun linkki on musta ja kun hiiren vie linkin kohdalle linkin väri muuttuu esim punaiseksi?
Käytä CSS:än hover valitsinta.

Code: Select all

<html>
	<head>
	  <style type="text/css">
		a {
			color: black;
		}
		a:hover {
			color: red;
		}
		</style>
	</head>
	<body>
		<a href="www.coolbasic.com">CoolBasic</a>
	</body>
</html>
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 »

MetalRain wrote:
Laurenzo wrote:Kuinka html:ssä onnistuu se että kun linkki on musta ja kun hiiren vie linkin kohdalle linkin väri muuttuu esim punaiseksi?
Käytä CSS:än hover valitsinta.

Code: Select all

<html>
	<head>
	  <style type="text/css">
		a {
			color: black;
		}
		a:hover {
			color: red;
		}
		</style>
	</head>
	<body>
		<a href="www.coolbasic.com">CoolBasic</a>
	</body>
</html>
Kiitti!
Ja vielä yksi kysymys: Kuinka linkeistä voi poistaa alleviivauksen?
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

Laitat linkin tyylimäärittelyyn vielä

Code: Select all

text-decoration: none
niin alleviivaukset katoaa. Googlella on hyvä etsiä tämmösiä asioita, usein myös w3Schoolsin sivuilta löytää hyviä neuvoja.
'cool' 'basic'

Re: Tyhmät kysymykset (I/2011)

Post by 'cool' 'basic' »

Löysin pelistä sellasen ongelman ettei, setupcollision huomaa kaikkia törmäyksiä ja osa vihollisista pääsee kartan läpi =D Siis jos pelissä on liian monta törmäystä samaan aikaan niin osa vihollisista pääsee törmäyksen läpi.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

En ole varma olenko joskus saanut tämän estettyä jonkinlaisella kikkailuilla SetupCollisionia käyttäen.

Päästä heitettynä, voisit kokeilla päivittää pelaajan "oldX" ja "oldY", silloin kun pelaaja ei törmää _kartan_ kanssa. Kun pelaaja sitten törmää karttaan, se siirretään koordinaatteihin oldX ja oldY. Törmäyksen pelkän kartan kanssa saa funktiolla GetCollision().
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

'cool' 'basic' wrote:Löysin pelistä sellasen ongelman ettei, setupcollision huomaa kaikkia törmäyksiä ja osa vihollisista pääsee kartan läpi =D Siis jos pelissä on liian monta törmäystä samaan aikaan niin osa vihollisista pääsee törmäyksen läpi.
Epäilisin, että ongelmaan saattaisi auttaa, jos laittaa kartan kanssa törmäyksen viimeisenä. Silloin hahmot menevät ennemmin toistensa kuin kartan läpi. En tosin ole asiaan perehtynyt, joten kyseessä on pitkälti tuulesta temmattu idea.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
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 »

MetalRain wrote:Laitat linkin tyylimäärittelyyn vielä

Code: Select all

text-decoration: none
niin alleviivaukset katoaa. Googlella on hyvä etsiä tämmösiä asioita, usein myös w3Schoolsin sivuilta löytää hyviä neuvoja.
Kiitos
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: Tyhmät kysymykset (I/2011)

Post by jaahas »

Yritän tehdä paussia peliini mutta haluaisin että peli näkyy takana eli haluaisin piirtää sen tauotetun pelin sinne taakse miten tää onnistuis muutenkuin piirtää koko peliä kokoajan kuvaan ja sitten piirtää kuvaa näytölle?
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by temu92 »

Ottamalla ennen paussia screenshotti ruudusta ja piirtämällä se sitten ruutuun. Imo kuitenkin paras keino on piirtää kaikki joka kierroksella. Objektien päivityksissä (liikkeet tms.) tarkistat vaan ollaanko paussilla ja jos ollaan niin ei liikuteta mitään.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

temu92 wrote:Ottamalla ennen paussia screenshotti ruudusta ja piirtämällä se sitten ruutuun. Imo kuitenkin paras keino on piirtää kaikki joka kierroksella. Objektien päivityksissä (liikkeet tms.) tarkistat vaan ollaanko paussilla ja jos ollaan niin ei liikuteta mitään.
Tuohon vielä huomautan, että objektien animointi on myös syytä pysäyttää. Itse ehkä suosisin ensimmäistä tapaa, siihen voi jonkun suht. nopean efektin lisätä, joka lisää sen tuntua, että peli on taka-alalla. Esimerkiksi joka toisen pikselin tummentaminen tuskin aiheuttaa liikaa viivettä paussiruudun avaamiseen.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Alluu
Newcomer
Posts: 16
Joined: Sat Sep 24, 2011 8:40 pm

Re: Tyhmät kysymykset (I/2011)

Post by Alluu »

Miten teen tilesetin ? vaikka jostain kuvasta.. :D
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Tileset on normaali kuva, jossa jokainen "tile", eli laatta on saman kokoinen. Esim. 32x32 pikseliä leveä ja korkea. Esim. cb:n media-kansiossa oleva tileset.bmp on tilesetti.

Tilekartta tehdään editorilla, esim. Tilester, Tilegen tai A Stigmator. Tilekartta käyttää tilesettiä ulkoasunsa piirtoon.

Tilekartta ladataan ohjelmaan komennolla 'kartta = LoadMap("tilekartta.til", "tilesetti.png")'
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Alluu
Newcomer
Posts: 16
Joined: Sat Sep 24, 2011 8:40 pm

Re: Tyhmät kysymykset (I/2011)

Post by Alluu »

ku teen tilesterillä ja tallennan se tekee siitä tiedoston ei TIL tiedostoa vaan jonku oudon :D ku siin pitä lukee tileset.TIL nii siin lukee tileset tiedosto :D ratkaisua?
Locked