Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
Feuer
Devoted Member
Posts: 520
Joined: Tue Jun 16, 2009 11:13 am
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Feuer »

Kannattaa ehkä käyttää absoluuttisia polkuja tiedostoihin (C:\kansio\toinenkansio\mediansijainti\ukko.bmp) jos ei ole aivan varma että ymmärtää suhteellisten polkujen( (suoritushakemisto)\mediansijainti\ukko.bmp) toimintatavan. Näin tiedostojen olemassaolo on myös helpompi varmistaa. Pitää vain muistaa, etteivät absoluuttiset polut todennäköisesti toimi oman koneen ulkopuolella.
Asus P8P67 LE/Intel Core i5 2500K/ GTX560/ 8GT RAM/750GT HDDt + 120GT SSD + 13" Macbook Pro
Blogi - Peräpohjola - MERPG
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2011)

Post by esa94 »

Laurenzo wrote: PS. Olen 9v
Se ei ole peruste käyttää niin suurta määrää hymiöitä että se vaatii kämmenen applikointia kasvoihin.
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

Laurenzo wrote: Luulisin että ongelmaan ei löydy vastusta edellisistä viesteistä :oops: koska koodi on aivan sama
silloin kun se toimi. :oops: :)

PS. Olen 9v
Teinpäs sinulle havainnollistavan kuvan tiedostopolkujen käytöstä kartan latauskomennon ja kuvien latauskomennon yhteydessä. Tallennetun koodin paikka eli käytössä oleva työkansio vaikuttaa käytettävään suhteelliseen tiedostopolkuun. Käytin värejä merkitsemään suhteellisia tiedostopolkuja eri ajattavista kooditiedostoista.

EDIT: Kuva saattaa monien harmiksi olla kovin suuri, hitaiden yhteyksien takaa kurkkiville kärsivällisyyttä. (:
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

TOIMII :) poistin tilekartan ja tein uuden niin sitten lähti toimimaan. ;)
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

Uusi ongelma juna ei liiku minnekkään! :?:
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Mietippä nyt hetken aikaa, onko tuossa viestissäsi tarpeeksi sisältöä, että voisimme oikeasti auttaa ongelmassasi?

Laita mieluiten koodia tänne niin ei tarvi arvailla.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Re: Tyhmät kysymykset (I/2011)

Post by DJ-Filbe »

Minulla on sivuillani kävijälaskuri, joka perustuu IP-osoitteisiin. Kuitenkin osalla käyttäjistä IP-osoite ei ole kiinteä, vaan vaihtuu aika ajoin. Olisiko järkevää tehdä keksi, johon tallennetaan IP, ja jos keksi on joskus eri kuin IP-osoite (IP vaihtui), poistetaan listasta vanha IP? Mitä mieltä olette?
Entä miten voisi luotettavasti laskea, jos samasta IP-osoitteesta sivua katsellaan eri koneilla?
Latexi95
Guru
Posts: 1165
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

DJ-Filbe wrote:Minulla on sivuillani kävijälaskuri, joka perustuu IP-osoitteisiin. Kuitenkin osalla käyttäjistä IP-osoite ei ole kiinteä, vaan vaihtuu aika ajoin. Olisiko järkevää tehdä keksi, johon tallennetaan IP, ja jos keksi on joskus eri kuin IP-osoite (IP vaihtui), poistetaan listasta vanha IP? Mitä mieltä olette?
Entä miten voisi luotettavasti laskea, jos samasta IP-osoitteesta sivua katsellaan eri koneilla?
Käytä eväisteitä. Ne ovat kone kohtaisia. Joskin niitä pystyyy muokkaamaa, mutta tässä tapauksessa sillä tuskin on mitään väliä. Ei sen kävijälaskurin tarvitse olla niin tarkka...
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

Jonez wrote:Mietippä nyt hetken aikaa, onko tuossa viestissäsi tarpeeksi sisältöä, että voisimme oikeasti auttaa ongelmassasi?

Laita mieluiten koodia tänne niin ei tarvi arvailla.
Onglema korjattu En ollut muistanut laittaa loppuun draawscreeniä :oops:
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
Kumiankka
Member
Posts: 65
Joined: Wed May 18, 2011 5:17 pm
Location: Artjärvi

Re: Tyhmät kysymykset (I/2011)

Post by Kumiankka »

Mitenköhän onnistuisi kahden nelikulmion törmäyksentarkistus? Nelikulmioita pitäisi pystyä kääntelemään...
EDIT:

Ja siis objektijärjestelmää en tahtoisi käyttää...

User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

BoxOverlap2

Post by MetalRain »

Kumiankka wrote:Mitenköhän onnistuisi kahden nelikulmion törmäyksentarkistus? Nelikulmioita pitäisi pystyä kääntelemään...
EDIT:

Ja siis objektijärjestelmää en tahtoisi käyttää...

Tähän on varmaan joku simppelimpikin ratkaisu, mutta teinpä tälläisen joka katsoo onko nelikulmiot niin lähellä toisiaan että voivat ylipäänsä törmätä, sitten testaa onko nelikulmion keskipiste toisen nelikulmion sisällä ja sitten vielä tarkistaa leikkaako nelikulmioiden sivut toisiaan.

Code: Select all

DrawToWorld ON 

Repeat 

    t#=Timer()/15.0
    
    t1#=t1#+MouseMoveZ()*10

    If BoxOverlap2(MouseWX(),MouseWY(),100,50,t1#,0,0,40,200,-t#/1.5) Then
        Color cbred 
    Else 
        Color cbwhite 
    EndIf 
    
    Lock
        Box2(MouseWX(),MouseWY(),100,50,t1#)
        Box2(0,0,40,200,-t#/1.5)
    Unlock 

    DrawScreen 

Forever 

Function BoxOverlap2(x#,y#,w#,h#,a#,xx#,yy#,ww#,hh#,aa#)

    w2#=w#/2.0
    h2#=h#/2.0
    
    cx# = Cos(a#)
    cy# = Cos(a#+90.0)
    sx# = Sin(a#)
    sy# = Sin(a#+90.0)

    //ensimmäisen laatikon kärjet
    x1# = x# + cx#*w2# + cy#*h2#
    y1# = y# + sx#*w2# + sy#*h2#
    
    x2# = x# - cx#*w2# + cy#*h2#
    y2# = y# - sx#*w2# + sy#*h2#
    
    x3# = x# - cx#*w2# - cy#*h2#
    y3# = y# - sx#*w2# - sy#*h2#
    
    x4# = x# + cx#*w2# - cy#*h2#
    y4# = y# + sx#*w2# - sy#*h2#
    
    w1# = Abs(cx#*w2#) + Abs(cy#*h2#)
    h1# = Abs(sx#*w2#) + Abs(sy#*h2#)
    
    w2#=ww#/2.0
    h2#=hh#/2.0
    
    cx# = Cos(aa#)
    cy# = Cos(aa#+90.0)
    sx# = Sin(aa#)
    sy# = Sin(aa#+90.0)
    
    //toisen laatikon kärjet
    xx1# = xx# + cx#*w2# + cy#*h2#
    yy1# = yy# + sx#*w2# + sy#*h2#
    
    xx2# = xx# - cx#*w2# + cy#*h2#
    yy2# = yy# - sx#*w2# + sy#*h2#
    
    xx3# = xx# - cx#*w2# - cy#*h2#
    yy3# = yy# - sx#*w2# - sy#*h2#
    
    xx4# = xx# + cx#*w2# - cy#*h2#
    yy4# = yy# + sx#*w2# - sy#*h2#
    
    w3# = Abs(cx#*w2#) + Abs(cy#*h2#)
    h3# = Abs(sx#*w2#) + Abs(sy#*h2#)
    
    //onko niin kaukana toisistaan ettei edes voi törmätä?
    
    If Abs(x#-xx#)>(w1#+w3) Or Abs(y#-yy#)>(h1#+h3) Then Return False

    //onko toinen laatikko ensimmäisen sisällä?
    If PointInTriangle(xx#, yy#, x1#, y1#, x2#, y2#, x3#, y3#) Then Return True
    If PointInTriangle(xx#, yy#, x1#, y1#, x4#, y4#, x3#, y3#) Then Return True
    
    //leikkaako sivut 
    
    If LineSegIsect1(x1#, y1#, x2#, y2#, xx1#, yy1#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x1#, y1#, x2#, y2#, xx3#, yy3#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x1#, y1#, x2#, y2#, xx3#, yy3#, xx4#, yy4#) Then Return True 
    If LineSegIsect1(x1#, y1#, x2#, y2#, xx1#, yy1#, xx4#, yy4#) Then Return True 
    
    If LineSegIsect1(x3#, y3#, x2#, y2#, xx1#, yy1#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x3#, y3#, x2#, y2#, xx3#, yy3#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x3#, y3#, x2#, y2#, xx3#, yy3#, xx4#, yy4#) Then Return True 
    If LineSegIsect1(x3#, y3#, x2#, y2#, xx1#, yy1#, xx4#, yy4#) Then Return True 
    
    If LineSegIsect1(x3#, y3#, x4#, y4#, xx1#, yy1#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x3#, y3#, x4#, y4#, xx3#, yy3#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x3#, y3#, x4#, y4#, xx3#, yy3#, xx4#, yy4#) Then Return True 
    If LineSegIsect1(x3#, y3#, x4#, y4#, xx1#, yy1#, xx4#, yy4#) Then Return True 

    If LineSegIsect1(x1#, y1#, x4#, y4#, xx1#, yy1#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x1#, y1#, x4#, y4#, xx3#, yy3#, xx2#, yy2#) Then Return True 
    If LineSegIsect1(x1#, y1#, x4#, y4#, xx3#, yy3#, xx4#, yy4#) Then Return True 
    If LineSegIsect1(x1#, y1#, x4#, y4#, xx1#, yy1#, xx4#, yy4#) Then Return True 

    Return False 

End Function 

Function Box2(x#,y#,w#,h#,a#)

    w2#=w#/2.0
    h2#=h#/2.0
    
    cx# = Cos(a#)
    cy# = Cos(a#+90.0)
    sx# = Sin(a#)
    sy# = Sin(a#+90.0)

    //laatikon kärjet
    x1# = x# + cx#*w2# + cy#*h2#
    y1# = y# + sx#*w2# + sy#*h2#
    
    x2# = x# - cx#*w2# + cy#*h2#
    y2# = y# - sx#*w2# + sy#*h2#
    
    x3# = x# - cx#*w2# - cy#*h2#
    y3# = y# - sx#*w2# - sy#*h2#
    
    x4# = x# + cx#*w2# - cy#*h2#
    y4# = y# + sx#*w2# - sy#*h2#

    Line x1#, y1#, x2#, y2#
    Line x3#, y3#, x2#, y2#
    Line x4#, y4#, x3#, y3#
    Line x1#, y1#, x4#, y4#
    
End Function 

Function PointInTriangle(x#, y#, x1#, y1#, x2#, y2#, x3#, y3#)
   ab# = ((y - y1) * (x2 - x1) - (x - x1) * (y2 - y1)) / 1000.0
   bc# = ((y - y2) * (x3 - x2) - (x - x2) * (y3 - y2)) / 1000.0
   ca# = ((y - y3) * (x1 - x3) - (x - x3) * (y1 - y3)) / 1000.0
   If (ab * bc) > 0 And (bc * ca) > 0 Then Return True
   Return False
EndFunction

Function LineSegIsect1(ax#, ay#, bx#, by#, cx#, cy#, dx#, dy#)
   Return (((bx-ax)*(cy-ay)-(by-ay)*(cx-ax))*((bx-ax)*(dy-ay)-(by-ay)*(dx-ax)) < 0)(((dy-cy)*(cx-ax)-(dx-cx)*(cy-ay))*((dx-cx)*(by-cy)-(dy-cy)*(bx-cx)) < 0)
EndFunction
EDIT: Oletan että tarkoitit nelikulmiolla suorakulmiota, vaikka eipä tuon yleistäminen kaikille nelikulmioille ole vaikeaa.
muuan ihminen joka pitää makkaroista

Re: Tyhmät kysymykset (I/2011)

Post by muuan ihminen joka pitää makkaroista »

Hei.
minulla on aloitettuna peliprojekti, jossa yritän tehdä pelin, jossa syödään ukolla makkaroita, joita joko löytyy pitkin kenttää, tai kuin matopelissä, jossa ruokaa ilmestyy sitä mukaa milloin sitä syödään. Ongelmani on, miten saisin tehtyä syömisen. :) Tehdäänkö se yleensä törmäyksellä? Jos tehdään, niin miten? Voisiko joku tehdä esimerkin?
T. Muuan ihminen joka pitää makkaroista.
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

muuan ihminen joka pitää makkaroista wrote:Hei.
minulla on aloitettuna peliprojekti, jossa yritän tehdä pelin, jossa syödään ukolla makkaroita, joita joko löytyy pitkin kenttää, tai kuin matopelissä, jossa ruokaa ilmestyy sitä mukaa milloin sitä syödään. Ongelmani on, miten saisin tehtyä syömisen. :) Tehdäänkö se yleensä törmäyksellä? Jos tehdään, niin miten? Voisiko joku tehdä esimerkin?
T. Muuan ihminen joka pitää makkaroista.
Voit esimerkiksi katsoa Distancella tai Distance2:lla ovatko makkara ja ukko tarpeeksi lähellä toisiaan.

Code: Select all

makkara = LoadObject("media\cow.bmp")
ukko = LoadObject("media\guy.bmp")

Repeat
    
    //ohjataan ukkoa hiirellä
    PositionObject ukko,MouseWX(),MouseWY()
    
    //jos mies ja makkara on tarpeeksi lähellä toisiaan
    If Distance2(ukko,makkara)<16 Then 
    
        //kasvatetaan syötyjen makkaroiden määrää
        makkaroita_syöty = makkaroita_syöty + 1
        
        //liikutetaan makkara uuteen paikkaan
        PositionObject makkara,Rand(-190,190),Rand(-140,140)
        
        //muutetaan ikkunan otsikkoa
        SetWindow "Makkaroita mussutettu: "+makkaroita_syöty 
    EndIf 

    DrawScreen 

Forever
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2011)

Post by koodaaja »

Myös ObjectsOverlapilla voi selvittää, ovatko kaksi objektia päällekkäin.
muuan ihminen joka pitää makkaroista

Re: Tyhmät kysymykset (I/2011)

Post by muuan ihminen joka pitää makkaroista »

Kiitos nopeasta vastauksesta!
User avatar
Laurenzo
Member
Posts: 85
Joined: Mon Apr 25, 2011 8:28 am
Location: Tampere
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Laurenzo »

Kuinka voin tehdä aikarajan peliini ?
Eli kenttä täytyy läpäistä esim. Minuutissa.
jos aikaraja ylittyy peli loppuu?
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

Laurenzo wrote:Kuinka voin tehdä aikarajan peliini ?
Eli kenttä täytyy läpäistä esim. Minuutissa.
jos aikaraja ylittyy peli loppuu?
Käytä Timer() komentoa, jotta saat senhetkisen ajankohdan selville (palauttaa ajan koneen käynnistymisestä millisekunteina). Tallenna aloitusajankohta muuttujaan, ja saat pelatun ajan yksinkertaisesti Nykyinen_Aika - Aloitus_Aika. Sitten tarkkailet josko on jo pelattu yli 60000 millisekuntia (60 sekuntia * 1000). Koodina:

Code: Select all

StartTime = Timer()
Repeat
    CurTime = Timer() - StartTime
    Text 1, 1, CurTime
    Drawscreen
Until CurTime >= 60000
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
muuan ihminen joka yhä tykkää makkarasta

Re: Tyhmät kysymykset (I/2011)

Post by muuan ihminen joka yhä tykkää makkarasta »

Hei.
Minulle aikaisemmin vastattiin kysymykseeni makkaransyöntipeliin liittyen skriptillä, jonka ohessa luki miten saa ikkunan otsikkoon lukemaan syötyjen makkaroiden määrän. Haluaisin kuitenkin sen näkyvän tekstinä pelissä, esim. "makkaroita syöty 5". Mitenköhän se onnistuisi? tiedän periaatteen, mutta en osaa käytännössä toteuttaa sitä :? .
T. eräs heppu joka vieläkin jaksaa pitää makkaroista.
User avatar
valscion
Moderator
Moderator
Posts: 1598
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion »

muuan ihminen joka yhä tykkää makkarasta wrote:Hei.
Minulle aikaisemmin vastattiin kysymykseeni makkaransyöntipeliin liittyen skriptillä, jonka ohessa luki miten saa ikkunan otsikkoon lukemaan syötyjen makkaroiden määrän. Haluaisin kuitenkin sen näkyvän tekstinä pelissä, esim. "makkaroita syöty 5". Mitenköhän se onnistuisi? tiedän periaatteen, mutta en osaa käytännössä toteuttaa sitä :? .
T. eräs heppu joka vieläkin jaksaa pitää makkaroista.
Kannattaa käyttää Text-komentoa.

Code: Select all

makkaroita = 0
Repeat
    // Piirretään tekstiä ruudulle koordinaatteihin x=0 ja y=0. Merkkijonoon "Makkaroita: " lisätään perään makkaroiden määrä "makkaroita"-muuttujassa.
    Text 0,0, "Makkaroita: " + makkaroita

    // Vähän infoa miten makkaroita saa lisää, nyt x=0 ja y=13
    Text 0,13, "Paina välilyöntiä lisätäksesi makkaroiden määrää"

    // Jos painetaan välilyöntiä, lisätään makkaroita yhdellä
    If KeyHit( cbKeySpace ) Then makkaroita = makkaroita + 1

    DrawScreen
Forever 
EDIT: Suosittelen rekisteröitymistä foorumeille, näin saat viesteillesi suuremman painoarvon sekä voit halutessasi muokata jo lähetettyä viestiä ;)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
pitää makkarasta

Re: Tyhmät kysymykset (I/2011)

Post by pitää makkarasta »

kiitos paljon! Luulen, että osasin sentään ainakin laittaa kysymykseni oikealle palstalle ;)
Locked