Tyhmät kysymykset (I/2011)
Re: Tyhmät kysymykset (I/2011)
Jos kenttä pitää reloadata, niin kannattaisi nollata muttujat ja aliohjelmalla alustaa kenttä.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Tyhmät kysymykset (I/2011)
MaGetzUb: Ei ole mitään muuttujia, paitsi objektit, jotka kaikki poistetaan aliohjelmassa alusta_kenttä.
Leikittyäni vähän lisää SetWindowilla, käy ilmi, että vika ei ollutkaan ObjectsOverlapissa vaan ihan muualla.
Vika on siinä, että kun kenttä on alustunut ihan normaalisti, ja ensimmäisen kerran kun sen jälkeen kutsutaan DrawGame, tulee mav. Kenttä alustetaan siis täysin samalla tavalla silloin, kun kenttään siirrytään ensimmäistä kertaa ja kun kenttä täytyy alustaa uudestaan sen takia, että pelaaja on kuollut.
Sen lisäksi, kun alusta_kenttä:ssä lisätään tähän kohtaan Wait 100:
...ei tulekaan mavia, vaan sen sijaan kentän alustamisen jälkeen mikään objekti ei näy ruudulla. Tai siis ainakin edellisellä kerralla sillä oli tämänlainen vaikutus, nyt kun kokeilin uudestaan, niin tulee silti mav.
Leikittyäni vähän lisää SetWindowilla, käy ilmi, että vika ei ollutkaan ObjectsOverlapissa vaan ihan muualla.
Vika on siinä, että kun kenttä on alustunut ihan normaalisti, ja ensimmäisen kerran kun sen jälkeen kutsutaan DrawGame, tulee mav. Kenttä alustetaan siis täysin samalla tavalla silloin, kun kenttään siirrytään ensimmäistä kertaa ja kun kenttä täytyy alustaa uudestaan sen takia, että pelaaja on kuollut.
Sen lisäksi, kun alusta_kenttä:ssä lisätään tähän kohtaan Wait 100:
Code: Select all
If newobjecttype = 7 Then 'jos uusi objekti on tyypiltään näkymätön sivuttain kulkeva haamu
newrl.rl = New (rl)
newrl\obj = CloneObject (stick_master) 'ihan sama, mikä objekti kloonataan tässä vaiheessa
newrl\suunta = 2.1
newrl\invisibility = 1
PositionObject newrl\obj, Int (ReadLine (thislevelfile)), Int(ReadLine(thislevelfile))
Wait 100
EndIf
Re: Tyhmät kysymykset (I/2011)
Miten saan tarkistettua tuolla pickimagecolorilla onko se auto mustalla alueella. Kokeilin if lauseella mutta tulee erroria.temu92 wrote: Hidastus radan ulkopuolella: käytä erillistä mustavalkoista kuvaa radan lisäksi (olettaen että olet toteuttanut radat käyttäen kuvia) jossa valkoinen on rata ja musta on kaikki muu alue. Tarkista sitten onko pelaajan auto mustalla alueella (PickImageColor/PickImageColor2 funktiolla saat värin) ja jos niin, hidasta auton vauhtia.
Re: Tyhmät kysymykset (I/2011)
Katso manuaalista.rallipelit wrote:Miten saan tarkistettua tuolla pickimagecolorilla onko se auto mustalla alueella. Kokeilin if lauseella mutta tulee erroria.temu92 wrote: Hidastus radan ulkopuolella: käytä erillistä mustavalkoista kuvaa radan lisäksi (olettaen että olet toteuttanut radat käyttäen kuvia) jossa valkoinen on rata ja musta on kaikki muu alue. Tarkista sitten onko pelaajan auto mustalla alueella (PickImageColor/PickImageColor2 funktiolla saat värin) ja jos niin, hidasta auton vauhtia.
Re: Tyhmät kysymykset (I/2011)
Onko joku tehnyt funktion joka kertoo mistä suunnasta törmäys, ImagesCollide, tapahtuu kuvilla?
Re: Tyhmät kysymykset (I/2011)
No sen saat helposti GetAngle:lla. Syötät siihen vaan kuvien koordinaatit. Jos kuvat on erikokoset niin sillon kannattaa ottaa kulma kuvien keskiosasta. Muista että koordinaattien järjestyskin vaikuttaa.
Re: Tyhmät kysymykset (I/2011)
Ei minun mielestäni, mutta jotenkin näin sen pitäisi mennä.N_S wrote:Onko joku tehnyt funktion joka kertoo mistä suunnasta törmäys, ImagesCollide, tapahtuu kuvilla?
Code: Select all
'Origo keskelle(koordinaattien pitää olla positiivisia)
ix = ImageWidth(kuva1) / 2
iy = ImageHieght(kuva1) / 2
ax = ImageWidth(kuva2) / 2
ay = ImageHieght(kuva2) / 2
'lasketaan kulma
kulma = GetAngle(ix, iy, ax, iy)
EDIT:
Oon hidas Temu kerkes ensin.
Hahaa!!! Tuhlasit elinaikaasi tyhmän viestini lukemiseen...
Projektit:
Projektit:
Re: Tyhmät kysymykset (I/2011)
Aivan, kiituksiatemu92 wrote:No sen saat helposti GetAngle:lla. Syötät siihen vaan kuvien koordinaatit. Jos kuvat on erikokoset niin sillon kannattaa ottaa kulma kuvien keskiosasta. Muista että koordinaattien järjestyskin vaikuttaa.
Re: Tyhmät kysymykset (I/2011)
Yritän kirjoittamallani scaleimage funktiolla pienentää todella suurta kuvaa.. (2200x1200px), mutta tämä huutaa että ImageWidth failed! Onko se cb:n kuvilla joku rajoitus leveydessä?
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Tyhmät kysymykset (I/2011)
Tein peliini "kentän" tilesterillä, ja siinä on talo minne voi mennä, ja tulla ulos, mutta kun on talon sisällä peli alkaa tökkimään ja on hidas, mutta kun taas menee pihalle jossa on pelkkää vihreää nurmikkoa pelistä tulee taas nopea.
Aluksi käytin framelimit 70, otin sen pois, mutta silti se on talon "sisällä" todella hidas.
Mistä johtuu , ja mitenkä saisin asian korjattua?
Aluksi käytin framelimit 70, otin sen pois, mutta silti se on talon "sisällä" todella hidas.
Mistä johtuu , ja mitenkä saisin asian korjattua?
Re: Tyhmät kysymykset (I/2011)
Sitä koodiakin kannattas pistää, monellakaan kun ei ole varaa ostaa tai huollattaa kristallipalloja niin koodin näkeminen on vähän hankalaa. Onko peli ylhäältä- vai sivultapäin kuvattu? Selityksestäsi en osaa todellakaan arvata mikä on vikana, ja jos vika on Tilesteriin liittyvä, en osaa sanoa kun ei ole tullut sitä kertaakaan käytettyä mappien tekemiseen (lähinnä vaan A Stigmatoria).
Re: Tyhmät kysymykset (I/2011)
Miksi en saa kutsuttua dll:stä funktiota? Kokeilin ihan yksinkertaista c koodia testatakseni kutsumisen toimintaa, mutta havaitsin, että eihän se onnistu...
dll.c
test.cb
Tuo koodi vain tulostaa 0:lla. Vaikka sen pitäisi tulostaa 255. En tajua mikä voisi olla vikana. (Nuo makrot on esan dll esimerkin...)
dll.c
Code: Select all
__declspec( dllexport ) void test( const void * _in, int in_size, void * _out, int out_sz )
{
POKEBYTE(OUTPUT_MEMBLOCK,0,255);
}
Code: Select all
mem = MakeMEMBlock(1)
CallDLL CHIPMUNK_DLL_PATH,"test",0,mem
Print PeekByte(mem,0)
WaitKey
EDIT:
Kääntäjänä Visual Studio 2010
EDIT:
Ongelma ratkaistu...
Re: Tyhmät kysymykset (I/2011)
Kun mulla on nyt tällänen koodinpätkä, ja minulla on animaatiot hahmosta, mitenkä saisin tämän näyttämään eri animaation esim. jos tyhjä objekti laitetaan positiivisille koordinaateille ja eri jos negatiivisille?
Code: Select all
SCREEN 800,600
FrameLimit 50
ClsColor cbwhite
unit = LoadAnimObject("spear_man_unit_front.bmp",53,97,0,5)
MaskObject unit, cbWhite
ShowObject unit, OFF
ObjectRange unit, 53,97
ObjectPickable unit,1
spear_man = CloneObject (unit)
ObjectRange spear_man, 53, 97
ObjectPickable spear_man,1
hiiri = LoadImage("cursor.bmp")
ShowMouse hiiri
tyhjä = MakeObject()
a = 0
Repeat
If a = 1 Then Gosub spear_man_move
CameraPick MouseX(), MouseY()
DrawGame
e = PickedObject()
Color cbBlack
If e And MouseHit(1) Then
Color cbRed
If e = spear_man Then
Text 0,0,"unit"
a = 1
EndIf
spear_man_move:
If MouseHit(1) Then
PositionObject tyhjä,MouseWX(),MouseWY()
point=1
EndIf
If point=1 Then
PointObject PickedObject(),tyhjä
MoveObject PickedObject(),3
PaintObject spear_man, unit
PlayObject spear_man,2,11,0.25
Else
PlayObject spear_man, 0
EndIf
If ObjectsOverlap(PickedObject(),tyhjä) Then
point=0
EndIf
If MouseHit(2) Then a = 0
EndIf
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset (I/2011)
Siis mitähän nyt tarkoitat? Että jos hahmo on negatiivisilla koordinaateilla, näytetään erilaisia animaatio frameja, vai kun liikutaan vasemmalle (negatiivisia koordinaatteja päin) näytetään vasemmallepäin kuuluvia animaatio frameja?Ihminen wrote:Kun mulla on nyt tällänen koodinpätkä, ja minulla on animaatiot hahmosta, mitenkä saisin tämän näyttämään eri animaation esim. jos tyhjä objekti laitetaan positiivisille koordinaateille ja eri jos negatiivisille?Code: Select all
SCREEN 800,600 FrameLimit 50 ClsColor cbwhite unit = LoadAnimObject("spear_man_unit_front.bmp",53,97,0,5) MaskObject unit, cbWhite ShowObject unit, OFF ObjectRange unit, 53,97 ObjectPickable unit,1 spear_man = CloneObject (unit) ObjectRange spear_man, 53, 97 ObjectPickable spear_man,1 hiiri = LoadImage("cursor.bmp") ShowMouse hiiri tyhjä = MakeObject() a = 0 Repeat If a = 1 Then Gosub spear_man_move CameraPick MouseX(), MouseY() DrawGame e = PickedObject() Color cbBlack If e And MouseHit(1) Then Color cbRed If e = spear_man Then Text 0,0,"unit" a = 1 EndIf spear_man_move: If MouseHit(1) Then PositionObject tyhjä,MouseWX(),MouseWY() point=1 EndIf If point=1 Then PointObject PickedObject(),tyhjä MoveObject PickedObject(),3 PaintObject spear_man, unit PlayObject spear_man,2,11,0.25 Else PlayObject spear_man, 0 EndIf If ObjectsOverlap(PickedObject(),tyhjä) Then point=0 EndIf If MouseHit(2) Then a = 0 EndIf DrawScreen Until EscapeKey()
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: Tyhmät kysymykset (I/2011)
Mikähän tässä mättää:
Eli funkkarin tehtävänä olisi pilkkoa animoitu kuva frameiksi ja pyörittää frameja showmousena, eli animoida hiiri.Kun hiiren laittaa ikkunan päälle, ei näy mitään. Tuntuu että jokin oleellinen on pielessä mutta en saa vaan päähän sitä...
Code: Select all
Repeat
AnimMouse ("Media/note.bmp",32,32,8)
DrawScreen
Forever
Function AnimMouse (filu$, fleveys, fkorkeus, pituus)
monistus$ = "k"
If valmiskuva = 0 Then
raakakuva = LoadImage (filu$)
For määrä = 0 To pituus
nimi = String (monistus$,määrä)
nimi = MakeImage (fleveys, fkorkeus)
CopyBox fleveys * määrä, fkorkeus,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (nimi)
Next määrä
DeleteImage raakakuva
valmiskuva = valmiskuva + 1
EndIf
For määrät = 0 To pituus
nimi = String (monistus$,määrä)
ShowMouse nimi
Wait 100
Next määrät
EndFunction
Re: Tyhmät kysymykset (I/2011)
Tuohon lainaukseen laitoin ensimmäisen ongelmakohdan ainakin. Et ole määritellyt nimi-muuttujaa merkkijonoksi ja vaikka olisitkin, yrität sen jälkeen laittaa siihen kuvaa.Peltsi wrote:Mikähän tässä mättää:
Eli funkkarin tehtävänä olisi pilkkoa animoitu kuva frameiksi ja pyörittää frameja showmousena, eli animoida hiiri.Kun hiiren laittaa ikkunan päälle, ei näy mitään. Tuntuu että jokin oleellinen on pielessä mutta en saa vaan päähän sitä...Code: Select all
... nimi = String (monistus$,määrä) nimi = MakeImage (fleveys, fkorkeus) ...
EDIT: Tarkemmin katsottuna niin en oikein edes ymmärrä, mitä haet takaa koko String-funktion käytöllä...
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (I/2011)
Tämmöstä kokeilin myös, mutta ei paljon parantunut:VesQ wrote: Tuohon lainaukseen laitoin ensimmäisen ongelmakohdan ainakin. Et ole määritellyt nimi-muuttujaa merkkijonoksi ja vaikka olisitkin, yrität sen jälkeen laittaa siihen kuvaa.
EDIT: Tarkemmin katsottuna niin en oikein edes ymmärrä, mitä haet takaa koko String-funktion käytöllä...
Code: Select all
Type KUVAT
Field img
End Type
Repeat
AnimMouse ("Media/note.bmp",32,32,8)
DrawScreen
Forever
Function AnimMouse (filu$, fleveys, fkorkeus, pituus)
If valmiskuva = 0 Then
raakakuva = LoadImage (filu$)
For määrä = 0 To pituus
kuva.KUVAT = New (KUVAT)
kuva\img = MakeImage (fleveys, fkorkeus)
CopyBox fleveys * määrä, fkorkeus,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (kuva\img)
Next määrä
DeleteImage raakakuva
valmiskuva = valmiskuva + 1
EndIf
For kuva.KUVAT = Each KUVAT
ShowMouse kuva\img
Wait 100
Next kuva
EndFunction
Re: Tyhmät kysymykset (I/2011)
Haluat varmaan pikemminkin aloittaa CopyBoxilla kopioinnin koordinaateista 0,0 kuin fleveys*määrä, fkorkeus.Peltsi wrote:Tämmöstä kokeilin myös, mutta ei paljon parantunut:VesQ wrote: Tuohon lainaukseen laitoin ensimmäisen ongelmakohdan ainakin. Et ole määritellyt nimi-muuttujaa merkkijonoksi ja vaikka olisitkin, yrität sen jälkeen laittaa siihen kuvaa.
EDIT: Tarkemmin katsottuna niin en oikein edes ymmärrä, mitä haet takaa koko String-funktion käytöllä...Code: Select all
CopyBox fleveys * määrä, fkorkeus,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (kuva\img)
Eli tuon edellisen kohdan pitäisi vissiin olla näin:
Code: Select all
CopyBox fleveys * määrä, 0,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (kuva\img)
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
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: Tyhmät kysymykset (I/2011)
Joo, siinä oli näköjään käynyt moka, ja sitten piti vielä lisätä loppuun yksi drawscreen...VesQ wrote:Haluat varmaan pikemminkin aloittaa CopyBoxilla kopioinnin koordinaateista 0,0 kuin fleveys*määrä, fkorkeus.Peltsi wrote:Tämmöstä kokeilin myös, mutta ei paljon parantunut:VesQ wrote: Tuohon lainaukseen laitoin ensimmäisen ongelmakohdan ainakin. Et ole määritellyt nimi-muuttujaa merkkijonoksi ja vaikka olisitkin, yrität sen jälkeen laittaa siihen kuvaa.
EDIT: Tarkemmin katsottuna niin en oikein edes ymmärrä, mitä haet takaa koko String-funktion käytöllä...Code: Select all
CopyBox fleveys * määrä, fkorkeus,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (kuva\img)
Eli tuon edellisen kohdan pitäisi vissiin olla näin:Code: Select all
CopyBox fleveys * määrä, 0,fleveys, fkorkeus, 0, 0, Image(raakakuva),Image (kuva\img)
Code: Select all
For kuva.KUVAT = Each KUVAT
ShowMouse kuva\img
Drawscreen
Wait 100
Next kuva
Re: Tyhmät kysymykset (I/2011)
Siis tarkoitin että jos hahmoa liikutetaan...MaGetzUb wrote:Siis mitähän nyt tarkoitat? Että jos hahmo on negatiivisilla koordinaateilla, näytetään erilaisia animaatio frameja, vai kun liikutaan vasemmalle (negatiivisia koordinaatteja päin) näytetään vasemmallepäin kuuluvia animaatio frameja?Ihminen wrote:Kun mulla on nyt tällänen koodinpätkä, ja minulla on animaatiot hahmosta, mitenkä saisin tämän näyttämään eri animaation esim. jos tyhjä objekti laitetaan positiivisille koordinaateille ja eri jos negatiivisille?Code: Select all
SCREEN 800,600 FrameLimit 50 ClsColor cbwhite unit = LoadAnimObject("spear_man_unit_front.bmp",53,97,0,5) MaskObject unit, cbWhite ShowObject unit, OFF ObjectRange unit, 53,97 ObjectPickable unit,1 spear_man = CloneObject (unit) ObjectRange spear_man, 53, 97 ObjectPickable spear_man,1 hiiri = LoadImage("cursor.bmp") ShowMouse hiiri tyhjä = MakeObject() a = 0 Repeat If a = 1 Then Gosub spear_man_move CameraPick MouseX(), MouseY() DrawGame e = PickedObject() Color cbBlack If e And MouseHit(1) Then Color cbRed If e = spear_man Then Text 0,0,"unit" a = 1 EndIf spear_man_move: If MouseHit(1) Then PositionObject tyhjä,MouseWX(),MouseWY() point=1 EndIf If point=1 Then PointObject PickedObject(),tyhjä MoveObject PickedObject(),3 PaintObject spear_man, unit PlayObject spear_man,2,11,0.25 Else PlayObject spear_man, 0 EndIf If ObjectsOverlap(PickedObject(),tyhjä) Then point=0 EndIf If MouseHit(2) Then a = 0 EndIf DrawScreen Until EscapeKey()