ongelma roolipelia tehdessä
ongelma roolipelia tehdessä
Olen tässä jonkin aikaa tehnut diablo tyylistä roolipeliä. Yritän tehdä siihen myös diablo tyylisen inventoryn. Eli repussa on suurinpiirtein 12x4 ruudukko. Jokainen esine minkä poimit vie tietyn verran tilaa, kuten potionit vievät vähän tilaa, joten ne vievät tilaa vain yhden ruudun. Kun taas joku kahden käden miekka vie tilaa 1x3 ruutua.
Selventääkseni otan tähän vielä kuvan.
Selventääkseni otan tähän vielä kuvan.
Re: ongelma roolipelia tehdessä
No teepä sinä sitten sillä tavalla. Mikä oli ongelmasi?
Re: ongelma roolipelia tehdessä
no en oo enää ittekkää varma mitä mää aion tehdä nii mää teenki jonku yksinkertaisemman inventoryn.
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Tavaraluettelo ruudukon mukaan
Tässäpä jonkilainen esimerkki tuontapaisesta tavaraluettelosta.
Code: Select all
SCREEN 800,600
Global RuudukkoLeveys, RuudukkoKorkeus
RuudukkoLeveys = 10
RuudukkoKorkeus = 4
Type poimittutavara
Field nimi$
Field ruudukkox
Field ruudukkoy
Field leveys_ruutuina
Field korkeus_ruutuina
Field siirretään
End Type
LisääTavaraluetteloon("keihäs",1,4)
LisääTavaraluetteloon("puteli",1,1)
LisääTavaraluetteloon("panssari",2,2)
LisääTavaraluetteloon("iso kivi",2,2)
LisääTavaraluetteloon("kengät",3,2)
Repeat
Tavaraluettelo(20,20)
DrawScreen
Forever
Function LisääTavaraluetteloon(nimi$,leveys_ruutuina,korkeus_ruutuina)
For x=0 To RuudukkoLeveys-1
For y=0 To RuudukkoKorkeus-1
EpicFail = 0
For p.poimittutavara = Each poimittutavara
If BoxOverlap(x,y,leveys_ruutuina,korkeus_ruutuina,p\ruudukkox,p\ruudukkoy,p\leveys_ruutuina,p\korkeus_ruutuina) Or x+leveys_ruutuina>RuudukkoLeveys Or y+korkeus_ruutuina>Ruudukkokorkeus Then EpicFail = 1 :Exit
Next p
If Not EpicFail Then
p.poimittutavara = New(poimittutavara)
p\nimi = nimi$
p\ruudukkox = x
p\ruudukkoy = y
p\leveys_ruutuina = leveys_ruutuina
p\korkeus_ruutuina = korkeus_ruutuina
Return ConvertToInteger(p)
EndIf
Next y
Next x
End Function
Function Tavaraluettelo(x,y,ruutukoko=32)
valittunimi$=""
Box x,y,RuudukkoLeveys*ruutukoko, RuudukkoKorkeus*ruutukoko,0
For p.poimittutavara = Each poimittutavara
xx = x+p\ruudukkox*ruutukoko
yy = y+p\ruudukkoy*ruutukoko
w = p\leveys_ruutuina*ruutukoko
h = p\korkeus_ruutuina*ruutukoko
If p\siirretään=0 Then
If BoxOverlap(MouseX(),MouseY(),1,1,xx,yy,w,h) Then
valittunimi$ = p\nimi+" ("+p\ruudukkox+","+p\ruudukkoy+")"
If MouseDown(1) And p\siirretään=0 Then
EpicFAIL = 0
For pp.poimittutavara = Each poimittutavara
If pp\siirretään=1 Then EpicFAIL = 1 : Exit
Next pp
If Not EpicFAIL Then p\siirretään=1 : pointer = ConvertToInteger(p)
EndIf
EndIf
Color 0,255,0
Box xx,yy,w,h,1
Color 255,255,255
Box xx,yy,w,h,0
EndIf
Next p
For p.poimittutavara = Each poimittutavara
If p\siirretään=1 Then
w = p\leveys_ruutuina*ruutukoko
h = p\korkeus_ruutuina*ruutukoko
mx = min(Max(0,(MouseX()-x)/ruutukoko),RuudukkoLeveys-p\leveys_ruutuina)
my = Min(Max(0,(MouseY()-y)/ruutukoko),RuudukkoKorkeus-p\korkeus_ruutuina)
If MouseUp(1) Then
For pp.poimittutavara = Each poimittutavara
If pp<>p Then
If BoxOverlap(mx,my,p\leveys_ruutuina,p\korkeus_ruutuina,pp\ruudukkox,pp\ruudukkoy,pp\leveys_ruutuina,pp\korkeus_ruutuina) Or mx+p\leveys_ruutuina>RuudukkoLeveys Or my+p\korkeus_ruutuina>Ruudukkokorkeus Then p\siirretään=0 : Return 0
EndIf
Next pp
p\ruudukkox = mx
p\ruudukkoy = my
p\siirretään=0
ElseIf MouseDown(1) Then
EpicFail=0
' If MouseMoveX() Or MouseMoveY() Then
For pp.poimittutavara = Each poimittutavara
If pp<>p Then
If BoxOverlap(mx,my,p\leveys_ruutuina,p\korkeus_ruutuina,pp\ruudukkox,pp\ruudukkoy,pp\leveys_ruutuina,pp\korkeus_ruutuina) Then EpicFail=1 :Exit
EndIf
Next pp
' EndIf
If epicfail Then Color 255,0,0 Else Color 0,0,255
Box x+mx*ruutukoko,y+my*ruutukoko,w,h,1
Color 255,255,255
Box x+mx*ruutukoko,y+my*ruutukoko,w,h,0
EndIf
EndIf
Next p
If valittunimi$<>"" Then
tw = TextWidth(valittunimi$)
th = TextHeight(valittunimi$)
Color 0,0,0
Box MouseX(),MouseY()-th-5,tw+5,th+5,1
Color 255,255,255
Box MouseX(),MouseY()-th-5,tw+5,th+5,0
Text MouseX()+2,MouseY()-2-th,valittunimi$
EndIf
End Function
Last edited by otto90x on Sat Jan 02, 2010 2:58 pm, edited 2 times in total.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: ongelma roolipelia tehdessä
viewtopic.php?f=10&t=1717&p=29610&hilit ... ory#p29610
Tossa on minun jonkin aikaa sitten tekemä inventoryesimerkki. Tohon sitten vaan itte koodaat jonkun hienon grafiisen jutun, millä noi tavarat näytetään.
Tossa on minun jonkin aikaa sitten tekemä inventoryesimerkki. Tohon sitten vaan itte koodaat jonkun hienon grafiisen jutun, millä noi tavarat näytetään.
Re: ongelma roolipelia tehdessä
miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
-
- Devoted Member
- Posts: 594
- Joined: Tue Sep 30, 2008 4:30 pm
- Location: Ruudun toisella puolella
Re: ongelma roolipelia tehdessä
saat tuommoisen pelin ostamalla Diablo kakkosen, josta kyseinen kuvakaappaus on. Hahmoja ja taustoja saat tekemällä.jaahas wrote:miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
Edit: anteeksi offtopic
Re: ongelma roolipelia tehdessä
ainiin anteeksi offtopic mut miten teen noin hienoja kuvia?Ellu wrote:saat tuommoisen pelin ostamalla Diablo kakkosen, josta kyseinen kuvakaappaus on. Hahmoja ja taustoja saat tekemällä.jaahas wrote:miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
Edit: anteeksi offtopic
Re: ongelma roolipelia tehdessä
Tekemällä. Miten muuten niitä muka voi tehdä? Eikä sitä nyt oikein paremmin voi ilmaistakaan. Ainoastaan harjoitus tekee paremmaks.
Re: ongelma roolipelia tehdessä
ok, mut kaunko on kestäny tehä toi peli?
Re: ongelma roolipelia tehdessä
Ei ole kovinkaan harvinaista että kaupallisten pelien tekoon menee vähintään vuosi kaikkinensa ja niitä on siltikin tekemässä usean kymmenen hengen tiimi. Blizzardin tapauksessa (Diablo II on Blizzardin peli) he haluavat saada kaiken ulos niin hyvänä kuin mahdollista. Diablo III eli kakkosen jatko-osa on ollut tekeillä jo ainakin kaksi vuotta.
Re: ongelma roolipelia tehdessä
kestää kauan rikastua näintemu92 wrote:Ei ole kovinkaan harvinaista että kaupallisten pelien tekoon menee vähintään vuosi kaikkinensa ja niitä on siltikin tekemässä usean kymmenen hengen tiimi. Blizzardin tapauksessa (Diablo II on Blizzardin peli) he haluavat saada kaiken ulos niin hyvänä kuin mahdollista. Diablo III eli kakkosen jatko-osa on ollut tekeillä jo ainakin kaksi vuotta.
Re: ongelma roolipelia tehdessä
Noh Blizzardi Wowiakin teki ainakin 2 tai 3 vuotta (sitä alkuperäistä, lisäosien kanssa ~8-9). Tällä hetkellä maailman suosituin MMORPG ja pelkistä kuukausimaksuista tulee reilu 132000000 euroa kuukaudessa.
Re: ongelma roolipelia tehdessä
ja montako miljoonaa työntekijää joille maksaa osuutensa?temu92 wrote:Noh Blizzardi Wowiakin teki ainakin 2 tai 3 vuotta (sitä alkuperäistä, lisäosien kanssa ~8-9). Tällä hetkellä maailman suosituin MMORPG ja pelkistä kuukausimaksuista tulee reilu 132000000 euroa kuukaudessa.
ja ota huomioon monta vuotta on harjotellu koodaamaan
Re: ongelma roolipelia tehdessä
Ei harjoitellut vaan koulutettu.jaahas wrote:ja montako miljoonaa työntekijää joille maksaa osuutensa?temu92 wrote:Noh Blizzardi Wowiakin teki ainakin 2 tai 3 vuotta (sitä alkuperäistä, lisäosien kanssa ~8-9). Tällä hetkellä maailman suosituin MMORPG ja pelkistä kuukausimaksuista tulee reilu 132000000 euroa kuukaudessa.
ja ota huomioon monta vuotta on harjotellu koodaamaan
Re: ongelma roolipelia tehdessä
no monta vuotta koulutusta?vms100 wrote:Ei harjoitellut vaan koulutettu.jaahas wrote:ja montako miljoonaa työntekijää joille maksaa osuutensa?temu92 wrote:Noh Blizzardi Wowiakin teki ainakin 2 tai 3 vuotta (sitä alkuperäistä, lisäosien kanssa ~8-9). Tällä hetkellä maailman suosituin MMORPG ja pelkistä kuukausimaksuista tulee reilu 132000000 euroa kuukaudessa.
ja ota huomioon monta vuotta on harjotellu koodaamaan
Re: ongelma roolipelia tehdessä
Alkaa mennä offtopikiksi. Pysytäänpä aiheessa ettei tarvi mätkiä rangaistuksia.