Äh, olipa tyhmä moka : ( No jatketaan tästä sitten -->OonSuomesta wrote:Et ole määritellyt YLine muuttujaa string-tyyppiseksi, eli vaihdappas koodissasi YLine=ReadLine(f) tähän -->-Z- wrote:No voi jösses, kyllä se on ilmoitettu, en vain viisinyt koko koodia pastetaa tänne.MAVmaggot wrote:Vika ei ole x-muuttujassa vaan YLinessa. Esittele ensin YLine-merkkijono, eikä virheilmoitus enään häiritse.
Tässäpä tämä sitten on tulevien väärinkäsitysten välttämiseksi.Code: Select all
f = OpenToRead("world.txt") Global X,Y,f Repeat If KeyHit(cbkeyreturn) Then Text 0,0,GetPos() Text 0,12,X Text 0,24,Y DrawScreen Forever Function GetPos() Y = Rand(1,3) X = Rand(1,3) For i = 1 To y YLine=ReadLine(f) Next i Pos=Mid(YLine,X*3,3) Return Pos End Function
Ilman dollarimerkkiä kääntäjä tulkitsee YLine muuttujan Integer-tyyppiseksi.Code: Select all
YLine$ = ReadLine(f)
Tyhmät kysymykset (I/2009)
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Tyhmät kysymykset
"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
Re: Tyhmät kysymykset
täytyykö tehdä uusi silmukka jos vaihtaa kentän ja erilaisia vihollisia kuin kenttä1 ssÄ?
Re: Tyhmät kysymykset
Tartten nopeeta apua kun en saa ukkoa osoittamaan targettiin.
EDIT: Toimii jo.
Code: Select all
KOODIA...hiiri = LoadImage("Graphics\targett.png")
Koodia...
Repeat
ShowMouse hiiri
PointObject ukko, hiiri
Koodia...
Drawscreen
Forever
Code: Select all
hiiri = LoadObject("Graphics\targett.png")
ShowMouse OFF
Repeat
ScreenPositionObject hiiri,MouseX(),MouseY()
PointObject ukko, hiiri
Code: Select all
#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Re: Tyhmät kysymykset
jos kentän vaihdon tekee goto komennolla niin täytyykö kaikki laittaa uusiksi? en keksi muuta kuin goto vaikka on ehdoteltu muita
Re: Tyhmät kysymykset
Ei pidä... voi vain mennä mutkikkaaksi. Poista ne objektit ja lataa uudet jos käytät GoTo komentoa
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Tommoisessa objektien poisto-lataus-poisto kierteessä ei ole mitään järkeä. Viisainta on ladata mediat pelin alussa ja poistaa vasta kun niitä ei enää tarvita. Ei tule turhan pitkiä latausaikoja ratojen väliin, nimittäin.Jani wrote:Poista ne objektit ja lataa uudet jos käytät GoTo komentoa
Re: Tyhmät kysymykset
tarkotin et esim. piilottaa ne entiset vihut (Tai jotain muuta) ja sitten ottaa uudet niistä ladatuista.Grandi wrote:Tommoisessa objektien poisto-lataus-poisto kierteessä ei ole mitään jätkeä. Järkevintä on ladata objektit pelin alussa ja käytellä niitä samoja koko pelisession ajan. Ei tule turhan pitkiä latausaikoja ratojen väliin, nimittäin.Jani wrote:Poista ne objektit ja lataa uudet jos käytät GoTo komentoa
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Tyhmät kysymykset
Tai jo kestovinkiksi muodostunut, vähemmän purkkaisa ratkaisu: oisko ollu näin... heittele miinuksia noiden funktioden eteen ja ottele niitä pois ja kato mitä tapahtuuMikkoK141 wrote:Tartten nopeeta apua kun en saa ukkoa osoittamaan targettiin.EDIT: Toimii jo.Code: Select all
KOODIA...hiiri = LoadImage("Graphics\targett.png") Koodia... Repeat ShowMouse hiiri PointObject ukko, hiiri Koodia... Drawscreen Forever
Code: Select all
hiiri = LoadObject("Graphics\targett.png") ShowMouse OFF Repeat ScreenPositionObject hiiri,MouseX(),MouseY() PointObject ukko, hiiri
Code: Select all
Rotateobject pelihahmo,GetAngle(ObjectX(pelihahmo),-ObjectY(pelihahmo),MouseWX(),-MouseWY()
"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
Re: Tyhmät kysymykset
ok entäs yksi iso maailma? jossa viholliset kävelevät itsekseen ja kun näkevät vähän matkan päästä hyökkäävät
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Tyhmät kysymykset
No, heittelet niitä vaikka randomilla ympäri pelimaailmaa. Näin saat viholliset hyökkäämään päin kun menee lähelle:rami123 wrote:ok entäs yksi iso maailma? jossa viholliset kävelevät itsekseen ja kun näkevät vähän matkan päästä hyökkäävät
Code: Select all
if distance2(Pelihahmo,vihollinen)<500 then
pointobject vihollinen, pelihahmo
moveobject vihollinen, 2
endif
"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
Re: Tyhmät kysymykset
Moro, olen tässä jonkun verran sählännyt CoolBasicilla kokeiluja ja muita härpäkkeitä, ja tällä hetkellä koitan tehdä jotain ammuskelupelin tapaista, mutta minulla on ongelma: kuinka saan tehtyä esim. vaikka harjoitus 17:n tapaisella räiskintäpohjalla ruumiit? Siis että kun pati osuu viholliseen -> se pysähtyy tai jotain sinne päin ja näyttää kuolinanimaation / ruumiin kuvan? Tyhmä ja epäselvä kysymys, mutta otsikkohan on siihen suuntaava.
Juu, olen koittanut itse tehdä mutta en ole saanut tehtyä tämänlaista, ja kyllä, olen koittanut etsiä samantapaista kysymystä mutten ole löytänyt.
+ sitten vielä jonkinmoista esimerkkiä olisi mukava saada :-F
Juu, olen koittanut itse tehdä mutta en ole saanut tehtyä tämänlaista, ja kyllä, olen koittanut etsiä samantapaista kysymystä mutten ole löytänyt.
+ sitten vielä jonkinmoista esimerkkiä olisi mukava saada :-F
Re: Tyhmät kysymykset
Otat vain sijainnin talteen ja sijoitat veripläikän sinne... Nopeasti tein tuollaisen ohjelman.. (Vanhan kuvan voisi myös poistaa piilottamisen sijaan)
Code: Select all
SCREEN 1000,800
FrameLimit 40
Const vihumäärä=15
Type VIHU
Field obj
Field veri
Field elossa
Field speed As Float
End Type
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
car = LoadObject("Media\car2.bmp", 72)
cloonattava_vihu = LoadObject("media\guy.bmp",72)
cloonattava_veri = LoadObject("media\car2.bmp")
ShowObject cloonattava_vihu,OFF
ShowObject cloonattava_veri,OFF
For i=1 To vihumäärä
positionx=Rand(-300,300)
positiony=Rand(-300,300)
maara.VIHU = New(VIHU)
maara\obj=CloneObject(cloonattava_vihu)
PositionObject maara\obj, positionx,positiony
SetupCollision maara\obj, kartta,1,4,2
TurnObject maara\obj, Rand (0,360)
maara\speed=Rnd(0.5,3)
maara\elossa=1
Next i
Repeat
If KeyDown(cbkeyw) Then MoveObject car,4
If KeyDown(cbKeyA) Then TurnObject car,3
If KeyDown(cbKeyD) Then TurnObject car,-3
CloneCameraPosition car
For maara.VIHU=Each VIHU
MoveObject maara\obj,maara\speed
If CountCollisions(maara\obj) Then TurnObject maara\obj, Rnd(0,16)
If ObjectsOverlap(maara\obj,car) And maara\elossa=1 Then
maara\elossa=0
maara\veri=CloneObject(cloonattava_veri)
PositionObject maara\veri, ObjectX(maara\obj),ObjectY(maara\obj)
maara\speed=0
ShowObject maara\obj,OFF
EndIf
Next maara
DrawGame
Text 10,10,"FPS"+FPS()
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset
Tässä kaikille toimivaa esimerkkiä, jotka pohtivat kentän vaihdon toimintaa. Käyttää oikeaoppisesti datakerroksia, joten niiden käytön kertaus on askel numero 1. Ja ei tästä rungosta peliksi ole, muokkailkaa omiin tarpeisiinne sopivaksi älkääkä täällä valittako toimimattomuutta juuri teidän pelissänne. Sen tarkoitus on nimenomaan olla niin puhdas runko, että uusien ominaisuuksien liimaaminen päälle purkalla on helppoa kuin heinänteko. Pitemmittä puheitta:
Runko muuten vanhasta tasohyppelystäni, joten outouksien löytämisestä voi raportoida. 700 rivin leikkaaminen pois esimerkin luomiseksi voi jättää epäloogisuuksia.
N'joy ;)!
Code: Select all
' Esimerkki tasojen vaihdosta
' Tehnyt Oskar Niemenoja 15.11.2008
Global lvlnum, datanum
lvlnum = 1 'Taso aluksi yksi
lataakenttä:
' Tässä ladataan uusi kenttä lvlnum-muuttujan mukaan
' Kenttien nimet ovat muotoa map1.til, map2.til jne.
If FileExists("Media\Maps\map" + lvlnum +".til") Then
kenttä = LoadMap("Media\Maps\map" + lvlnum + ".til","Media\Maps\tile.png")
Else
End
EndIf
' Lataillaan objektit. Jos objekteja on vähän, niin niiden
' poisto välissä on turhaa. Lataa ne vain kerran alussa ja
' sijoita aina uudelleen. Suurien objektimäärien kanssa kannattaa
' kuitenkin ladata ainakin vihut jokaiselle kentälle sopien.
hahmo = LoadObject("Media\hero.png")
portti = LoadObject("Media\gate.png")
' Tässä latailet kaikki objektit.
PositionObject kenttä,0,0
' Ks. alhaalta funkkarin toiminta.
PlaceToData()
' Puhuu puolestaan.
SetupCollision hahmo,kenttä,1,4,2
Repeat '----------------PÄÄLOOP-------------
' Miten tason vaihdos toimii itse pelissä, tee vain omat
' ehtosi.
If ObjectsOverlap(hahmo,portti) Then
lvlnum + 1
AlustaMuuttujat()
Goto lataakenttä
EndIf
Until EscapeKey() '------------------------PÄÄLOOPPI LOPPUU----------------
'--------------------ALIOHJELMAT-------------
' Poistamme tässä välissä objektit ja nollaamme kenttäsidonnaiset
' muuttujat (esim. hahmon vauhti kannattanee nollata kenttien
' välillä).
Function AlustaMuuttujat()
DeleteObject kenttä
DeleteObject hahmo
DeleteObject portti
End Function
' Etsii datakerroksen numerot ja sijoittaa niihin objekteja halutusti.
' Tätä kutsuttiin alussa, ja tämän pikku funktion laajentaminen on
' sekä helppoa että melko siistiä verrattuna jokaisen objektin
' sijoittamiseen yksinään.
Function PlaceToData()
For y = 1 To MapHeight()
For x = 1 To MapWidth()
datanum = GetMap2(3,x,y)
If datanum > 0 Then
Select datanum
Case 1
PositionObject hahmo,ObjectX(kenttä) - ObjectSizeX(kenttä)/2 + 32 * x - 32/2, ObjectY(kenttä) + ObjectSizeY(kenttä)/2 - 32 * y + 32/2
Case 2
PositionObject portti,ObjectX(kenttä) - ObjectSizeX(kenttä)/2 + 32 * x - 32/2, ObjectY(kenttä) + ObjectSizeY(kenttä)/2 - 32 * y + 32/2
End Select
EndIf
Next x
Next y
End Function
N'joy ;)!
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.
Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Re: Tyhmät kysymykset
Okei. Kiitoksia.OonSuomesta wrote:Luo nettiin omalle palvelimelle (jossa on PHP-tuki) tiedosto vaikkapa ip.php ja tallenna tiedostoon tämä merkkijono:Eräs Vierailija wrote:Tarkoitin CoolBasicilla. Tarvitsisin sitä chatin tekemiseen cbNetworkilla.Ozcar wrote:http://www.ip-adress.com/Se antaa sen tietokoneen, joka haki nettisivua, IP-osoitteen. Sitten vain CB:ssä käytä TÄTÄ ja käytä IP-osoitetta mihin ikinä sitä tarvitsetkaan.Code: Select all
<?php echo $_SERVER['REMOTE_ADDR']; ?>
Muuten, miksei tämä toimi? Kokeilin lähettää muuatta tiedostoa omalle sivulleni tällä, mutta se ei ilmestynyt perille.
Re: Tyhmät kysymykset
Kai avattuasi yhteyden myös sammutit sen? Vasta kun yhteys sammutetaan, lähetetään kyseiset tiedostot, ja tuolla tavalla pystyy lähettämään vain tekstitiedostoja.Eräs Vierailija wrote:Muuten, miksei tämä toimi? Kokeilin lähettää muuatta tiedostoa omalle sivulleni tällä, mutta se ei ilmestynyt perille.
EDIT: Tarkemmin asiaa tutkailtuani, näyttäisi siltä että tuohon FTPPut funktiolle pitäisi antaa parametriksi tiedoston koko polku, ja jos tiedosto EI ole tekstitiedosto, niin tuohon komennot sisältävään <numerosarja>.tmp tiedostoon pitäisi kirjoittaa ennen tiedoston lähettämistä rivi, jossa lukee "binary".
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
Joo köh, nyt olen mennyt kämmäämään koko paskan miten sattuu. Kuten voitte huomata suurin osa on tutoista sun muualta kopioitua:
Miten tähän saa ruumiit (taitaa tulla kehnohkolle ampumasysteemille lähtöpassi) upotettua sekaan? Olisin HYVIN kiitollinen avusta, sillä koodi on yhtä sekamelskaa ja nyyppäkokeiluja ilman sisennyksiä. Näyttää tyhmältä siitä syystäkin että olen muuttanut kaikki tiedostot mediakansion sisällöiksi.
Code: Select all
'Bullshittiä
FrameLimit 40
SetWindow "Sodan arvet" ' Homppeli projektinimi
arial = LoadFont("arial", 15)
Valikko:
SetFont arial
AddText "Hello world"
Const VALIKKO = 0
Const PELI = 1
quit = 1
While quit = 1
If mode = VALIKKO Then
If Button("Aloita peli", ScreenWidth()/2 - TextWidth("Aloita peli")/2, 100) Then mode = PELI
If Button("Poistu", ScreenWidth()/2 - TextWidth("Poistu")/2, 120) Then quit = 0
ElseIf mode = PELI
Goto Peli
EndIf
DrawScreen
If Not SoundPlaying(mus) Then mus=PlaySound("Media\SK_Battle2.mp3")
Wend
End
Function Button(txt$, x, y)
r=getRGB(RED)
g=getRGB(GREEN)
b=getRGB(BLUE)
If MouseON(x,y, TextWidth(txt$), TextHeight(txt$)) Then
Color cbBlue
If MouseHit(1) = 1 Then Color r,g,b : Return 1
Else
Color cbDarkBlue
EndIf
Text x,y,txt$
Color r,g,b
Return 0
EndFunction
Function MouseON(x, y, w, h)
If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY()<= y+h Then Return 1
EndFunction
Peli:
ClearText
Type AMMUS
Field obj
Field vahinko
End Type
hp = 100
'Kartta
kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
'Objektit ja äänet
ukko = LoadObject ("Media\guy.bmp")
bottimestari = LoadObject ("Media\cow.bmp")
botti = CloneObject (bottimestari) 'Emt miksi noin tein
tahtain = LoadObject ("Media\fireball.bmp")
pati = LoadObject("Media\fireball.bmp")
pystykorva = LoadSound ("Media\gun 1.wav")
ruumis = LoadObject("media\car2.bmp")
'.. ja näiden asetuksia
For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=1 Then PositionObject ukko,x*32-(ObjectSizeX(kartta)/2),-y*32+(ObjectSizeY(kartta)/2)
Next y
Next x
ShowObject bottimestari,OFF
ShowObject pati,OFF
ShowObject ruumis,OFF
MaskObject tahtain, cbYellow
MaskObject ukko, cbBlack
PositionObject botti, 32,150
'Törmäily
SetupCollision ukko, botti, 2, 2, 2
SetupCollision botti, kartta, 1, 4, 2
SetupCollision ukko, kartta, 1, 4, 2
Repeat
Text 10,10,"Terveys: "+hp
If hp = 0 Then End
CloneCameraPosition ukko
ShowMouse OFF
PositionObject tahtain,MouseWX(),MouseWY()
'Ruumiit
'Luotiasetteluja
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If GetMap(2, ObjectX(luoti\obj), ObjectY(luoti\obj)) Or ObjectsOverlap(luoti\obj,botti,2) Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
'Vihun liikkuminen
MoveObject botti, 1, Rand(1, -1)
If ObjectSight (ukko, botti) = True Then
PointObject botti, ukko
PlayObject botti, 0, 2
EndIf
If CountCollisions(botti) Then
TurnObject botti, Rand(360)
UpdateGame
EndIf
'Ohjailu
PointObject ukko, tähtäin
If KeyDown(cbKeyW) Then MoveObject ukko, 2
If KeyDown(cbKeyS) Then MoveObject ukko, -2
If KeyDown(cbKeyA) Then MoveObject ukko, 0, -2
If KeyDown(cbKeyD) Then MoveObject ukko, 0, 2
'Ampuminen
If MouseHit (1) And reload=0 Then
luoti.AMMUS = New(AMMUS) 'Uusi AMMUS
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
reload=65
PlaySound pystykorva
EndIf
DrawScreen
If Not SoundPlaying(mus) Then mus=PlaySound("Media\Invader 2.mp3")
If reload>0 Then reload=reload-1
Until EscapeKey()
Re: Tyhmät kysymykset
Ruumiiden tekopa ei ole sen ihmeellisempää, kuin että vihulaisen kuollessa laitat paikalle maassa makaavan objektin, joka ei tee muuta kuin valittaa kovaa kohtaloaan sodan jaloissa. Köh, eli CloneObjectPositionilla törkkäät kloonatun (CloneObject) kuvan kuolleen vihun kohdalle, ja jätät siihen kunnes toisin päätetään.
Ja ennen kuin tulet kysymään, että miksi se sama ruho vain vaihtaa paikkaa ja miksi et saa useampia pysymään maassa: kokeileppa tehdä homma typeillä. Ei se vaikeaa ole, hyviä tutoja löytyy foorumeilta pilvin pimein ja ne pelastavat synkimmänkin peliprojektin milloin vain (ja näytät jo jotain niillä säädelleenkin, mutta jos toiminta ei ole kristallinkirkasta, niin keskity tyyppiharjoituksiin näin aluksi)!
ps. Purkkakoodi on joskus eduksikin. Ainakin itse olen saanut mukavia ahaa-elämyksiä koodatessani jotain vanhoja peliprojujani uusiksi yrittäen tiivistää vanhan koodin mahdollisimman pieneen ja siistiin tilaan. Tee nyt sellainen, jotta toimii, ja vuoden päästä jos on tylsää palaa projektin pariin ja hio siitä kunnollinen timantti.
Ja ennen kuin tulet kysymään, että miksi se sama ruho vain vaihtaa paikkaa ja miksi et saa useampia pysymään maassa: kokeileppa tehdä homma typeillä. Ei se vaikeaa ole, hyviä tutoja löytyy foorumeilta pilvin pimein ja ne pelastavat synkimmänkin peliprojektin milloin vain (ja näytät jo jotain niillä säädelleenkin, mutta jos toiminta ei ole kristallinkirkasta, niin keskity tyyppiharjoituksiin näin aluksi)!
ps. Purkkakoodi on joskus eduksikin. Ainakin itse olen saanut mukavia ahaa-elämyksiä koodatessani jotain vanhoja peliprojujani uusiksi yrittäen tiivistää vanhan koodin mahdollisimman pieneen ja siistiin tilaan. Tee nyt sellainen, jotta toimii, ja vuoden päästä jos on tylsää palaa projektin pariin ja hio siitä kunnollinen timantti.
Ratkaisit juuri universaaliongelman! Hienoa, ota keksi.
Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Filosofia on ajattelun taidetta, mutta sen maalari elää juoden apurahojaan masennukseensa.
Re: Tyhmät kysymykset
Eilikkäs mul ois kysymys, miks en voi ladata mitään itse pelin sisältä?esim.aloitin tänään tämän pelien teon ja tuossa 2. kohdassa on se ukko juttu niin miten voin ladata omalta kovalevytläni sen ukon?
Tajusitteko?
Tajusitteko?
Re: Tyhmät kysymykset
tarkoitakko coolbasicin valmiita ? silloin
cow = loadobject("media\cow.bmp")
guy = loadobject ("media\guy.bmp")
ja niin edelleen
cow = loadobject("media\cow.bmp")
guy = loadobject ("media\guy.bmp")
ja niin edelleen
Re: Tyhmät kysymykset
juuri niitä tarkoitan, mutta kun laitan tuon tekstin niin se ohjelma valittaa, että siinä on virhe, siinä rivillä missä minulla on tuo teksti