Mitä tarkoitat, "lähellä"? Camerafollowia vai kenties sitä, että hahmo olisi suurempi näytöllä?koppanen wrote:ööö nyt meni sormi suuhun... miteen mää muutan sen et kuinka lähelt se kamera sitä ukkoo seuraa..?
Tyhmät kysymykset (I/2009)
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Re: Tyhmät kysymykset
Tarkennan kysymystäni. Siis: Miten saa objectsoverlapin ja tälläiset toimimaan typeillä tehtyjen vihujen kanssa? Jos laitan ObjectsOverlap(vihu\obj,jack,3) MAVaa.
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Poistatko vihu\obj:n törmäyksen sattuessa? Silloin sinun pitää muistaa, ettei deletoitua objektia voi käytttää enää mitenkään. Ja onhan sinulla jack -niminen objekti? Kannattanee lähettää vähän enemmän koodia kuin yksi funkkarikutsu parametreineen, kyllähän Moveobject ukko, 1:kin mavaa, jos ukkoa ei ole. Vähän sitä koodia siis, mieluiten vaikka vihujen läpikäyntisilmukka.Kerosiinipelle wrote:Tarkennan kysymystäni. Siis: Miten saa objectsoverlapin ja tälläiset toimimaan typeillä tehtyjen vihujen kanssa? Jos laitan ObjectsOverlap(vihu\obj,jack,3) MAVaa.
Re: Tyhmät kysymykset
No, tässä on koodi.
Ja tässä on ongelma: Mavaa, jos koodiin merkittyyn kohtaan laittaa iffiä.
Ja tässä on ongelma: Mavaa, jos koodiin merkittyyn kohtaan laittaa iffiä.
Code: Select all
SCREEN 1024,768,0,0
SetWindow "Peli", 3, "Are you sure you want to quit?"
Goto Valikko
Valikko:
Goto Level1
Level1:
Type AMMUS
Field obj
End Type
Type VIHUT 'vihut
Field enemy1
End Type
FrameLimit 30 'rajoita nopeutta
DrawToWorld ON 'mahdollistaa piirtämisen maailmaan
'lataa kartta
kartta = LoadMap("media\cdm2.til","media\tileset.bmp")
ObjectPickable kartta, ON 'aseta se poimittavaksi
PlayObject kartta,0,0,1 'animoi kartta
'lataa pelaaja
jack = LoadObject ("media\guy.bmp",72)
ObjectPickable jack, 2 'aseta se poimittavaksi
pati=LoadObject("media\bullet.bmp")
ShowObject pati,OFF
Kohde = LoadObject ("media\car2.bmp")
PositionObject kohde,-53,0
enemy=LoadObject("media\guy.bmp",72)
PositionObject enemy, 600,200
ShowObject enemy,OFF
'----------------------
SetupCollision jack, kartta, 1, 4, 2
SetupCollision enemy, kartta, 1, 4, 2
Repeat
'---------------------------
'Ukon ohjaus
If KeyDown(cbKeyA) Then TurnObject jack,5
If KeyDown(cbKeyD) Then TurnObject jack,-5
If KeyDown(cbKeyW) Then MoveObject jack,2
If KeyDown(cbKeyS) Then MoveObject jack,-1.6
If KeyDown(cbKeyQ) Then MoveObject jack,0,-2
If KeyDown(cbKeyE) Then MoveObject jack,0,2
UpdateGame
CloneCameraPosition jack
UpdateGame
DrawGame
DrawToWorld ON
'--------------------------
If KeyDown(cbKeyF) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'luo uusi ammus
luoti\obj=CloneObject(pati) 'tee klooni
'asetetaan pati samaan paikkaan
CloneObjectPosition luoti\obj,jack
'käännetään pati samaan suuntaan
CloneObjectOrientation luoti\obj,jack
reload=0 'aseen lataus
EndIf
'päivitä aseen lataaminen
If reload>0 Then reload=reload-1
'Päivitä kaikki ammukset
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If GetMap(2, ObjectX(luoti\obj), ObjectY(luoti\obj)) <> 0 Then
DeleteObject luoti\obj
Delete luoti
EndIf
'TÄHÄN LUOTEIHIN LIITTYVÄ IF-HOMMA NIIN MAVAA,
'esimerkiksi (poista heittomerkit)
'If ObjectsOverlap (luoti\obj,kohde,3) Then
'DeleteObject luoti\obj
'Delete luoti
'EndIf
Next luoti
'----------------------
Vihollinen.VIHUT = New(VIHUT)
Vihollinen\enemy1=CloneObject(enemy)
PositionObject Vihollinen\enemy1,100,623
DrawScreen 'piirrä näyttö
Forever
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Tyhmät kysymykset
Ongelma on se että poistat ensin luodin ja sitten vielä katsot onko se poistettu luoti kohteen päällä, tämän takia se antaa virheilmoituksen. Kokeile seuraavaa:Kerosiinipelle wrote:No, tässä on koodi.
Ja tässä on ongelma: Mavaa, jos koodiin merkittyyn kohtaan laittaa iffiä.
Code: Select all
If GetMap(2, ObjectX(luoti\obj), ObjectY(luoti\obj)) <> 0 or ObjectsOverlap (luoti\obj,kohde,3) Then
DeleteObject luoti\obj
Delete luoti
EndIf
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Tyhmät kysymykset
Okei... mutta miten tuohon lisätään kohteen healthinmenetys niin että se ei menetä enua jos luoti osuu seinään?
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Tyhmät kysymykset
No esimerkiksi näin:Kerosiinipelle wrote:Okei... mutta miten tuohon lisätään kohteen healthinmenetys niin että se ei menetä enua jos luoti osuu seinään?
Code: Select all
if *törmäys seinään* then
*poista luoti*
elseif *törmäys ukkoon* then
*poista luoti*
*vähennä hp*
endif
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
-
- Member
- Posts: 60
- Joined: Sun Sep 09, 2007 8:46 pm
Re: Tyhmät kysymykset
Tämä kysymys ei kyllä mitenkään koske koodissa tapamaani virhettä tai sellasta. Eli mun rpg on muuten aika pitkällä , mutta grafiikat no ne on vähä sellaset "Onko toi lehmä vai kana" ?. Eli mistäköhän sais ilmaseks grafiikkaa ? Enkä viitti mitää grafiikko ottaa mun projektiin kun en oo yhtää varma tuleeko siitä koskaa valmis. Eli tietääks kukaa mistä saisi ilmaseks ylhäältäpäin kuvattuja tilesettejä kuvia ihmisiä petoja jne.
Re: Tyhmät kysymykset
Miten saisin tekstipeliini "skriptin", jolla saa arvottua että: Meneekö ruutuun1 vai 2?
Or ei ainakaan auta Elsellä olen kokeillut myös, mutta aina se menee ruutu1:een.
Helpejä olen yrittänyt katsoa, mutta en ole tällaiseen ongelmaan ratkaisua löytänyt tai sitten olen vain niin noob etten ole löytänyt.
Jos tuo koodi on huonoa (niinkuin se varmaan onkin) voi toki neuvoa parempi tapa miten kannattaa tehdä.
Or ei ainakaan auta Elsellä olen kokeillut myös, mutta aina se menee ruutu1:een.
Helpejä olen yrittänyt katsoa, mutta en ole tällaiseen ongelmaan ratkaisua löytänyt tai sitten olen vain niin noob etten ole löytänyt.
Jos tuo koodi on huonoa (niinkuin se varmaan onkin) voi toki neuvoa parempi tapa miten kannattaa tehdä.
Code: Select all
alku:
ClearKeys
Repeat
Text 10,10, "Tervetuloa pelaamaan tekstipeliä"
VerticalText 375,50, "Valikko"
Text 10,50, "1.Mene kauppaan"
Text 10,60, "2.Mene kotiin"
Text 10,70, "3.Arvonta"
If KeyHit (cbkey1) Then Goto ruutu1
If KeyHit (cbkey2) Then Goto ruutu2
If KeyHit (cbkey3) Then Goto ruutu1 Or ruutu2
DrawScreen
Until EscapeKey()
ruutu1:
ClearKeys
Repeat
Text 10,10, "Tulit kauppaan"
DrawScreen
Until EscapeKey()
ruutu2:
ClearKeys
Repeat
Color cbYellow
Text 10,10, "Tulit kotiin"
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset
Käyttämällä Rand()-funktiota, joka palauttaa sattumanvaraisen luvun.
Tai tiiviimmin:
Code: Select all
randomi = rand(0,1)
If keyhit(cbkeyspace) and randomi = 1 then goto ruutu3
Code: Select all
If KeyHit(cbkeyspace) and rand(1) then goto ruudu3
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Re: Tyhmät kysymykset
Eli yritän tässä väsätä jonkinmoista hahmonluontisysteemiä kokeilu- ja harjoittelumielessä. Ongelmana on vain se, että nykyisessä muodossaan systeemi ei "tallenna" hahmo-tyypin fieldejä vaan unohtaa ne aina seuraavaan vaiheeseen siirryttäessä. Apua kaipaan ongelman ratkaisussa ja ehdotukset mahdollisesta yksinkertaisemmasta systeemistä otan mielelläni vastaan.
Code: Select all
SCREEN 640,480
FrameLimit 40
courier=LoadFont("courier new",40) 'ladataan fontit
courier1=LoadFont("courier new",16)
courier2=LoadFont("courier new",24)
Type hahmo 'määritetään tyypit
Field gender$
Field race$
Field weapons$
Field magic$
Field name$
End Type
Global moodi 'määritetään muuttujat globaaleiksi
Global hahmomoodi
Global valinta
Global hahmo
Repeat 'pääsilmukka alkaa
//HAHMONLUONTI:
PELAAJA_yleis.hahmo = New(hahmo)
moodi=10
If moodi=10 And hahmomoodi=0 Then 'SUKUPUOLI
Color 96,127,13
Box 80,60,480,360,1
Color 192,0,0
Box 79,59,482,362,0
Box 430,70,120,340,0
SetFont courier2
hl_loota(90,70,"Gender","-choose the gender of thine character-",1,0)
hl_loota1(90,110,"Race")
hl_loota1(90,150,"Abilities")
hl_loota1(90,190,"Weapons")
hl_loota1(90,230,"Magic")
hl_loota1(90,270,"Name")
ElseIf hahmomoodi=1 Then 'VALINTA
Color 96,127,13
Box 160,120,320,240,1
Color 192,0,0
Box 158,118,324,244,0
SetFont courier2
hl_loota(200,150,"Male","-continue-",2,1)
hl_loota(330,150,"Female","-continue-",2,2)
If valinta=1 Then
PELAAJA_yleis\gender$ = "Male"
ElseIf valinta=2 Then
PELAAJA_yleis\gender$ = "Female"
EndIf
ElseIf hahmomoodi=2 Then 'ROTU
Color 96,127,13
Box 80,60,480,360,1
Color cbwhite
SetFont courier1
Text 433,73,"Gender: "+ PELAAJA_yleis\gender$
Color 192,0,0
Box 79,59,482,362,0
Box 430,70,120,340,0
SetFont courier2
hl_loota1(90,70,"Gender")
hl_loota(90,110,"Race","-choose the race of thine character-",3,0)
hl_loota1(90,150,"Abilities")
hl_loota1(90,190,"Weapons")
hl_loota1(90,230,"Magic")
hl_loota1(90,270,"Name")
ElseIf hahmomoodi=3 Then 'VALINTA
Color 96,127,13
Box 160,120,320,240,1
Color 192,0,0
Box 158,118,324,244,0
SetFont courier2
hl_loota(200,150,"Human","-continue-",4,3)
hl_loota(330,150,"Elf","-continue-",4,4)
hl_loota(200,190,"Dwarf","-continue-",4,5)
hl_loota(330,190,"Halfling","-continue-",4,6)
hl_loota(265,230,"Half-Orc","-continue-",4,7)
If valinta=3 Then
PELAAJA_yleis\race$="Human"
ElseIf valinta=4 Then
PELAAJA_yleis\race$="Elf"
ElseIf valinta=5 Then
PELAAJA_yleis\race$="Dwarf"
ElseIf valinta=6 Then
PELAAJA_yleis\race$="Halfling"
ElseIf valinta=7 Then
PELAAJA_yleis\race$="Half-Orc"
EndIf
ElseIf hahmomoodi=4 Then 'OMINAISUUDET
Color 96,127,13
Box 80,60,480,360,1
Color cbwhite
SetFont courier1
Text 433,73,"Gender: "+ PELAAJA_yleis\gender$ +" "
Text 433,88,"Race: "+ PELAAJA_yleis\race$ +" "
Color 192,0,0
Box 79,59,482,362,0
Box 430,70,120,340,0
SetFont courier2
hl_loota1(90,70,"Gender")
hl_loota1(90,110,"Race")
hl_loota(90,150,"Abilities","-choose the abilities of thine character-",5,0)
hl_loota1(90,190,"Weapons")
hl_loota1(90,230,"Magic")
hl_loota1(90,270,"Name")
EndIf
DrawScreen 'piirretään kaikki
Forever 'pyöritetään ikuisesti
'---------------------
//hahmonluontilootafunktio AUKI
Function hl_loota(x,y,txt$,info$,z,a)
Color cbred
Box x,y,120,35,0
Color cbwhite
CenterText x+60,y+6,txt$
Color cbyellow
If MouseX()>=x And MouseX()<=x+120 And MouseY()>=y And MouseY()<=y+35 Then
Box x+2,y+2,114,31,0
CenterText 320,440,info$
If MouseHit(1) Then
valinta=a
hahmomoodi=z
EndIf
EndIf
End Function
//hahmonluontilootafunktio VARATTU
Function hl_loota1(x,y,txt$)
Color cbsilver
Box x,y,120,35,1
Color cbdark
CenterText x+60,y+6,txt$
Color cbred
If MouseX()>=x And MouseX()<=x+120 And MouseY()>=y And MouseY()<=y+35 Then
Box x+2,y+2,114,31,0
EndIf
End Function
Re: Tyhmät kysymykset
Tuossa on vikana se, että lisäät typeen pääsilmukan sisällä aina uuden jäsenen (ja se näyttää aina uusimman jäsenen tietoja sivulla). Siirrä tuo silmukan ulkopuolelle tai tee viritelmä jolla uusi hahmo luodaan vain kun tarvitaan.
Code: Select all
PELAAJA_yleis.hahmo = New(hahmo)
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
Näimpä! Kiitän!TheFish wrote:Tuossa on vikana se, että lisäät typeen pääsilmukan sisällä aina uuden jäsenen (ja se näyttää aina uusimman jäsenen tietoja sivulla).Siirrä tuo silmukan ulkopuolelle tai tee viritelmä jolla uusi hahmo luodaan vain kun tarvitaan.Code: Select all
PELAAJA_yleis.hahmo = New(hahmo)
Re: Tyhmät kysymykset
Miten saan ladattu peliini Jonkun fontin, ilman että sitä on asennettu mihinkään Fonts kansioon. Tai onkos se edes mahdollista.
Re: Tyhmät kysymykset
Ei onnistu. Coolbasic osaa käyttää vain windowsin fonttikansiossa olevia fontteja.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Re: Tyhmät kysymykset
Kiitti pitää kai järkätä joku install homma
Re: Tyhmät kysymykset
siis tarkotan et se ukkoo katotais "ylempää" niin et kartaa näkyis enemmän... ja tieety se ukkoki ois pienenpi.. mahollist?koodaaja wrote:Mitä tarkoitat, "lähellä"? Camerafollowia vai kenties sitä, että hahmo olisi suurempi näytöllä?koppanen wrote:ööö nyt meni sormi suuhun... miteen mää muutan sen et kuinka lähelt se kamera sitä ukkoo seuraa..?
no mut onks sit mahollist muuttaa tilen kokoa lennos..? eli jos normaalist on 32*32 nii et muuttais sen vaik 16*16 ?
EDIT: joo unohtakaa xD too complicated to me xD
Last edited by koppanen on Wed Sep 12, 2007 6:23 pm, edited 2 times in total.
Re: Tyhmät kysymykset
Ei ole, tälläistä kartan skaalausta ei ole tällä hetkellä tuettuna CoolBasicissa.
Ellet sitten koodaa karttamoottoriasi itse
Ellet sitten koodaa karttamoottoriasi itse
Re: Tyhmät kysymykset
On. Peliä ladatessa teet tilesetistäsi pienennoksen (tai suurennoksen) ResizeImage-komennolla. Tämän jälkeen lataat taulukkoon kaikkien kartan kerroksien tiedot. Tämän jälkeen sinulla on kaikki avaimet miltei reaaliaikaiseen tilekartan "zoomaukseen". Kun haluat muuttaa tilen kokoa, luot uuden tyhjän tilekartan, johon liität aiemmin pienennetyn tilesetin ja datan saat taulukosta. Tämä ei vie paljoa suoritusaikaa. Jos haluat palata takaisin suurempaan tilekokoon, yksinkertaisesti luot taas uuden tyhjän tilekartan ja teet saman homman, mutta käytät normaalikokoista tilesettiä. Tietysti muistat poistaa joka välissä vanhan tilekartan muistia viemästä.koppanen wrote:no mut onks sit mahollist muuttaa tilen kokoa lennos..? eli jos normaalist on 32*32 nii et muuttais sen vaik 16*16 ?
Tällä tavoin on toteutettu myös A Stigmatorin zoomaustoiminto.