Tyhmät kysymykset (I/2011)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Peltsi »

Ihminen wrote:Kun tein oman "kartan" Tilesterillä ja muuten se toimii mutta kun laitoin SetupCollisionin 1, 4, 2 (kokeilin myös 2, 4, 2) niin kun yritän päästä peliin tulee "Error: Memory access violation.
Miksi se tulee ja kuinka saisin korjattua asian.
(Tähän on varmaan ihan yksinkertainen ratkaisu, mutta kysyn nyt kuitenkin koska olen vasta aloittelija)
Laitappas lähdekoodi esille niin ratkaistaan ongelma sitten! ;) :)
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset (I/2011)

Post by TheFish »

Ihminen wrote:Kun tein oman "kartan" Tilesterillä ja muuten se toimii mutta kun laitoin SetupCollisionin 1, 4, 2 (kokeilin myös 2, 4, 2) niin kun yritän päästä peliin tulee "Error: Memory access violation.
Miksi se tulee ja kuinka saisin korjattua asian.
(Tähän on varmaan ihan yksinkertainen ratkaisu, mutta kysyn nyt kuitenkin koska olen vasta aloittelija)
Mahdollisesti kirjoitit kartan (tai törmääjän) nimen väärin. Ilman lähdekoodia ei voi sen tarkemmin sanoa.
CoolBasic henkilökuntaa
Kehittäjä
User avatar
Peltsi
Active Member
Posts: 121
Joined: Thu Sep 30, 2010 12:16 pm

Re: Tyhmät kysymykset (I/2011)

Post by Peltsi »

Ihminen wrote:Kun tein oman "kartan" Tilesterillä ja muuten se toimii mutta kun laitoin SetupCollisionin 1, 4, 2 (kokeilin myös 2, 4, 2) niin kun yritän päästä peliin tulee "Error: Memory access violation.
Miksi se tulee ja kuinka saisin korjattua asian.
(Tähän on varmaan ihan yksinkertainen ratkaisu, mutta kysyn nyt kuitenkin koska olen vasta aloittelija)
Olit laittanut väärän muuttujanimen setupcollision kohtaan.

map = LoadMap("testi","textures.bmp")
PlayObject map,0,0,1

SetupCollision pelihahmo, kartta, 1, 4, 2


EDIT: Ongelma näköjään ratkesi jo kun poistit viestit.. :)
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 »

Seuraava ongelma:
TÄLLAINEN KOODINPÄTKÄ

Code: Select all

If ObjectSoverLap(kiekko,maali1)Then moveobject kiekko,0
Eli Kiekko ei mene kokonaan maalin sisään vaan jää tällaiseksi:
kuva.jpg
kuva.jpg (3.58 KiB) Viewed 10421 times
Ja jääkiekon säännöissä on että kiekon pitää ylittää maaliviiva kokonaan.
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
User avatar
Rohmu
Newcomer
Posts: 29
Joined: Fri Apr 15, 2011 12:48 pm
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Rohmu »

voit lisätä ehdon

Code: Select all

if abs(objecty(maali)-objecty(kiekko))<etäisyys 
Roolipeliprojekti: Endless Travels
viewtopic.php?t=2548
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 »

Rohmu wrote:voit lisätä ehdon

Code: Select all

if abs(objecty(maali)-objecty(kiekko))<etäisyys 
Kiitti
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen »

Tuli nyt tällänen tyhmä kysymys mieleen, että voiko cb:ssä "näyttää" windows moviemaker:illa tehtyjä videoita?
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2011)

Post by Jonez »

Voi, käyttämällä komentoja PlayAnimation() ja DrawAnimation. Manuaalin mukaan tuettuna on kaikki DirectShown tukemat tiedostomuodot.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
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 »

Taidan tehdä tämän ominaisuuden vasta kakkosversioon ;) mutta kysyn kuitenkin :jos pelissäni saa maalin niin miten onnistuisi se että maalin voisi katsoa hidastuksena? :?: ?
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:Taidan tehdä tämän ominaisuuden vasta kakkosversioon ;) mutta kysyn kuitenkin :jos pelissäni saa maalin niin miten onnistuisi se että maalin voisi katsoa hidastuksena? :?: ?
Jotta voidaan nähdä replay, pitää tallentaa kaikkien objektejen sijainteja tietyltä ajanjaksolta. Tallentaminen kannattee tehdä taulukkoon jonka koko riippuu siitä, kuinka paljon haluat replayssa näyttää. Sitä mukaa kun uutta dataa laitetaan taulukkoon, vanhin sijainti unohdetaan pois. Tämän jälkeen vaan käydään läpi tämä replaytaulukko, ja siirretään kaikki objektit taulukon osoittamiin paikkoihin (ja kulmiin myös!).
Jotta kyseessä olisi hidastus, pitää myös näyttää kahden tallennetun sijainnin välillä jotain. Yksinkertaisimmillaan hidastetaan pelin nopeutta, mutta tämä johtaa tökkivään liikkumiseen. Suositeltavaa on käyttää lineaarista interpolaatiota, jolloin väliarvot menevät sulavasti ja tökkimistä ei tapahdu. En lähde interpolaatiota tässä selvittämään, ja esimerkissä käytetty ½ nopeus ei kummempaa matematiikkaa tarvikaan, sillä kyseessä on tavallinen keskiarvo.

Code: Select all

SCREEN 500, 500
FrameLimit 60

Dim MouseRecord(100, 1)                             //Laaditaan taulukko, mihin tallennetaan 101 viimeisintä hiiren koordinaattia

alku:
Repeat
    Text 1, 1, "Klikkaa nähdäksesi hiiren liikkeiden replayn."
    For i = 0 To 99                                 //"Siirretään" arvoja yksi taaksepäin ja kadotetaan vanhin arvo (kohdassa 0)
        MouseRecord(i, 0) = MouseRecord(i + 1, 0)   //X-koordinaatti
        MouseRecord(i, 1) = MouseRecord(i + 1, 1)   //Y-koordinaatti
    Next i
    MouseRecord(100, 0) = MouseX()                  //Tallennetaan uusi koordinaatti kohtaan 100
    MouseRecord(100, 1) = MouseY()
    
    DrawScreen
Until MouseHit(1)


For i = 0 To 99                                     //Käydään tallennetut sijainnit uusimmasta vanhimpaan
    Text 1, 1, "SLOWMOTION"
    Circle MouseRecord(i, 0) - 5, MouseRecord(i, 1) - 5, 10, 0
    DrawScreen
    
    
    Text 1, 1, "SLOWMOTION"                         //Näytetään nykyisen ja seuraavan keskikohta, jolloin animaatio pyörii puolinopeudella, mutta sulavasti
    X = (MouseRecord(i, 0) + MouseRecord(i + 1, 0)) / 2
    Y = (MouseRecord(i, 1) + MouseRecord(i + 1, 1)) / 2
    Circle X - 5, Y - 5, 10, 0
    DrawScreen
Next i

Goto alku
Eli liikuttele hiirtä ja klikkaa nähdäksesi viimeisimmät liikkeet hidastuksena ;)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen »

Kun yritän näyttää windows movie maker:illa tehdyn videon tulee Error Memory access violation. Miksi? olen aivan sataprosenttisen varma että mulla on kaikki "nimet" oikein ja tälläset.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by valscion »

Ihminen wrote:Kun yritän näyttää windows movie maker:illa tehdyn videon tulee Error Memory access violation. Miksi? olen aivan sataprosenttisen varma että mulla on kaikki "nimet" oikein ja tälläset.
Mitäs tiedostoa yrität toistaa? Onko tiedoston pääte .avi? Laita koodinpätkä tulemaan niin nähdään, onko siinä varmasti kaikki oikein.
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
Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen »

VesQ wrote:
Ihminen wrote:Kun yritän näyttää windows movie maker:illa tehdyn videon tulee Error Memory access violation. Miksi? olen aivan sataprosenttisen varma että mulla on kaikki "nimet" oikein ja tälläset.
Mitäs tiedostoa yrität toistaa? Onko tiedoston pääte .avi? Laita koodinpätkä tulemaan niin nähdään, onko siinä varmasti kaikki oikein.
pääte on .MSWMM...
no tässä kuitenkin tää mitä mä yritän...

Code: Select all

 

SCREEN 320,240,0,cbsizable


    valinta = 1
    valinnat = 3
    Dim sana$(valinnat)
    sana(1) = "PLAY"
    sana(2) = "tekijät"
    sana(3) = "lopeta"
    While Not life
        If valinta > 1 And KeyHit(cbkeyup) Then valinta - 1
        If valinta < valinnat And KeyHit(cbkeydown) Then valinta + 1
        For i=1 To valinnat
            If valinta = i Then Color cbred Else Color cbwhite
            Text 100,i*20,sana(i)
        Next i
        If KeyHit(cbkeyreturn) Then
            Select valinta
            Case 1
           
FrameLimit 30

map = LoadMap("testi","textures.bmp")
PlayObject map,0,0,0.5

vasen=LoadAnimObject("characterrun2.bmp",47,51,0,13)
MaskObject vasen, cbMagenta
ShowObject vasen, OFF

oikea=LoadAnimObject("characterrun1.bmp",47,51,0,13)
MaskObject oikea, cbMagenta
ShowObject oikea, OFF

ylös=LoadAnimObject("characterrun4.bmp",47,51,0,13)
MaskObject ylös, cbMagenta
ShowObject ylös, OFF

alas=LoadAnimObject("characterrun3.bmp",47,51,0,13)
MaskObject alas, cbMagenta
ShowObject alas, OFF

taistelu=LoadImage("taistelu.bmp")


vihu = LoadObject("enemy.bmp")
PositionObject vihu, 100, 0

lyönti=PlayAnimation("testi.mswmm")


pelihahmo=CloneObject(oikea)


SetupCollision pelihahmo, map, 1, 4, 2
ObjectRange pelihahmo, 30, 51

SetupCollision pelihahmo,vihu, 2, 2, 1

Repeat

If UpKey() Then
PaintObject pelihahmo,ylös
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 0,-5
CloneCameraPosition pelihahmo

ElseIf DownKey() Then
PaintObject pelihahmo,alas
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 0,5
CloneCameraPosition pelihahmo

ElseIf RightKey() Then
PaintObject pelihahmo,oikea
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, 5
CloneCameraPosition pelihahmo

ElseIf ObjectsOverlap (pelihahmo, vihu) Then 
MoveCamera To 120, 35
DrawImage taistelu, 33, 50

If KeyDown (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
DrawAnimation lyönti
EndIf

ElseIf LeftKey() Then
PaintObject pelihahmo,vasen
PlayObject pelihahmo,2,11,0.25
MoveObject pelihahmo, -5
CloneCameraPosition pelihahmo
EndIf 
User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset (I/2011)

Post by buke44 »

Ihminen wrote:
VesQ wrote:
Ihminen wrote:Kun yritän näyttää windows movie maker:illa tehdyn videon tulee Error Memory access violation. Miksi? olen aivan sataprosenttisen varma että mulla on kaikki "nimet" oikein ja tälläset.
Mitäs tiedostoa yrität toistaa? Onko tiedoston pääte .avi? Laita koodinpätkä tulemaan niin nähdään, onko siinä varmasti kaikki oikein.
pääte on .MSWMM...
no tässä kuitenkin tää mitä mä yritän...
Renderöi video Movie Makerilla .avi - muotoon.
Ihminen
Newcomer
Posts: 34
Joined: Tue Jun 14, 2011 9:13 pm

Re: Tyhmät kysymykset (I/2011)

Post by Ihminen »

Totanoin... Kun mä laitoin tälläsen että...

Code: Select all

If KeyHit (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
DrawAnimation lyönti 
EndIf

miksi se näyttää vaan nopeasti ensimmäisen kuvan tuosta animaatiosta, eikä koko animaatiota?

Kun laitoin tohon "KeyHit" kohtaan "KeyDown", se näyttää sen koko animaation jos pidän näppäintä pohjassa.
Mutta jos siis haluan laittaa että kun näppäintä "S" painetaan kerran, se näyttäisi koko animaation, miten se onnistuisi?
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

Ihminen wrote:Totanoin... Kun mä laitoin tälläsen että...

Code: Select all

If KeyHit (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
DrawAnimation lyönti 
EndIf

miksi se näyttää vaan nopeasti ensimmäisen kuvan tuosta animaatiosta, eikä koko animaatiota?

Kun laitoin tohon "KeyHit" kohtaan "KeyDown", se näyttää sen koko animaation jos pidän näppäintä pohjassa.
Mutta jos siis haluan laittaa että kun näppäintä "S" painetaan kerran, se näyttäisi koko animaation, miten se onnistuisi?
DrawAnimation piirtää animaation, joten sitä on kutsuttava, joka kerta silmukassa ja PlayAnimation aloittaa animaation toiston.

Todennäköisesti haluat, että animaatio näytetään kokonaan kun S:ssää on painettu ja peli jatkuu sitten?
Siinä tapauksessa tälläinen silmukka voisi olla kätevä:

Code: Select all

If KeyHit (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
    //tässä kannattaa piilottaa objectit, että ne eivät näy päällä...
    animaatio = PlayAnimation("animaation polku") //Aloitetaan toisto
    repeat
        DrawAnimation animaatio //Piirretään animaation ruudulle
        DrawScreen
    Until Not AnimationPlaying(animaatio) //Kun animaatio on toistettu jatketaan...
    //Tässä objektit takaisin näkyviksi...
EndIf
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija »

Itse käytän tälläistä koodinpätkää dilemman ratkaisuun. (laita repeat:foreverin sisään)

Code: Select all

    If KeyHit(cbKeyS) Then playing=ON 'pannaan playing-muuttuja päälle
    If ObjectFrame(ukko)<3.5  And ObjectFrame(ch)>2.5 Then chplaying=OFF 'Kun saavutetaan haluttu
    'kohta niin animaatio pysäytetään

    If playing=ON Then 'Jos on playing päällä, toistetaan
        PlayObject ukko,0,3,0.2,OFF
    Else
        StopObject ukko
        PlayObject ukko,0 'Jos ei ole playing päällä, niin lopetetaan animaatio ja laitetaan alkuun
    EndIf
<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/2011)

Post by naputtelija »

Latexi95 wrote:
Ihminen wrote:Totanoin... Kun mä laitoin tälläsen että...

Code: Select all

If KeyHit (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
DrawAnimation lyönti 
EndIf

miksi se näyttää vaan nopeasti ensimmäisen kuvan tuosta animaatiosta, eikä koko animaatiota?

Kun laitoin tohon "KeyHit" kohtaan "KeyDown", se näyttää sen koko animaation jos pidän näppäintä pohjassa.
Mutta jos siis haluan laittaa että kun näppäintä "S" painetaan kerran, se näyttäisi koko animaation, miten se onnistuisi?
DrawAnimation piirtää animaation, joten sitä on kutsuttava, joka kerta silmukassa ja PlayAnimation aloittaa animaation toiston.

Todennäköisesti haluat, että animaatio näytetään kokonaan kun S:ssää on painettu ja peli jatkuu sitten?
Siinä tapauksessa tälläinen silmukka voisi olla kätevä:

Code: Select all

If KeyHit (cbKeyS) And ObjectsOverlap (pelihahmo, vihu) Then
    //tässä kannattaa piilottaa objectit, että ne eivät näy päällä...
    animaatio = PlayAnimation("animaation polku") //Aloitetaan toisto
    repeat
        DrawAnimation animaatio //Piirretään animaation ruudulle
        DrawScreen
    Until Not AnimationPlaying(animaatio) //Kun animaatio on toistettu jatketaan...
    //Tässä objektit takaisin näkyviksi...
EndIf
Niin, mutta ratkaisussasihan kaikki muu jäätyisi (viholliset, pelin muu logiikka...) toiston ajaksi, eikö niin?
Sry tuplat ku en voinu edit-lainata
<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...
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2011)

Post by Latexi95 »

naputtelija wrote: Niin, mutta ratkaisussasihan kaikki muu jäätyisi (viholliset, pelin muu logiikka...) toiston ajaksi, eikö niin?
Sry tuplat ku en voinu edit-lainata
Totta, mutta niin on tarkoituskin. Ajattelin, että kyse on jostain vuoropohjaisesta tappelupelistä, ja ruudulle yritetään saada totain superisku-videon pätkää, tai jotain. Huomaa, että kysymyksessäkin oli DrawAnimation eli animaatiosta on kysymys eikä animoidusta objektista niin kuin esimerkissäsi...

Itse jos lainaan toista editissä niin ensiksi painan "lainaa", niin kuin postaisin uuden viestin, mutta kopioinkin tekstin ja sitten edittaan sen viestiini kera [ quote="lainattavan nimi"] tagin... Mutta olisi kyllä ihan kätevää, jos edelliset viestit näkyisivät editoidessakin.
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 »

Pisteet eli maalit ei näy.Fontin väri: Kokeilin kaikenlaisia värejä mitä päähän juolahti.Kentän väri valkoinen. :?: :!: :ugeek:
Aloittelija koodari joka
osaa jo jotain (ehkä) :)
KOTISIVU
Locked