ongelma roolipelia tehdessä

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 4:46 pm
Location: Suomi

ongelma roolipelia tehdessä

Post by Frozen »

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.
Diablo 2 Inventaario
Diablo 2 Inventaario
Diablo inventory.jpg (201.63 KiB) Viewed 10983 times
Image
Työn alla:
Jotakin epäjulkaistua
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: ongelma roolipelia tehdessä

Post by Awaclus »

No teepä sinä sitten sillä tavalla. Mikä oli ongelmasi?
User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 4:46 pm
Location: Suomi

Re: ongelma roolipelia tehdessä

Post by Frozen »

no en oo enää ittekkää varma mitä mää aion tehdä nii mää teenki jonku yksinkertaisemman inventoryn.
Image
Työn alla:
Jotakin epäjulkaistua
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Tavaraluettelo ruudukon mukaan

Post by otto90x »

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.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: ongelma roolipelia tehdessä

Post by Sly_Jack0 »

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.
User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 4:46 pm
Location: Suomi

Re: ongelma roolipelia tehdessä

Post by Frozen »

Joo kiitti näistä. :)
Image
Työn alla:
Jotakin epäjulkaistua
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: ongelma roolipelia tehdessä

Post by Wingman »

jaahas wrote:miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
saat tuommoisen pelin ostamalla Diablo kakkosen, josta kyseinen kuvakaappaus on. Hahmoja ja taustoja saat tekemällä.

Edit: anteeksi offtopic
- - - -
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

Ellu wrote:
jaahas wrote:miten saan noin siistejä hahmoja tänne ja taustoja? ja miten teen tommosen 3d tyyppisen pelin?
saat tuommoisen pelin ostamalla Diablo kakkosen, josta kyseinen kuvakaappaus on. Hahmoja ja taustoja saat tekemällä.

Edit: anteeksi offtopic
ainiin anteeksi offtopic mut miten teen noin hienoja kuvia?
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: ongelma roolipelia tehdessä

Post by temu92 »

Tekemällä. Miten muuten niitä muka voi tehdä? Eikä sitä nyt oikein paremmin voi ilmaistakaan. Ainoastaan harjoitus tekee paremmaks.
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

ok, mut kaunko on kestäny tehä toi peli?
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: ongelma roolipelia tehdessä

Post by temu92 »

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.
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

temu92 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.
kestää kauan rikastua näin :D
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: ongelma roolipelia tehdessä

Post by temu92 »

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.
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

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 montako miljoonaa työntekijää joille maksaa osuutensa?
ja ota huomioon monta vuotta on harjotellu koodaamaan :D
vms100
Member
Posts: 81
Joined: Tue Aug 28, 2007 4:47 pm

Re: ongelma roolipelia tehdessä

Post by vms100 »

jaahas wrote:
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 montako miljoonaa työntekijää joille maksaa osuutensa?
ja ota huomioon monta vuotta on harjotellu koodaamaan :D
Ei harjoitellut vaan koulutettu.
jaahas
Advanced Member
Posts: 307
Joined: Fri Feb 05, 2010 11:36 pm
Location: Tornio

Re: ongelma roolipelia tehdessä

Post by jaahas »

vms100 wrote:
jaahas wrote:
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 montako miljoonaa työntekijää joille maksaa osuutensa?
ja ota huomioon monta vuotta on harjotellu koodaamaan :D
Ei harjoitellut vaan koulutettu.
no monta vuotta koulutusta?
mikeful
Moderator
Moderator
Posts: 523
Joined: Mon Aug 27, 2007 8:36 pm
Location: Vaasa, Finalnd
Contact:

Re: ongelma roolipelia tehdessä

Post by mikeful »

Alkaa mennä offtopikiksi. Pysytäänpä aiheessa ettei tarvi mätkiä rangaistuksia.
Pelejä: Pelasta puhe, Grinder
Muuta: Blogi, Twitter
Post Reply