Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
jostain syystä tuon kanssa ei toimi vielä
Re: Tyhmät kysymykset
Näyttääkö koodisi siis nyt suunnilleen tältä?rami123 wrote:jostain syystä tuon kanssa ei toimi vielä
Code: Select all
SCREEN 800,800
FrameLimit 40
SetWindow "Viikatemies1",0,"oletko varma?"
Type VIHOLLISET
Field obj'objecti
Field hp'energiat
Field dmg'vahinko
Field speed'nopeus
Field score'pisteet
Field id'minkälainen zombie on
Field reload
Field shooting
End Type
Type BULLETS
Field obj
Field hp
Field dmg
Field speed
Field id
End Type
Type ENEMY_BULLETS
Field obj
Field hp
Field dmg
Field speed
Field id
End Type
Type upgs'asepäivitykset
Field obj
Field hp
Field id
EndType
/////////////////////////////////////////////////////////////////
valikko:
ClearText
ClearObjects
kuva = LoadImage ("media\map.bmp")
uusi = LoadObject("media\buttoni.bmp")
PositionObject uusi,150,30
poistu = LoadObject("media\buttoni.bmp")
PositionObject poistu,-150,-30
ohjeet = LoadObject("media\buttoni.bmp")
PositionObject ohjeet,-200,200
hiiri = LoadObject("media\cursor.bmp")
PositionCamera 0, 0
Repeat
DrawImage kuva,0,0
PositionObject hiiri,MouseWX(),MouseWY()
ShowMouse OFF
If ObjectsOverlap(hiiri,uusi) And MouseHit(1) Then Goto alkutekstit
If ObjectsOverlap (hiiri,poistu) And MouseHit(1) Then End
If ObjectsOverlap (hiiri,ohjeet) And MouseHit(1) Then Goto ohjeet
ClearText
DrawScreen
Forever
/////////////////////////////////////////////////////////////////
ohjeet:
arial=LoadFont("arial",20)
Repeat
DrawImage kuva,0,0
ClearObjects
Color cbred
SetFont arial
Text 1,1,"OHJEET PELAAMISEEN"
Text 1,50,"W kävellään eteenpäin"
Text 1,100,"S kävellään taaksepäin"
Text 1,150,"A liikutetaan viikatetta"
Text 1,200,"D liikutetaan viikatetta"
Text 1,250,"Hiiren oikealla ammutaan"
Text 1,300,"Hiirellä käännetään ukkoa"
Text 1,350,"I avataan inventory"
Text 1,400,"Punaiset Pullot parantavat"
Text 1,450,"Siniset Pullot lisäävät voimaa"
Text 1,500,"Vihreät Pullot lisäävät nopeutta"
Text 1,550,"Peli pysäytetään P:llä"
Color cbblack
Text 1,600,"Paina Enteriä niin pääset valikkoon takaisin"
If KeyDown (28) Then Goto valikko Then ClearText ' 28 = enter
DrawScreen
Forever
/////////////////////////////////////////////////////////////////
alkutekstit:
ClearObjects 'poistaa valikon kuvat
plusx = 1
arial=LoadFont("arial",20)
kuva2= LoadImage ("media\map.bmp")
Repeat
DrawImage kuva2,0,0
Color cbWhite
Text x,150,"Tämä teksti pitää kirjoittaa joka kerta"
SetFont arial
Color cbRed
Text 100,750,"Enteristä pääset peliin"
If KeyHit(28) Then
DeleteFont arial
Goto peli '28 = enter
EndIf
DrawScreen
Forever
/////////////peli alkaa tästä////////////////////////////////////
'->
peli:
ClearText
kartta = LoadMap("Media\testmap.til","Media\tileset.bmp")
kartta2 = LoadMap("Media\cdm2.til","Media\tileset.bmp")
ukko = LoadObject ("media\guy.bmp",72)
SetupCollision ukko, kartta, 1, 4, 2
PositionObject ukko,150,200
RotateObject ukko,270
bullet=LoadObject("media\bigbullet.bmp",72)
ShowObject bullet,OFF
vihu1 = LoadObject ("media\ukkeli.bmp",72) : ShowObject vihu1,OFF
vihu2 = LoadObject ("media\ukkeli2.bmp",72) : ShowObject vihu2,OFF
cow = LoadObject ("media\ukkeli3.bmp",32) : ShowObject cow,OFF
upg=LoadObject ("media\tatti.bmp") : ShowObject upg,OFF
topower=LoadObject ("media\tatti.bmp") : ShowObject topower,OFF
tospeed=LoadObject ("media\tatti.bmp") : ShowObject tospeed,OFF
medikit=LoadObject ("media\tatti.bmp") : ShowObject medikit,OFF
viikate = LoadObject("media\cannon.bmp",18)
hiiri = LoadObject("media\cursor.bmp")
CloneObjectPosition viikate,ukko
RotateObject viikate, viikateangle + ObjectAngle(ukko)
box1 = LoadImage ("media\buttoni.bmp")
box2 = LoadImage ("media\buttoni.bmp")
hp=2000'sinun energiat
powupg=12'Aseen aloitus teho
speedupg=5'aseen aloitus nopeus
tapot=0
Repeat
PositionObject hiiri,MouseWX(),MouseWY()'sijoitetaan tähtäin hiiten koordinaatteihin
If pause Then
PointObject ukko,hiiri'käännetään ukko tähtäimeen
If hp>0 Then 'jos on energiaa niin suritetaan kaikki
CloneCameraPosition ukko
If KeyDown(17) Then MoveObject ukko,2' 17 = W
If KeyDown(31) Then MoveObject ukko,-2' 31 =S
If KeyDown(cbkeyA) Then viikateangle = wrapangle(viikateangle + 10)
If KeyDown(cbkeyD) Then viikateangle = WrapAngle(viikateangle - 10)
CloneObjectPosition viikate,ukko
RotateObject viikate, viikateangle + ObjectAngle(ukko)
UpdateGame
CloneCameraPosition ukko
'Ammu-systeemi. Vain, jos ase on ladattu
If MouseHit (1) And reload<0
newBullet.BULLETS= New(BULLETS)
newBullet\obj=CloneObject(bullet)
newbullet\dmg=powupg
newbullet\speed=speedupg
CloneObjectPosition newBullet\obj,ukko
CloneObjectOrientation newbullet\obj,ukko
MoveObject newBullet\obj,24
reload=15
SetupCollision newbullet\obj,kartta,1,4,2
EndIf
reload-1
'Asepäivitykset''''''''''''''''''''''''''''''''
If uusi>220
newupg.upgS= New(upgS)'thdään uusi
newupg\obj=CloneObject(upg)
newupg\hp=100
newupg\id=Rand(1,3)
If Newupg\id=1 Then PaintObject newupg\obj,topower
If Newupg\id=2 Then PaintObject Newupg\obj,tospeed
If Newupg\id=3 Then PaintObject Newupg\obj,medikit
'Asetetaan tavara kohtaan missä ei ole törmäystä
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(2,x,y)=0 Then PositionObject newupg\obj,Rand(-600,500),Rand(-600,600)
Next x
Next y
uusi=0
EndIf
uusi+1
'zombit''''''''''''''''''''''''''''''''''''''''
If luo>130'jos luonti on suurempi kuin 130, niin tehdään zombie
newzombi.VIHOLLISET= New(VIHOLLISET)
newzombi\obj=CloneObject(vihu1)
'Asetetaan vihollinen kohtaan missä ei ole törmäystä
For y=1 To MapWidth()
For x=1 To MapWidth()
If GetMap2(2,x,y)=0 Then PositionObject newzombi\obj,Rand(-600,500),Rand(-600,600)
Next x
Next y
newzombi\id=Rand(1,3)
If newzombi\id = 1 Then 'Ykkös zombi
newzombi\hp=Rand(90,110):newzombi\dmg=Rand(1,3):newzombi\speed=Rand(2,3):newzombi\score=Rand(10,20)'Asetetaan zombielle kentät
EndIf
If newzombi\id = 2 Then 'kakkos zombi
PaintObject newzombi\obj,cow
newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
EndIf
If newzombi\id = 3 Then 'kolmos zombi
PaintObject newzombi\obj,vihu2
newzombi\hp=Rand(110,130):newzombi\dmg=Rand(2,4):newzombi\speed=Rand(1,2):newzombi\score=Rand(15,25)'toiselle myös
newzombi\shooting = 1 //ampuva zombi
EndIf
SetupCollision newzombi\obj,kartta,1,4,2
luo=0
EndIf
luo+1
For izombi.VIHOLLISET= Each VIHOLLISET'Aloitetaan zombien läpikäynti
'Typerä tekoäly
If ObjectSight (izombi\obj,ukko) And izombi\reload<0 And izombi\shooting = 1 Then
newBullet2.ENEMY_BULLETS= New(ENEMY_BULLETS)
newBullet2\obj=CloneObject(bullet)
newbullet2\dmg=powupg
newbullet2\speed=speedupg
CloneObjectPosition newBullet2\obj,izombi\obj
CloneObjectOrientation newbullet2\obj,izombi\obj
MoveObject newBullet2\obj,24
izombi\reload=50
SetupCollision newbullet2\obj,kartta,1,4,2
EndIf
sidle=Rand(-20,20)
If CountCollisions(izombi\obj) Then MoveObject izombi\obj,0,sidle'jos kosketaan deinään, niin stepataan
PointObject izombi\obj,ukko'zombi tähtää pelaajaan
If ObjectsOverlap(izombi\obj,ukko) Then hp-izombi\dmg
For ibullet.bullets=Each bullets
If ObjectsOverlap(ibullet\obj,izombi\obj) Then
izombi\hp-ibullet\dmg
ibullet\hp=-1
EndIf
Next ibullet
If Not ObjectSight(izombi\obj, ukko) And izombi\shooting = 1 Then
MoveObject izombi\obj,izombi\speed'liikutetaan zombia nopeutensa verran
EndIf
If ObjectsOverlap (viikate,izombi\obj) Then izombi\hp-1
If izombi\hp<0 Then 'jos zombin energiat loppuu, niin tapetaan se ja annetaan pisteet
score+izombi\score
tapot=tapot+1
DeleteObject izombi\obj
Delete izombi
EndIf
izombi\reload-1
Next izombi
For iupg.upgS= Each upgS'aloitetaan kaikkien päivitysten käsittely
If ObjectsOverlap(iupg\obj,ukko) Then iupg\hp=-1'jos törmätään niin tuhotaan tavara
If iupg\hp<0 Then'jos tuhotaan tavara
If iupg\id=1 Then powupg+1'lisätään aseen tehoa
If iupg\id=1 Then speedupg+1'nopeutta
If iupg\id=3 Then hp+50'lisää energiaa
DeleteObject iupg\obj'poistetaan tavara
Delete iupg'ja sen jasen
EndIf
Next iupg
For iBullet.BULLETS= Each BULLETS
If CountCollisions(ibullet\obj) Then ibullet\hp-32
MoveObject iBullet\obj,6'llikutetaan luotia
If Distance2(iBullet\obj,ukko)>600 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
DeleteObject iBullet\obj
Delete iBullet
EndIf
Next iBullet
For eBullet.ENEMY_BULLETS = Each ENEMY_BULLETS
If CountCollisions(ebullet\obj) Then ebullet\hp-32
MoveObject eBullet\obj,6'llikutetaan luotia
If Distance2(eBullet\obj,ukko)>600 Or ebullet\hp<0 Then 'jos...niin tuhotaan ammus
DeleteObject eBullet\obj
Delete eBullet
EndIf
Next eBullet
EndIf
DrawGame
DrawImage box1,300,0
If MouseX()>300 And MouseX()<300+ImageWidth(box1) And MouseY()>0 And MouseY()<ImageHeight(box1) And MouseHit(1) Then End
DrawImage box2,300,40
If MouseX()>300 And MouseX()<300+ImageWidth(box2) And MouseY()>40 And MouseY()<40+ImageHeight(box2) And MouseHit(1) And score>49 Then
hp+50
score-50
if not score=50 Then
hp-0
score-0
EndIf
EndIf
Text 0,0,"FPS"
Text 30,0, FPS()
Color cbred
Text 45,13,Date()
Text 45,25,Time() 'kello
Text 150,15,"HP "+hp
Text 150,30,"Pisteet "+score
Text 150,0,"tappojen määrä "+tapot
If hp<0 Then
Text 500,500,"kuolit"
WaitKey
For iVihollinen.VIHOLLISET = Each VIHOLLISET
DeleteObject iVihollinen\obj
Delete iVihollinen
Next iVihollinen
For iBullet.BULLETS = Each BULLETS
DeleteObject iBullet\obj
Delete iBullet
Next iBullet
For iEnemyBullet.ENEMY_BULLETS = Each BULLETS
DeleteObject iEnemyBullet\obj
Delete iEnemyBullet
Next iEnemyBullet
For iUpg.upgs = Each upgs
DeleteObject iUpg\obj
Delete iUpg
Next iUpg
Goto valikko
EndIf
Else
DrawGame
Text 0,0,"Paina P:tä niin pause pois"
EndIf
If KeyUp(cbkeyP) Then pause = Not pause
DrawScreen
Forever
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
joo puuttui clearobjects alusta jonka poistin , Mutta minulla ei toiminut tuokaan? mavia heittää uudelleen meno peliin
Re: Tyhmät kysymykset
Miten select saadaan käyttämään merkkijonoja numeroiden sijaan?
One object to rule them all
Just don't kill the Master
Just don't kill the Master
Re: Tyhmät kysymykset
"Tyhmät kysymykset"
Code: Select all
select merkkijonomuuttuja$
case "yksi"
case "kaksi"
case "kolme"
endselect
-On selkeästi impulsiivinen koodaaja joka...
Re: Tyhmät kysymykset
Ohhoh enpä tullut ajatelleeksi No nyt olen hitusen viisaampi
One object to rule them all
Just don't kill the Master
Just don't kill the Master
Re: Tyhmät kysymykset
miten kentän vaihto toteutetaan? esimerkki olisi hyvä tai selitys miten..
Re: Tyhmät kysymykset
Kerrankin minä...rami123 wrote:miten kentän vaihto toteutetaan? esimerkki olisi hyvä tai selitys miten..
noh esimerkiksi exp vaihto:
Code: Select all
exp=0
...koodia...
If exp=100000 Then
GoTo level2
Else
GoTo jotain
EndIf
EDIT:
Arvostelkaa te paremmat...
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
Re: Tyhmät kysymykset
Käyhän tuo. Usein tosin järkevämpää on yksinkertaisesti "aloittaa peli alusta", eli kun jokin ehto on täynnä, sanotaan vaikka hahmon olevan maalissa, heitetään koodi alkuunsa, poistetaan objektit ja alustetaan muuttujat paitsi pisteet, tasonumero ja muut tasosta riippumattomat. Sitten Select-Casella latailet vaan oikean kartan tasonummeron mukaan, ja sijoitat objektit uudelleen (tähän vaiheeseen suosittelen lämpimästi luomaan omat funktiot, kaikille poistamisille ja lataamisille sekä tekoälylle, liikkumiselle ja ylipäätään kaikelle, mitä kutsut useammin kuin kerran).
Idea siis ei aloittaa peliä alusta, vaan poistaa objektit ja sijoittaa ne uudelleen uuteen kenttään. Goto-kikkailu syö muistia ja on 100% purkkaa, mutta toimii se niinkin ellei muuta saa aikaan.
Idea siis ei aloittaa peliä alusta, vaan poistaa objektit ja sijoittaa ne uudelleen uuteen kenttään. Goto-kikkailu syö muistia ja on 100% purkkaa, mutta toimii se niinkin ellei muuta saa aikaan.
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
Taas minä täällä kyselemässä kaikkea tyhmää. Onko mitään keinoa tarkistaa oman koneen IP-osoitetta? Jotenkin cbNetworkilla?
Re: Tyhmät kysymykset
mikä on helpoin tapa vaihtaa kenttä'?
ei kovin vaikeaa tapaa..
ei kovin vaikeaa tapaa..
Re: Tyhmät kysymykset
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
Hei! Olisi tässä tämmöinen retro nethack-tyyppinen luolaRPG (tms.) tulossa ja olisi ajankohtaista hankkia ikoni. No semmoisen tässä tuhersin ja ihan kirsikalta näyttäis kakun päällä, mutta kun en osaa sisällyttää sitä peliin. Mitenkäs siis saisin tuommoisen ikonin pelilleni?
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Tyhmät kysymykset
Morjensta, ja tervetuloa... Resource hacker -nimisellä ohjelmalla voit vaihtaa ohjelmaan ikonin, googleta vaikka ohjeet.Furry wrote:Hei! Olisi tässä tämmöinen retro nethack-tyyppinen luolaRPG (tms.) tulossa ja olisi ajankohtaista hankkia ikoni. No semmoisen tässä tuhersin ja ihan kirsikalta näyttäis kakun päällä, mutta kun en osaa sisällyttää sitä peliin. Mitenkäs siis saisin tuommoisen ikonin pelilleni?
Edit: Ai niin, oma ongelmani >=3:
Koodi selittänee kaiken
Code: Select all
X=rand(100)*3
Pos=Mid(YLine,-Miten saan arvon X tähän ilman että herjaa Type mismatchia?-,3)
"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
Vika ei ole x-muuttujassa vaan YLinessa. Esittele ensin YLine-merkkijono, eikä virheilmoitus enään häiritse.
Re: Tyhmät kysymykset
Eli miten saisin tuon pallon vierimään/liukumaan aina tuon maaston pinnan mukaan?
Code: Select all
SCREEN 800, 600
FrameLimit 40
pallo = MakeImage(24,24)
kentta = MakeImage(ScreenWidth(),ScreenHeight())
DrawToImage pallo
Color cbyellow:Circle 0,0,ImageWidth(pallo)
DrawToImage kentta
Color cbwhite : Box 0,540,800,50
Line 1,1,300,300 : Line 1000,100,1,600
DrawToScreen
PAINOVOIMA#=0.1
pallox = 200 : palloy# = 100
kenttax = 0 : kenttay = 0
Repeat
If ilmassa=ON Then kiihtyvyys#=kiihtyvyys#+PAINOVOIMA# Else kiihtyvyys#=0
palloy#=palloy#+kiihtyvyys#
If ImagesCollide(pallo,pallox,palloy#,0,kentta,kenttax,kenttay,0)>0 Then ilmassa=OFF Else ilmassa=ON
DrawImage kentta,kenttax,kenttay
DrawImage pallo,pallox,palloy#
DrawGame
Text 1,100, "FPS: "+FPS()
DrawScreen
Until EscapeKey()
- -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 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
"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
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
Code: Select all
YLine$ = ReadLine(f)
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
Tarkoitin CoolBasicilla. Tarvitsisin sitä chatin tekemiseen cbNetworkilla.Ozcar wrote:http://www.ip-adress.com/
Re: Tyhmät kysymykset
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/
Code: Select all
<?php echo $_SERVER['REMOTE_ADDR']; ?>
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