Tyhmät kysymykset (I/2010)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2010)

Post by naputtelija »

legend wrote:
naputtelija wrote:Onko cb:ssä rajaa muuttujien käytölle? Entä hidastaako ylenmääräinen muuttujien käyttö sovellusta? Esim:

Code: Select all

x=10
y=5
width=5
length=10
height=10
'tässä sitten rakennetaan talo parametrien mukaan...
'koodi tähän
'---------------------------------------------------------------
Ja jotain tollaista siis noin 20-35 kertaa.
Ei oikein mutta se kuluttaa rammia minimaalisesti. Jos haluat pienentää rammin kulutusta käytäppä dim...
Ok. Käänsin sen nyt dimmille. Katso, onko tämä nyt oikein kirjoitettu:

Code: Select all

Dim x# (50)
Dim y# (50)
Dim w# (50)
Dim l# (50)
Dim h# (50)
For i=1 To 50
    If i=1 Or i=6 Or i=8 Or i=10 Then w(i)=10
    If i=1 Or i=2 Or i=6 Or i=8 Or i=10 Then l(i)=10
    If i=2 Or i=5 Or i=6 Or i==8 Then h(i)=10
    If i=2 Or i=5 Then w(i)=20
Next i

x1=85
y1=70
h1=5

x2=50
y2=90

x3=91
y3=95
w3=5
l3=5
h3=20

x4=21
y4=14
w4=6
l4=6
h4=3

x5=79
y5=2
l5=20

x6=2
y6=80

x7=4
y7=95
w7=1
l7=1
h7=1

x8=2
y8=66

x10=40
y10=40
h10=30
h10=30
Siinä siis on kaikki pelini muuttujat tähän asti.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2010)

Post by naputtelija »

Oho... nyt kun käännän pelini (siis en vain tuon include-filun) niin error in file - cbFormElements.cb: syntax error at line 12, cannot understand the statement. Sisällytin siis sdk-tiedoston peliin, että saisin windows-näppäimet.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2010)

Post by naputtelija »

Juu, dimmi sekoilee lisäkirjaston kanssa, vaihdan takas.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

Kyseessä lienee saman muuttujan käyttö, taulukko tyyliin "dim x(50) as float" ei ole kovin hieno ajatus, koska muuttujaa x käyttänee usea kirjaston funktio :) Ja taulukon jäsenhän asetetaan esimerkiksi x(1)=3, ei x1=3.
User avatar
Akuji
Member
Posts: 60
Joined: Fri Oct 08, 2010 5:59 pm
Location: Turku

Re: Tyhmät kysymykset (I/2010)

Post by Akuji »

Miten ylhäältäpäin kuvatussa räiskintäpelissä pystyy muuttamaan objektien "painoa" siten, että vihollinen pystyy työntämään pelaajaa, eikä toisin päin, kuten minulla käy? Eli vihollinen olisi ns. "painavampi", kuin pelaaja.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 »

Jätä asettamatta törmäystunnistus vastustajan ja pelaajan välillä.

Code: Select all

// Vain tämä \/
SetupCollision ukko,vastustaja,1,1,0
// Ei tätä: SetupCollision vastustaja,ukko,1,1,0
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka »

Tein ihan testatakseni taitojani ohjelmaa, jossa laitetaan laatikkoja kentälle. Kuten heikoista taidoistani saattaa olettaa en taaskaan onnistunut. :lol: Tarkoitus siis on, että kun painaa hiiren vasenta nappia jää kentälle laatikko siihen kohti. Mikä tekeleessäni on väärin ja miten voin sen korjata?

Code: Select all

Type LAATIKKO
    Field x
    Field y
EndType 

x = 0
y = 0

Repeat

    For l.LAATIKKO = Each LAATIKKO
            
        If MouseHit(1) Then 
            l.LAATIKKO = New(LAATIKKO)
            l\x = x
            l\y = y
        EndIf 
                
        Box l\x,l\y,30,30,0
            
    Next l

    If MouseX() > x Then x + 30
    If MouseX() < x Then x - 30            
    If MouseY() > y Then y + 30
    If MouseY() < y Then y - 30
    
    Box x,y,30,30,0

  DrawScreen
Forever 
Kiitoksia legendille avusta!
Last edited by Ilkka on Fri Nov 19, 2010 8:56 pm, edited 2 times in total.
Image
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: Tyhmät kysymykset (I/2010)

Post by legend »

Ilkka wrote:Tein ihan testatakseni taitojani ohjelmaa, jossa laitetaan laatikkoja kentälle. Kuten heikoista taidoistani saattaa olettaa en taaskaan onnistunut. :lol: Tarkoitus siis on, että kun painaa hiiren vasenta nappia jää kentälle laatikko siihen kohti. Mikä tekeleessäni on väärin ja miten voin sen korjata?

Code: Select all

Type LAATIKKO
    Field x
    Field y
EndType 

x = 0
y = 0

Repeat

    For l.LAATIKKO = Each LAATIKKO
            
        If MouseHit(1) Then 
            l.LAATIKKO = New(LAATIKKO)
            l\x = x
            l\y = y
        EndIf 
                
        Box l\x,l\y,30,30,0
            
    Next l

    If MouseX() > x Then x + 30
    If MouseX() < x Then x - 30            
    If MouseY() > y Then y + 30
    If MouseY() < y Then y - 30
    
    Box x,y,30,30,0

  DrawScreen
Forever 
Tajuat varmaan kohta... Silmukkaa ei käydä, koska siinä ei ole mitään...

Code: Select all

Type LAATIKKO
    Field x
    Field y
EndType 

x = 0
y = 0

Repeat

                
        If MouseHit(1) Then 
            l.LAATIKKO = New(LAATIKKO)
            l\x = x
            l\y = y
        EndIf 

    For l.LAATIKKO = Each LAATIKKO
                
        Box l\x,l\y,30,30,0
            
    Next l

    If MouseX() > x Then x + 30
    If MouseX() < x Then x - 30            
    If MouseY() > y Then y + 30
    If MouseY() < y Then y - 30
    
    Box x,y,30,30,0

  DrawScreen
Forever
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

Olisiko mitään mahdollisuutta tehdä 3d-taloista pyöreitä? Pitäisi saada patsas / suihkulähde tuonne WTC plazalle :D
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

Kaikkihan on tekniikasta kyse, semmoiset kuvat mitä ei pysty toteuttamaan ovat aika harvassa. Eri asia sitten, paljonko valmista engineä joutuu muokkaamaan ja miten nopeasti sellainen pyörii. Itse kokeilisin ensin, josko alfatut pyöreät tilet näyttäisivät systeemilläsi suoraan oikealta, se olisi aika siisti ja helppo ratkaisu :)
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe »

koodaaja wrote:Kaikkihan on tekniikasta kyse, semmoiset kuvat mitä ei pysty toteuttamaan ovat aika harvassa. Eri asia sitten, paljonko valmista engineä joutuu muokkaamaan ja miten nopeasti sellainen pyörii. Itse kokeilisin ensin, josko alfatut pyöreät tilet näyttäisivät systeemilläsi suoraan oikealta, se olisi aika siisti ja helppo ratkaisu :)
Tuota minä itsekin pohdin... no, laitetaan testiin :D
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2010)

Post by naputtelija »

Jaa ensin kuva 360 osaan tai 72 tai miten vaan... Sit vaan teet koko homman samalla periaatteella kun marcoder teki. Vie vain paljon prossua, ja muutos voi olla hankalaa.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset (I/2010)

Post by -Z- »

Kuinka tein doublepixel-efektin? Siis että jokainen pikseli ruudulla olisikin 2x2 laatikko. Kokeilin muutamaa metodia mutta olivat tuskaisen hitaita.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 »

-Z- wrote:Kuinka tein doublepixel-efektin? Siis että jokainen pikseli ruudulla olisikin 2x2 laatikko. Kokeilin muutamaa metodia mutta olivat tuskaisen h
Resoluutio pienemmäksi, Screen w,h,0,cbSizabled ja SetWindow "", cbFullScreen?
En nyt muista missä järjestyksessä noiden parametrit oli, mutta ymmärtänet ideani.
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Tyhmät kysymykset (I/2010)

Post by CCE »

-Z- wrote:Kuinka tein doublepixel-efektin? Siis että jokainen pikseli ruudulla olisikin 2x2 laatikko. Kokeilin muutamaa metodia mutta olivat tuskaisen hitaita.
Itse en keksi oikein muuta tapaa kuin venyttää kuvat ja objektit kaksi kertaa suuremmiksi, ja sen jälkeen tehdä niiden liikkeestä hieman palikkamaisempaa.
Esim. näin:

Code: Select all

imgCow = LoadImage("media\cow.bmp")
ResizeImage imgCow, ImageWidth(imgCow)*2, ImageHeight(imgCow)*2

obj = MakeObject()
PaintObject obj, -imgCow

Repeat
	
	PositionObject obj, Cos(Timer()/12)*100, Sin(Timer()/8)*80
	
	// Asetetaan lehmä 2x2 pikseligridiin
	PositionObject obj, Int(ObjectX(obj)/2)*2, Int(ObjectY(obj)/2)*2
	DrawScreen
Forever
Latexi95 wrote:Resoluutio pienemmäksi, Screen w,h,0,cbSizabled ja SetWindow "", cbFullScreen?
En nyt muista missä järjestyksessä noiden parametrit oli, mutta ymmärtänet ideani.
Joillakin koneilla ruutu skaalataan lineaarisesti jolloin kuva menee mössöksi.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

Tässäpä yhdenlainen doublepixel -systeemi. Periaatteessa pitäisi kummassakin for-loopissa olla kaksi copyboxia, mutta jostain syystä tämä ei tunnu antavan mitään artifakteja vielä kahden levyisillä viivoilla, neljällä se alkaa näyttää jo hassulta.

Code: Select all

SCREEN 640,480

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

ukko = LoadObject ("Media\guy.bmp",72)
SetupCollision ukko, kartta, 2, 4, 2

PositionCamera 320,-240
Repeat

    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2
    
    PositionCamera ObjectX(ukko)+160, ObjectY(ukko)-120
    
    DrawGame
    
    PositionCamera 320, -240
    
    For i = 240 To 0 Step -1
        CopyBox 0, i, 320, 2, 0, i*2
    Next i
    
    For i = 320 To 0 Step -1
        CopyBox i,0,2,480,i*2,0
    Next i
    
    DrawScreen

Forever
Wingman
Devoted Member
Posts: 594
Joined: Tue Sep 30, 2008 4:30 pm
Location: Ruudun toisella puolella

Re: Tyhmät kysymykset (I/2010)

Post by Wingman »

koodaaja wrote:Tässäpä yhdenlainen doublepixel -systeemi. Periaatteessa pitäisi kummassakin for-loopissa olla kaksi copyboxia, mutta jostain syystä tämä ei tunnu antavan mitään artifakteja vielä kahden levyisillä viivoilla, neljällä se alkaa näyttää jo hassulta.

Code: Select all

koodia..
Itse teen doublepixelit näin:

Code: Select all

SCREEN 800,600,0,1
SCREEN 400,300,0,2
<ohjelmakoodi>
- - - -
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Tyhmät kysymykset (I/2010)

Post by CCE »

Wingman wrote: Itse teen doublepixelit näin:

Code: Select all

SCREEN 800,600,0,1
SCREEN 400,300,0,2
<ohjelmakoodi>
CCE wrote:
Latexi95 wrote:Resoluutio pienemmäksi, Screen w,h,0,cbSizabled ja SetWindow "", cbFullScreen?
En nyt muista missä järjestyksessä noiden parametrit oli, mutta ymmärtänet ideani.
Joillakin koneilla ruutu skaalataan lineaarisesti jolloin kuva menee mössöksi.
Eli koodajan doublepixel on kyllä ehdottomasti toimivin, ja yllättävän nopeakin.
User avatar
Kille
Active Member
Posts: 249
Joined: Wed Aug 26, 2009 3:50 pm
Location: Juankoski

Re: Tyhmät kysymykset (I/2010)

Post by Kille »

CCE wrote:
Wingman wrote: Itse teen doublepixelit näin:

Code: Select all

SCREEN 800,600,0,1
SCREEN 400,300,0,2
<ohjelmakoodi>
CCE wrote:
Latexi95 wrote:Resoluutio pienemmäksi, Screen w,h,0,cbSizabled ja SetWindow "", cbFullScreen?
En nyt muista missä järjestyksessä noiden parametrit oli, mutta ymmärtänet ideani.
Joillakin koneilla ruutu skaalataan lineaarisesti jolloin kuva menee mössöksi.
Eli koodajan doublepixel on kyllä ehdottomasti toimivin, ja yllättävän nopeakin.
Ainakin minulla Wingmanin versio oli noin puolet nopeampi (FPS ~120, koodaajalla ~60). Lopputulos oli silti sama.
ZEPPELIN
Jatkoa tulossa... tällä kertaa lataus ei kestä viikkoa
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2010)

Post by koodaaja »

Tarkka lukija saattaa havaita ilmauksen "joillakin koneilla" kuvien mössöytymisestä puhuttaessa. Tästä syystä kannattaa julkaista molemmat binäärit, sekä perinteisellä ikkunanvenytystekniikalla (kaksi SCREENiä) että jollain copybox- tai vastaavalla metodilla, jotta jokainen voi valita sen joka mukavammin toimii, niiden vaihtamisen vaiva on kuitenkin minimaalinen :)
Locked