Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset

Post by matti3 »

Eli. Väsäilin top down shooter engineä, mutta törmäsin ongelmaan tehdessäni ampumista.
Error:
Memory acces violate mikä lie.

http://paste.servut.us/ysqb
siinä koodi ^^

Jos joku löytää ja kertoaa ongelman syyn niin olisin kiitollinen, koska itse en sitä löydä millään. :)
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons »

Sen siitä saa kun kopioi suoraan! :evil: Sinulla ei ole missään määritelty tuota pati:a
eli siellä on:
ammus\obj=cloneobject(pati)<<<<< tuossa!! ja missä lukee?:

pati=loadobject("media\ammus.bmp",72)
showobject pati,off

lisääppä! :roll:
Image
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

Saisko hieman esimerkkiä, miten saan CBSK:n Janelkasessa ruudun ns. Käynnistä-palkkiin?
Yritin saada sen toimimaan mutta sehän sekoili kokoajan.
Palkki kumminkin toimi.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
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

Post by -Z- »

Sitten tarvitaan taas cb-foorumin ongelmanratkaisijavelhoja

Code: Select all

FrameLimit 60
Type BULLET
    Field _type
    Field XPos
    Field YPos
    Field dir
End Type
SCREEN 1024,768,0,0
ShowMouse OFF
fontti=LoadFont("system",30)
SetFont fontti
Repeat
    DrawToWorld ON
    an+10
    If an>360 Then an=0
    Drawship(x,y,an,255,255,255)
    DrawScreen
    If Distance(x,y,destx,desty)>3 Then
        Color cbred
        Circle destx-3,desty-3,7,0
        x=x+Sin(GetAngle(x,y,destx,desty)+90)*5
        y=y+Cos(GetAngle(x,y,destx,desty)+90)*5
    EndIf
    If MouseHit(1) Then 
        tapdur = Timer()
        TapX=MouseWX()
        TapY=MouseWY()
    EndIf
    If MouseUp(1) Then
        If Timer()<tapdur+1000 And MouseWX()>tapx-25 And MouseWX()<tapx+25 And MouseWY()>tapY-25 And MouseWY()<tapY+25 Then
            DestX=MouseWX()
            DestY=MouseWY()
        ElseIf Timer()<tapdur+1000 And Distance(MouseWX(),MouseWY(),tapx,tapy)>40 Then
            shot.BULLET = New(BULLET)
            shot\dir = GetAngle(TapX,TapY,MouseWX(),MouseWY()) 
            shot\xpos= X+Sin(shot\dir)*10
            shot\ypos= Y+Cos(shot\dir)*10
        EndIf
    EndIf
    
    Gosub updatebullets
    
    Color cbwhite
    Text 0,0, tapdur
Forever

updatebullets:
For shot.BULLET = Each BULLET
    shot\XPos=shot\Xpos+Sin(shot\dir)*7
    shot\YPos=shot\YPos+Cos(shot\dir)*7
    For i= 1 To 9
        deg=25*i
        Color 255-deg,0,0
        Dot Sin(shot\xpos-90)*i,cos(shot\ypos-90)*i
    Next i
Next shot
Return  

Function DrawShip(x,y,a,r,g,b)
    topX#=X+Sin(a)*15
    TopY#=Y+Cos(a)*15
    LX#=X+Sin(a-120)*15
    LY#=Y+Cos(a-120)*15
    RX#=X+Sin(a+120)*15
    RY#=Y+Cos(a+120)*15
    Color r,g,b
    Line topx,topy,lx,ly
    Line topx,topy,rx,ry
    Line lx,ly,rx,ry
EndFunction
Eli:
-miksi Ammus ei liiku siihen suuntaan kuin pitäisi? (ammunta tapahtuu painamalla hiiren nappia pohjassa, vetämällä johonkin suuntaan ja päästämällä namiskasta irti alle sekunnissa)
-ja miksi se venkoaa, eikä pysy suorana kuten kunnon ammuksen pitäisi?

Sin ja Cos lienevät kaiken takana, ja en niiden vekkuleiden kanssa mikään mestari ole. Joten vähän apua tarvitaan.

Se pieni teksti: todennäköisesti syynä on kuitenkin edellisen yön unettomuudesta johtuva väsymys, eli älkää naurako liikaa tyhmälle virheelle.
"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
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG »

Cosinia ja plussaamista X-koordinaatin kanssa, Siniä ja vähentämistä Y-koordinaatin kanssa. Tuossa koodissasi näyttäisi olevan nuo väärin päin. : ]
Hengität nyt manuaalisesti.
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

Post by -Z- »

DatsuniG wrote:Cosinia ja plussaamista X-koordinaatin kanssa, Siniä ja vähentämistä Y-koordinaatin kanssa. Tuossa koodissasi näyttäisi olevan nuo väärin päin. : ]
Siis häh, mitäh? minkä pitää olla ja miten päin? kaikki sinit on äksän ja kosinit yyn kanssa kimpassa, näin on aina ennenki toiminut.

Ainiin, ja ammukset tosiaan spawnaavat aina keskelle ruutua, eivät aluksen päälle. Enkä tähänkään tajunnut syytä.
"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
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Tyhmät kysymykset

Post by regalis »

Ööh... Cos on x-koordinaattien laskemiseen ja sin y-koordinaattien. En tiedä sitten miten olet joskus aikaisemmin saanut ne toimimaan eri päin...
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: Tyhmät kysymykset

Post by Dande »

-Z- wrote:Siis häh, mitäh? minkä pitää olla ja miten päin? kaikki sinit on äksän ja kosinit yyn kanssa kimpassa, näin on aina ennenki toiminut.
FAIL! Kannattaa perehtyä vähän noihin trigonometrisiin funktioihin ennen käyttöä (klikkaa kuvaa, niin saat lisäselitystä)
Image
Ja vielä pari lainausta:
http://matwww.ee.tut.fi/jkkm/trigonom/trigo03.htm wrote:Määritelmä 4. Kulman sini on kulmaa vastaavan kehäpisteen y -koordinaatti.
Määritelmä 5. Kulman kosini on kulmaa vastaavan kehäpisteen x -koordinaatti.
Regalis näköjään ehti ensin, mutta laitan nyt tämän tähän tuon kuvan takia, joka mahdollisesti selittää asiaa (ja ainakin sen lähteen pitäisi selittää)
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset

Post by koodaaja »

Tässä vielä pieni koodinpätkä sinin ja kosinin tyypillisimmästä käytöstä, eli jonkin liikuttamisesta tietty matka tiettyyn kulmaan.

Code: Select all

x# = x# + d#*cos(a#)
y# = y# - d#*sin(a#)
CB:n koordinaatit ovat käänteiset, monissa muissa kielissä myös y:hyn lisätään. D on tässä siis etäisyys ja a kulma. Näitä kannattaa pohtia ihan ajan kanssa, sillä niitä tulee tarvitsemaan paljon jos aikoo tehdä graafista kikkailua tai pelejä kehittyneemmillä kielillä, joissa valmista objektisysteemiä ei ole. Ja ihan matemaattiseltakin kannalta ovat vekkuleita otuksia.
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

Post by -Z- »

Mmmjuuu... Katotaan jos saataisiin jotain tolkkua tähän hommaan, on näemmä aika hyvin pyyhkiytynyt muistista nämä säännöt... Kiitoksia avusta vaan kaikille.
"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
Luuster
Newcomer
Posts: 30
Joined: Mon Feb 23, 2009 7:04 pm
Location: #joku vika jossakin#

Re: Tyhmät kysymykset

Post by Luuster »

Yksinkertainen juttu , mutta milläs saisin ton ukon liikkumaan suoraan pisteestä a -> b.

Ja koodia

Code: Select all

SetWindow "Ukko"

hx#= 50 'liuku lukuina koska vauhtia on säädetty
hy#= 50 'näillä
dx#=50
dy#=50

ase = 0


Repeat

    'komento piste
    If MouseHit(1)
        hx=MouseX()
        hy=MouseY()
    EndIf
    
    Color 255,0,0
    Dot hx+2,hy+6
    Color 255,255,255
    
    'ukon grafiikat
    Dot dx-1,dy+13
    Dot dx+4,dy+13
    Circle dx,dy,4
    Box dx,dy+4,4,4
    Line dx,dy+8,dx,dy+12
    Line dx+3,dy+8,dx+3,dy+12
      
    'liikkuminen x akselilla
    If dx > hx Then
        dx = dx-0.5
    ElseIf dx < hx Then
        dx = dx+0.5
    EndIf
    
    'liikkuminen y akselilla
    If dy > hy Then
        dy = dy-0.5
    ElseIf dy < hy Then
        dy = dy+0.5
    EndIf    
    
    'aseen vaihto
    If KeyHit(57) And ase=0
        ase=1
    ElseIf KeyHit(57) And ase=1
        ase=0
    EndIf
    
    If ase=1 Then
       Line dx+3,dy+4,dx+7,dy+6
       Line dx+7,dy+6,dx+7,dy
    EndIf   
    
    DrawScreen
    
Forever
cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 7:47 am

Re: Tyhmät kysymykset

Post by cool-driver »

Tarvitsen yhteen peliini neuvoa. Miten saan tehtyä tuon vuoden vaihtumisen. Päivä, kuukausi ja vuosi ovat erillisiä muuttujia.
Meneekö se ihan tällä tavalla:

Code: Select all

If päivä = 31 And kuukausi = 12 Then päivä = 1 And kuukausi = 1 And vuosi +1
Projektit:
Ships Income Liikenne Suomesta Beta 2: valmis. Lataa tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
Diktaattori Beta 2: valmis. Lataa Tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

Code: Select all

If päivä = 31 And kuukausi = 12 Then
    päivä = 1
    kuukausi = 1
    vuosi +1
endif
Käytit and-operaattoria virheellisesti.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset

Post by Awaclus »

EDIT: hitailen
cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 7:47 am

Re: Tyhmät kysymykset

Post by cool-driver »

Grandi wrote:

Code: Select all

If päivä = 31 And kuukausi = 12 Then
    päivä = 1
    kuukausi = 1
    vuosi +1
endif
Käytit and-operaattoria virheellisesti.
Kiitos

Entä miten saan näytettyä tuon päivämäärän tässä muodossa: 12.10.1972? Kuten jo sanoin päivä, kuukausi ja vuosi ovat kukin om muuttujansa.
Projektit:
Ships Income Liikenne Suomesta Beta 2: valmis. Lataa tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
Diktaattori Beta 2: valmis. Lataa Tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: Tyhmät kysymykset

Post by regalis »

cool-driver wrote:Entä miten saan näytettyä tuon päivämäärän tässä muodossa: 12.10.1972? Kuten jo sanoin päivä, kuukausi ja vuosi ovat kukin om muuttujansa.

Code: Select all

Text x, y, päivä +"."+ kuukausi +"."+ vuosi
matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 8:37 pm

Re: Tyhmät kysymykset

Post by matti3 »

Miten voisin tehdä sellaisen, että käyttäjä saa itse valita muuttujan arvon esim:
Kuinka paljon ostat? Sitten tähän se summa jonka käyttäjä haluaa. Tieto pitäisi tallentua muuttujaan, koska sitähän luonnollisesti käytetään myöhemmin. :D
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion »

matti3 wrote:Miten voisin tehdä sellaisen, että käyttäjä saa itse valita muuttujan arvon esim:
Kuinka paljon ostat? Sitten tähän se summa jonka käyttäjä haluaa. Tieto pitäisi tallentua muuttujaan, koska sitähän luonnollisesti käytetään myöhemmin. :D
Katsoppa manuaalista komento "Input"
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
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: Tyhmät kysymykset

Post by vilQuri »

VesQ wrote:
matti3 wrote:Miten voisin tehdä sellaisen, että käyttäjä saa itse valita muuttujan arvon esim:
Kuinka paljon ostat? Sitten tähän se summa jonka käyttäjä haluaa. Tieto pitäisi tallentua muuttujaan, koska sitähän luonnollisesti käytetään myöhemmin. :D
Katsoppa manuaalista komento "Input"
Ja huvikseni laitoin vielä pienen esimerkin:

Code: Select all

AddText "Siikaa myynnissä 1 kg 20e"

Repeat

    Locate 0,20 : s = Input ("Kuinkas monta kiloa ostat?: ") //Se käyttäjän määrittelemä muuttuja
    If KeyHit(cbkeyreturn) Then Locate 0,40: AddText "Ostit "+s+" kg siikaa! Se maksoi: "+s*20+"e"
    DrawScreen()
    
Until EscapeKey()
Last edited by vilQuri on Wed Mar 11, 2009 8:44 pm, edited 1 time in total.
Igr0
Active Member
Posts: 110
Joined: Thu Oct 02, 2008 8:04 pm
Location: Helsinki, Finland

Re: Tyhmät kysymykset

Post by Igr0 »

Nyt kyllä olen ymmälläni... :shock: Cos 90 astettahan on 0, mutta CB heittää arvoksi jonkun -4.37114e-008. Osaisiko joku selittää tätä? Eihän tuo kyllä koodamista juurikaan haittaa, ihmetyttää vaan.

Code: Select all

Text 0,0,Cos(90)

DrawScreen

WaitKey 
Locked