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ä.
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.
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.
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
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?
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
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
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ää
[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 ->
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.