Tyhmät kysymykset (I/2010)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
User avatar
Latexi95
Guru
Posts: 1164
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2010)

Post by Latexi95 » Fri May 21, 2010 4:33 pm

DJ-Nerd wrote:
Nameless_One wrote: 2. Kuinka tehdään tekoäly, jossa on pelaaja ja jahtaaja? Jahtaaja jahtaa pelaajaa fiksusti, eli se ei törmää seinään vaan kiertää sen.
Tämä ei ole maailman paras vaihtoehto, mutta jos halutaan täsmällinen seuraamissysteemi, kannattaa tehdä tyhjillä objekteilla "jalanjälki" seurattavalle objektille. eli aina kun jahdattava liikkuu, se piirtää näkymättömiä objekteja tasaisin väliajoin joiden perässä jahtaaja voi kulkea. En tiedä tarkoititko tätä.
Kai se noinkin toimisi, mutta suosittelisin jotakin reitinetsintä algoritmia. Käytä foorumin hakua, niin pitäisi löytyä.
EDIT:

Haulla löytyi ainakin tuollainen Otto90x:n tekemä -> viewtopic.php?f=11&t=892&p=14351&hilit= ... go*#p14351
Mutta kuten huomaat esimerkkiä kokeilemalla reitinetsintä on aika raskas operaatio cb:lle.

Last edited by Latexi95 on Fri May 21, 2010 4:39 pm, edited 1 time in total.

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by Awaclus » Fri May 21, 2010 4:39 pm

Nameless_One wrote:1. Miten CoolBasiciin tehdään omat fontit?
No, miten nyt yleensä fontteja tehdään (googleta FontCreator).Sitten se vain laitetaan pelin kansioon ja pistetään koodiin "LoadFont ("mun_aika_1337_fontti").
Last edited by Awaclus on Fri May 21, 2010 7:42 pm, edited 1 time in total.

User avatar
Pate5
Artist
Artist
Posts: 551
Joined: Tue Aug 28, 2007 4:53 pm
Location: Vantaa

Re: Tyhmät kysymykset (I/2010)

Post by Pate5 » Fri May 21, 2010 5:04 pm

Chaosworm wrote:No, miten nyt yleensä fontteja tehdään (googleta FontCreator). Sitten se vain laitetaan pelin kansioon ja pistetään koodiin "LoadFont ("mun_aika_1337_fontti").
Eipä toimi näin. CB suostuu lataamaan ainoastaan Windowsiin asennetut(eli Windowsin fonttikansiossa) fontit LoadFont -komennolla. Fontin voi toki yrittää kopioida pelin kansiosta windowsin fonttikansioon, en tosin lähtisi suosittelemaan tätä, koska viruksentorjuntaohjelmat ei tästä hirveästi tykkää. Kannattaa tyytyä käyttämään perusfontteja, jotka löytyvät joka koneelta.
CoolBasic henkilökuntaa
Graafikko

User avatar
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by temu92 » Fri May 21, 2010 5:49 pm

Tai sitten käyttää tätä mun tekemää rasterifonttisysteemiä (joka on jo vähän vanhahtava). Koodia tutkailemalla pystyy selvittämään miten omien fonttien teko onnistuu :P

Hene
Active Member
Posts: 122
Joined: Wed Apr 22, 2009 8:13 pm

Re: Tyhmät kysymykset (I/2010)

Post by Hene » Sat May 22, 2010 5:48 pm

E: Selvisi, oli yksi = -merkki liikaa

Miksei muuttuja "kaikki" päivity?

Code: Select all

start:
ClearText
Wait 100
aaa=loadsound("media/fist1.wav")
bbb=LoadSound("media/invader 2.wav")
randomi=Rand(1,50)
randomi2=Rand(1,50)
randomi3=Rand(1,50)
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen

If randomi=randomi2 Then
PlaySound aaa
Goto start2
EndIf
If randomi=randomi2=randomi3 Then
PlaySound bbb
EndIf

Goto start

start2:
ClearText
Wait 100
randomi3=Rand(1,50)
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen

If randomi2=randomi3 Then
PlaySound bbb
Goto start3
EndIf

Goto start2

start3:
ClearText
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen
Wait 1000
kaikki=+1
Goto start
"Baby," I said. "I'm a genius but nobody knows it but me."

User avatar
KilledWhale
Tech Developer
Tech Developer
Posts: 543
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Tyhmät kysymykset (I/2010)

Post by KilledWhale » Sat May 22, 2010 6:00 pm

Hene wrote:E: Selvisi, oli yksi = -merkki liikaa

Miksei muuttuja "kaikki" päivity?

Code: Select all

start:
ClearText
Wait 100
aaa=loadsound("media/fist1.wav")
bbb=LoadSound("media/invader 2.wav")
randomi=Rand(1,50)
randomi2=Rand(1,50)
randomi3=Rand(1,50)
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen

If randomi=randomi2 Then
PlaySound aaa
Goto start2
EndIf
If randomi=randomi2=randomi3 Then
PlaySound bbb
EndIf

Goto start

start2:
ClearText
Wait 100
randomi3=Rand(1,50)
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen

If randomi2=randomi3 Then
PlaySound bbb
Goto start3
EndIf

Goto start2

start3:
ClearText
AddText ""+randomi+""
AddText ""+randomi2+""
AddText ""+randomi3+""
AddText ""
AddText ""+kaikki+""
DrawScreen
Wait 1000
kaikki=+1
Goto start
kaikki=+1 asettaa muuttujan kaikki arvoksi 1, ei kasvata sitä. Oikeaoopisesti se menisi kaikki+1 tai kaikki=kaikki+1
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras

Eräs Vierailija

Re: Tyhmät kysymykset (I/2010)

Post by Eräs Vierailija » Sun May 23, 2010 12:03 pm

Kiitoksia tuosta aiemmasta vastauksesta, sen sain pienellä säätämisellä toimimaan.

Onko CB:ssä mitään keinoa tavallaan yhdistää DrawImageBoxia ja DrawGhostImagea, niin että voisi piirtää läpinäkyvästä kuvasta vain osan?

User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset (I/2010)

Post by Jonez » Sun May 23, 2010 12:44 pm

Luo uusi tyhjä kuva ja piirrä vanha kuva uuteen haluamiisi koordinaatteihin, jonka jälkeen voit piirtää uuden kuvan ruudulle DrawGhostImagella
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka » Sun May 23, 2010 4:02 pm

Koitan tehdä sinin ja cosin avulla viivaa jota voi kääntää nuolilla vasempaan ja oikeaan 1asteen kerrallaan. Voisiko joku kertoa mikä meni vikaan, kun nuoli pysyy suorassa ja kiertää ympyrää kun nuolia painaa?

Code: Select all

x1 = 10
x2 = 30
y1 = 50
y2 = 50
angle = 90
Repeat

    Line x1-Sin(angle)*20,y1+Cos(angle)*20,x2-Sin(angle)*20,y2+Cos(angle)*20
    
    If LeftKey() Then angle+1
    If RightKey() Then angle-1
    
    Text 0,0,"Angle : "+angle
    
  DrawScreen 
Forever 
Image

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (I/2010)

Post by phons » Sun May 23, 2010 4:04 pm

Cosini on x:lle ja sini y:lle. eli: x1 + cos(angle) jne.
Image

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka » Sun May 23, 2010 4:09 pm

phons wrote:Cosini on x:lle ja sini y:lle. eli: x1 + cos(angle) jne.
Hyvä kun korjastit, mutta ongelma pysyi. Viivan olisi tarkoitus pyöriä tällä tavalla:

Code: Select all

ukko = LoadObject("Media\guy.bmp", 360)
Repeat

    If LeftKey() Then TurnObject ukko,1
    If RightKey() Then TurnObject ukko,-1
    
  DrawScreen 
Forever
Kiitos phonssille ja Knoylle.
Last edited by Ilkka on Sun May 23, 2010 4:15 pm, edited 1 time in total.
Image

User avatar
Knoy
Active Member
Posts: 187
Joined: Fri Feb 12, 2010 11:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by Knoy » Sun May 23, 2010 4:10 pm

Näin...

Liikutit möys aloituspistettä, vaikka pitäisi liikuttaa vain lopetuspistettä...

Code: Select all

Repeat

    Line ScreenWidth()/2,ScreenHeight()/2,ScreenWidth()/2+Cos(angle)*20,ScreenHeight()/2-Sin(angle)*20
    
    If LeftKey() Then angle+1
    If RightKey() Then angle-1
    
    Text 0,0,"Angle : "+angle
    
  DrawScreen 
Forever

User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Tyhmät kysymykset (I/2010)

Post by Ilkka » Sun May 23, 2010 4:22 pm

Jatkoa sin ja cos ongelmiin: Laitoin viivan kulkemaan ylänuolesta eteenpäin. Mistä johtuu että viiva ei käänny sulavasti?

Code: Select all

x1 = 30
x2 = 30
y1 = 50
y2 = 50
angle = 90
Repeat

    Line x1,y1,x2+Cos(angle)*20,y2-Sin(angle)*20
    
    If LeftKey() Then angle+1
    If RightKey() Then angle-1
    
    If UpKey() Then x1 = x1 +Cos(angle) : y1 = y1 -Sin(angle): x2 = x2 +Cos(angle) : y2 = y2 -Sin(angle)
    
    Text 0,0,"Angle : "+angle
    
  DrawScreen 
Forever 
-Kiitos phons!
Last edited by Ilkka on Sun May 23, 2010 8:14 pm, edited 1 time in total.
Image

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset (I/2010)

Post by phons » Sun May 23, 2010 4:40 pm

Käytä desimaalilukuja:

Code: Select all

    Dim x1 As Float
    Dim y1 As Float
    Dim x2 As Float
    Dim y2 As Float
    
    x1 = 30
    x2 = 30
    y1 = 50
    y2 = 50
    angle = 90
    Repeat

        Line x1,y1,x2+Cos(angle)*20,y2-Sin(angle)*20
       
        If LeftKey() Then angle+1
        If RightKey() Then angle-1
       
        If UpKey() Then x1 = x1 +Cos(angle) : y1 = y1 -Sin(angle): x2 = x2 +Cos(angle) : y2 = y2 -Sin(angle)
       
        Text 0,0,"Angle : "+angle
       
      DrawScreen
    Forever 
Image

User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset (I/2010)

Post by buke44 » Tue May 25, 2010 2:01 pm

Onko kukaan tehny funktiota millä sais leikepöydälle kopioidun tekstin muuttujaan?

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2010)

Post by axu » Tue May 25, 2010 2:23 pm

buke44 wrote:Onko kukaan tehny funktiota millä sais leikepöydälle kopioidun tekstin muuttujaan?
Muistaakseni cbSDK:ssa oli tälläinen funktio cbAPIn kohdalla ;)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
buke44
Active Member
Posts: 169
Joined: Sat May 23, 2009 8:10 pm
Location: Tampere

Re: Tyhmät kysymykset (I/2010)

Post by buke44 » Tue May 25, 2010 3:42 pm

axu wrote:
buke44 wrote:Onko kukaan tehny funktiota millä sais leikepöydälle kopioidun tekstin muuttujaan?
Muistaakseni cbSDK:ssa oli tälläinen funktio cbAPIn kohdalla ;)
En saanut tota toimimaan. Palauttaa aina tekstinä neliöitä, tai numeroina nollan.
Tämä palauttaa aina 2.

Code: Select all

Include "cbAPI.cb"
a$=GetClipboardText$()

Repeat

Text 1, 1, Asc (a)
DrawScreen 
Forever 

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

Re: Tyhmät kysymykset (I/2010)

Post by DJ-Filbe » Tue May 25, 2010 3:53 pm

Mites muuten noita alkulukuja generoidaan CB:llä (tai C# :lla)?

OK, algoritmi löytynee melko helposti Googlesta, mutta entäs kun halutaankin ikuinen prosessointi? Ei riitä muuttujien tila kun tullaan tiettyyn pisteeseen (intin 2^32-1 ja ulongin 2^64-1 jos oikein käsitin). Miten yhdistelen int :jä (tai C# :n ulong :ja) toisiinsa saamalla äärettömän pitkän numeerisen muuttujatilan (siihen asti ääretön kun muistia riittää myllyssä, tosin olisi tiedostoonkin kiva noita lukuja tallennella prosessoroinnin välissä).

CB:n mahdollisuudet loppuvat todennäköisesti kumminkin nopeammin kun esim. C# :n, joten C# -esimerkkikin käy aivan loistavasti (toisaalta en C++ tai C-esimerkistäkään pahastu).
EDIT:

Älkääkä vaan sanoko että muistipaloja pitäisi jotenkin osata hyödyntää :D :) ;)


User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 10:01 pm
Contact:

Re: Tyhmät kysymykset (I/2010)

Post by Koodari » Tue May 25, 2010 4:01 pm

Hene wrote:

Code: Select all

...
AddText ""+randomi+""
...
On turhaa kirjoittaa esim: AddText ""+randomi+"" kun voit kirjoittaa AddText randomi
Last edited by Koodari on Tue May 25, 2010 4:02 pm, edited 1 time in total.
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]

Guest

Re: Tyhmät kysymykset (I/2010)

Post by Guest » Tue May 25, 2010 4:01 pm

DJ-Nerd wrote:Miten yhdistelen int :jä (tai C# :n ulong :ja) toisiinsa saamalla äärettömän pitkän numeerisen muuttujatilan (siihen asti ääretön kun muistia riittää myllyssä, tosin olisi tiedostoonkin kiva noita lukuja tallennella prosessoroinnin välissä).
Sä et yhdistelekään. Paras idea olisi varmaan C:n (Ja vain C:n, C++ ei tue!) long long unsigned int, joka on aina vähintään 64-bittinen.

Locked