Page 21 of 154

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 9:21 am
by Marcoder
Misthema wrote:Ongelmana siis on, etten saa törmäyksiä toimimaan, kun ukkeli liikkuu nuolinäppäimen painalluksesta 32px painettuun suuntaan.
Harakan systeemi on hyvä ja toimiva jos todellakin haluat että ukkeli/pallukka/joku liikkuu 32 pikselin nykäyksin.
Jos taas haluat että objekti liikkuu tuon 32 pikseliä jouhevasti eikä hypähtäen niin katso tämän topicin sivulta 9 tekemäni esimerkki. Siinä tosin siirtymä on 48 px mutta siitä on helppo soveltaa.
viewtopic.php?f=10&t=28&st=0&sk=t&sd=a&start=164

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 10:58 am
by Misthema
Harakka: Tuota viimeistä kokeilin, toimi loistavasti, mutta oikealle ei pystynyt liikkumaan ollenkaan... :/
En sitten tiedä mikä siinä on, mutta nyt kävi näin.

Kiitos Harakalle ja Marcoderille neuvoista, kokeilen kaikkia ja edittaan sitten minkä niistä sain toimimaan parhaiten. :)
EDIT:

Marcoderin esimerkki oli muuten hyvä, mutta ideana on juuri se että liikutaan 32 pikselin nykäyksin.
Harakan toinen esimerkki toimi, joten otan sen käyttöön.

Suuri kiitos vielä molemmille! :)


Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 1:46 pm
by valscion
Misthema wrote:Harakka: Tuota viimeistä kokeilin, toimi loistavasti, mutta oikealle ei pystynyt liikkumaan ollenkaan... :/
En sitten tiedä mikä siinä on, mutta nyt kävi näin.
Se johtuu siitä, että kun harakan koodissa tarkistetaan oikealle painaminen, niin katsotaan näppäintä "cbright" jota ei oikeasti ole olemassa. Vaihda sen tilalle cbkeyright ja homma toimii.

Tässä vielä korjattu koodinpätkä:

Code: Select all

newX = ObjectX(ukko) + keyhit(cbkeyright)*32 - KeyHit(cbkeyleft)*32
newY = ObjectY(ukko) + KeyHit(cbkeyup)*32 - keyhit(cbkeydown)*32

If not GetMap(2,newx,newy) then PositionObject ukko,newX,newY
EDIT:

100. posti! w00t!! \o/


Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 1:52 pm
by beg
koodaaja wrote:
beg wrote:Kysyisin yhtä tyhmää kysymystä eli miten saan nuo pelit/kuvat yms. jotka ovat rar muodossa pelattua/katsottua??? Tai siis millä ohjelmalla ne voidaan katsoa??
Eh.. niiden oletusohjelmalla? Tuplaklikkaat .raria->winrar aukeaa ja näyttää sisällön, sieltä tuplaklikki->tiedosto aukeaa oletusohjelmalla, .exet ihan omina ohjelminansa (luonnollisesti).
Kiitoksia! Juuri tuota winraria hain kun sitä ei ollut ennestään.

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 4:54 pm
by Eräs Vierailija
Kuinka

a) Saada jokin tietty asia pätemään kaikkiin muuttujiin kerralla, esim. If juttu<0 then juttu=0

b) Saada jonkinlainen "ShowObject OFF" imageille? DrawImagessa ei sellaista näytä olevan.

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 5:00 pm
by Szanne
a) Tätä kohtaa en tajunnut, joten en vastaa siihen.
b) Kuva pitää piirtää joka kerta silmukassa, että se näkyy. Eli jos et käytä Drawimage:a silmukassa, niin kuvaa ei piirretä. Ehtolausekkeella voit vaikka tarkastella, että pitääkö kuva piirtää.

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 5:02 pm
by koodaaja
a)Tee taulukko/type ja käy muuttujat sitten läpi.

b) Jätät piirtämättä, siis yksinkertaisesti ei DrawImagea. (If image_nakyy Then drawimage)

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 5:14 pm
by M.R
Miksiän tulee erroria?Luultavasti puuttuu Endiffiä tai vastaavaa:

Code: Select all

For vastustaja.Vihu=Each Vihu
If vastustaja\ammukset>50 And vastustaja\patruunat>0 Then
If Distance2(vastustaja\obj,ukko)<10000 Then
CurvePointObject(vastustaja\obj,ukko)
If Distance2(vastustaja\obj,ukko)>500 Then MoveObject vastustaja\obj,3
If Distance2(vastustaja\obj,ukko)<1000 Then ammu(vastustaja\obj)
Else
MoveObject vastustaja\obj,2
TurnObject vastustaja\obj,0.1
If GetMap(2,ObjectX(vastustaja\obj),ObjectX(vastustaja\obj))=1 Then
TurnObject vastustaja\obj,180:MoveObject vastustaja\obj,5
EndIf
Else
CurvePointObject(vastustaja\obj,obj_paukut)
MoveObject vastustaja\obj,2

ox=ObjectX(vastustaja\obj)
oy=ObjectX(vastustaja\obj)

If GetMap(2,ox,oy) Then
TurnObject vastustaja\obj,180
MoveObject vastustaja\obj,15
EndIf
If GetMap(3,ox,oy)=10 Then
vastustaja\ammukset=vastustaja\ammukset+1
If vastustaja\ammukset=vastustaja\ammukset>100 Then
vastustaja\patruunat=vastustaja\patruunat-1
vastustaja\ammukset=vastustaja\ammukset=0
EndIf
EndIf

Next vastustaja

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 5:40 pm
by Marcoder
M.R wrote:Miksiän tulee erroria?Luultavasti puuttuu Endiffiä tai vastaavaa:
Taitaa puuttua joo. Sisennä ihmeessä koodisi niin saat siitä edes itse selvää.

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 6:04 pm
by M.R
Marcoder wrote:
M.R wrote:Miksiän tulee erroria?Luultavasti puuttuu Endiffiä tai vastaavaa:
Taitaa puuttua joo. Sisennä ihmeessä koodisi niin saat siitä edes itse selvää.

Panin yhden Endiffin sinne niin erroria ei tule mutta tuskimpa oikeaan paikkaan.värkkäänsen oikeaan paikkaan kun peliä voi kokeilla.

Re: Tyhmät kysymykset

Posted: Fri Jan 11, 2008 6:46 pm
by Koodiapina
Sellaisen vinkin sanoisin, että kannattaa tehdä alun alkaen hyvin siistiä koodista, vaikka sen rakenteen alussa ymmärtäisikin täysin. Muutaman tuhannen rivin tai viikon tauon jälkeen voi tulla vastaan koodin uusiminen, kuten minulle on käynyt monta kertaa :oops:

Re: Tyhmät kysymykset

Posted: Sat Jan 12, 2008 10:01 am
by Marcoder
M.R wrote:Panin yhden Endiffin sinne niin erroria ei tule mutta tuskimpa oikeaan paikkaan.värkkäänsen oikeaan paikkaan kun peliä voi kokeilla.
Kuten jo aiemmin sanoin niin SISENNÄ koodisi niin näet heti mihin se endif pitää laittaa.

Re: Tyhmät kysymykset

Posted: Sat Jan 12, 2008 10:17 am
by BulletStorm
Alotin tässä aamulla mapin teon TileGenillä ja tein siinä ihan sellasen pienen pläntin missä kokeilin tilejä jotka on saatu valmiiksi (toisin sanoen puu, ruoho ja tie). Sitten kun latasin sen peliini ja kokeilin sitä, kävi näin:

Image

Image

Pelaaja siis jää tuon mapin taakse, vaikka ruoho ja tie on tehty "Back" layerilla. Mistäs vois mahdollisesti johtua? :|

E: Tämän viestin kirjoittamisen jälkeen on health bar muuttunut täysin erilaiseksi.

Re: Tyhmät kysymykset

Posted: Sat Jan 12, 2008 11:14 am
by otto90x
Lataa se kartta ennen sitä ukkoa, tai käytä komentoa objectorder <karttamuuttujan nimi>,-1.

Yleisestikin kehoitetaan lataamaan kartta ennen kaikkea muuta, mutta jos se tarvii ladata jossain muualla niin sitten täytyy vain koodarin nähdä vain vähän enemmän vaivaa.

Re: Tyhmät kysymykset

Posted: Sat Jan 12, 2008 11:22 am
by BulletStorm
otto90x wrote:Lataa se kartta ennen sitä ukkoa, tai käytä komentoa objectorder <karttamuuttujan nimi>,-1.

Yleisestikin kehoitetaan lataamaan kartta ennen kaikkea muuta, mutta jos se tarvii ladata jossain muualla niin sitten täytyy vain koodarin nähdä vain vähän enemmän vaivaa.
Ohoh! Joo no näitä kyssiä saattaa tulla viel jonkin verran, kun siitä on sen verran aikaa kun viimeksi oon koodannu :roll:

Joo no mä en katos ollenkaan muistanut tota, että uudemmat objektit piirretään vanhempien päälle, tai no... nii-in.

Re: Tyhmät kysymykset

Posted: Sat Jan 12, 2008 11:23 am
by jannepelaa
Onko pelaaja kuva vai objekti? Jos kuva, niin pelaaja pitää piirtää DrawGame:n jälkeen. Ja jos kuva, niin onko ObjectOrderilla kenttä laitettu eteen, tai pelaaja taakse?
EDIT: Muut ehtivät edelleni! :x

Re: Tyhmät kysymykset

Posted: Sun Jan 13, 2008 11:26 am
by cheeshelmet.jr
kuinka voin tarkistaa milloin jokin piste törmää kun se liikkuu nopeasti???? olen kokeillut monia tapoja mutta aina se seinään uppoaa :x

Re: Tyhmät kysymykset

Posted: Sun Jan 13, 2008 11:37 am
by koodaaja
cheeshelmet.jr wrote:kuinka voin tarkistaa milloin jokin piste törmää kun se liikkuu nopeasti???? olen kokeillut monia tapoja mutta aina se seinään uppoaa :x
Kjöh? Siis piste? Nyt tarkoitat varmaan luotia yms. objekti-tilemap-systeemillä toteutettuna? Liikuta luotia vähän kerrallaan, kas näin:

Code: Select all

For i = 0 To 15
    Moveobject luoti, 1
    'törmäyksentarkistus
Next i
Ja törmäyksentarkistukseen kannattaa käyttää GetMap()ia, tarkistat siis tyyliin

Code: Select all

If GetMap(2, ObjectX(luoti), ObjectY(luoti)), Then tuhoa_luoti
Sitä käyttäen voit siirtää luotia enemmänkin kerrallaan, vaikka viisi-kuusi pikseliä - ei enempää, muuten se oikaisee kulmista yms. Ja jos teet näin, muista ottaa setupcollision pois, se jää tarpeettomaksi. Ja vihuihin yms. esineisiin tarkistus kannattaa tehdä ObjectsOverlapilla.

Re: Tyhmät kysymykset

Posted: Sun Jan 13, 2008 11:47 am
by cheeshelmet.jr
koodaaja wrote:
cheeshelmet.jr wrote:kuinka voin tarkistaa milloin jokin piste törmää kun se liikkuu nopeasti???? olen kokeillut monia tapoja mutta aina se seinään uppoaa :x
Kjöh? Siis piste? Nyt tarkoitat varmaan luotia yms. objekti-tilemap-systeemillä toteutettuna? Liikuta luotia vähän kerrallaan, kas näin:

Code: Select all

For i = 0 To 15
    Moveobject luoti, 1
    'törmäyksentarkistus
Next i
Ja törmäyksentarkistukseen kannattaa käyttää GetMap()ia, tarkistat siis tyyliin

Code: Select all

If GetMap(2, ObjectX(luoti), ObjectY(luoti)), Then tuhoa_luoti
Sitä käyttäen voit siirtää luotia enemmänkin kerrallaan, vaikka viisi-kuusi pikseliä - ei enempää, muuten se oikaisee kulmista yms. Ja jos teet näin, muista ottaa setupcollision pois, se jää tarpeettomaksi. Ja vihuihin yms. esineisiin tarkistus kannattaa tehdä ObjectsOverlapilla.
Nyt ihan pistettä meinään. Olen kokeillut tuon getmapin mutta aina se uppoaa sinne seinään noin kolmanneksen!!!

Re: Tyhmät kysymykset

Posted: Sun Jan 13, 2008 12:00 pm
by koodaaja
Muistahan toki käyttää maailmankoordinaatteja, jos piirrät sen ihan Dotilla (ennen dottia DrawToWorld). Ja silloinhan y kasvaa ylös mentäessä.