Kiitti! Heti sain apuaGrandi wrote:Code: Select all
ShowMouse OFF cursor = LoadObject("media/cursor.bmp") While True ScreenPositionObject cursor,MouseX(),MouseY() DrawScreen Wend
Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
asd
Re: Tyhmät kysymykset
Offitopic: Mitä vikaa on repeat - forever silmukassa?Grandi wrote:Code: Select all
ShowMouse OFF cursor = LoadObject("media/cursor.bmp") While True ScreenPositionObject cursor,MouseX(),MouseY() DrawScreen Wend
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Ei varsinaisesti mitään, mutta semmoista ei käytetä "kehittyneemmissä" kielissä, joten olettaisin Grandin laittaneen tuon ihan tottumuksesta.
CoolBasic henkilökuntaa
Kehittäjä
Kehittäjä
Re: Tyhmät kysymykset
Miten saa tehtyy alku valikon silleen että lukee vaikka Aloita ja lopeta ja kun painais aloita peli alkais
Re: Tyhmät kysymykset
tään voi tehä monella tavalla mut tässä on yks tyyli tehä valikko--.Sceri wrote:Miten saa tehtyy alku valikon silleen että lukee vaikka Aloita ja lopeta ja kun painais aloita peli alkais
Code: Select all
valinta = 1
valinnat = 3
Dim sana$(valinnat)
sana(1) = "peli"
sana(2) = "tekijät"
sana(3) = "lopeta"
While Not life
If valinta > 1 And KeyHit(cbkeyup) Then valinta - 1
If valinta < valinnat And KeyHit(cbkeydown) Then valinta + 1
For i=1 To valinnat
If valinta = i Then Color cbred Else Color cbwhite
Text 100,i*20,sana(i)
Next i
If KeyHit(cbkeyreturn) Then
Select valinta
Case 1: FrameLimit 40
ukko = LoadObject("Media\guy.bmp", 72)
ClsColor cbWhite
Repeat
If LeftKey() Then TurnObject ukko, 5
If RightKey() Then TurnObject ukko, -5
If UpKey() Then MoveObject ukko, 2
If DownKey() Then MoveObject ukko, -2
DrawScreen
Forever
Case 2 'jne...
Case 3: End
EndSelect
EndIf
DrawScreen
Wend
Ole hyvä!
Re: Tyhmät kysymykset
Miksi tämä ei toimi , tein muuttujalla siviilille elämän ja kun ammun sotilaalla siviiliä
se ei kuole , siviilille laitoin elämäksi = 3.
koodini
Luodit menee siviilin läpi ja se ei kuole
se ei kuole , siviilille laitoin elämäksi = 3.
koodini
Code: Select all
Type AMMUS
Field obj
End Type
SetWindow "testi"
Siviil1=3
FrameLimit 40
Siviili=LoadObject("media\guy.bmp")
PositionObject siviili,-20,20
ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
Repeat
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
If KeyDown(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
reload=5
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
EndIf
Next luoti
If ObjectsOverlap(pati,siviili) Then
Siviil1=Siviil1-1
DeleteObject pati
EndIf
If ObjectsOverlap(pati,siviili) And siviil1=0 Then
DeleteObject siviili
EndIf
DrawGame
DrawScreen
Until EscapeKey()
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Katsos, tarkistat törmäyksen masterobjektilla, vaikka se pitäisi tarkistaa klooneilla. Lisäksi, jos yritetään tuhota objektia tai tarkistella sitä tuhoamisen jälkeen, tulee MAV, joten pitää tarkistaa ettei sitä yritetä käsitellä kuolleena.
Code: Select all
Type AMMUS
Field obj
End Type
SetWindow "testi"
Siviil1=3
FrameLimit 40
Siviili=LoadObject("media\guy.bmp")
PositionObject siviili,-20,20
ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF
Repeat
If LeftKey() Then TurnObject ukko,5
If RightKey() Then TurnObject ukko,-5
If UpKey() Then MoveObject ukko,2
If DownKey() Then MoveObject ukko,-2
If KeyDown(cbKeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
reload=5
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,6
If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then
EndIf
If siviil1>0 Then
If ObjectsOverlap(luoti\obj,siviili) Then
Siviil1=Siviil1-1
DeleteObject luoti\obj
Delete luoti
If siviil1=0 Then
DeleteObject siviili
EndIf
EndIf
EndIf
Next luoti
DrawGame
DrawScreen
Until EscapeKey()
-
- Active Member
- Posts: 133
- Joined: Mon Aug 27, 2007 8:13 pm
Re: Tyhmät kysymykset
Aloitinpa pitkästä aikaa CB:n parissa värkkäämisen. Kuten arvata saattaa- pienen tauon jälkeen unohtuu asia jos parikin vaikka uutta pitäisi jo opetella. Pienen muistinvirkistyksen jälkeen päätin alkaa harjoittelemaan geometrian hyödyntämistä. Pääsin tehdä sellaisen pinki ponki pelin jossa pallolla on tarkoitus räjäytellä palikoita. Kaikki lähti suht hyvin. Nyt tuli sitten pieni seinä vastaan... Jostain syystä mailan ja pallon välinen törmäys ei toimi kuten seinän. Syy on luultavasti yksinkertainen ja typerä- mutta jostain syystä en nyt huomaa...
(sisennykset ovat vähän niin ja näin- ja ikävä kyllä, kommentteja lisäilen yleensä kun jaksan...eli hyvin harvoin)
ÄH unohdin ettei teillä tietenkään ole mediaa X(
(sisennykset ovat vähän niin ja näin- ja ikävä kyllä, kommentteja lisäilen yleensä kun jaksan...eli hyvin harvoin)
Code: Select all
SCREEN 800,600
FrameLimit 40
kartta = LoadMap("Media\marblemap.til","Media\marble.bmp")
PlayObject kartta,0,0,1
maila= LoadObject ("media\maila.bmp")
MaskObject maila,cbmagenta
ScreenPositionObject maila,400,580
ObjectRange maila,64,15
SetupCollision maila,kartta,1,4,2
pallo = LoadObject ("Media\pallo.bmp",72)
SetupCollision pallo, kartta,1,4,2
SetupCollision pallo, maila,1,1,2
TurnObject pallo,Rand(235,315)
palloplusx#=Cos(ObjectAngle(pallo))*6
palloplusy#=Sin(ObjectAngle(pallo))*6
Repeat
TranslateObject pallo,palloplusx#,palloplusy#
TurnObject pallo,40
If CountCollisions(pallo) Then
angle=CollisionAngle(pallo,1)
If angle=0 Or angle=180 Then
palloplusx#= -palloplusx#
EndIf
If angle=90 Or angle=270 Then
palloplusy#= -palloplusy#
EndIf
TranslateObject pallo,palloplusx#,palloplusy#
EndIf
UpdateGame
ScreenPositionObject maila,MouseX(),580
DrawGame
Text 0,0,"Pisteet ja muu paska tänne..."
DrawScreen
Forever
- Attachments
-
- Uusi Pakattu kansio.zip
- (117.41 KiB) Downloaded 289 times
Kyllä minä osaan, mutta kun mieli on tällasen kaaoksen vallassa, niin ei siitä mitään tule.
Re: Tyhmät kysymykset
Pitäisi tehdä sellainen systeemi,että voisin kirjoittaa käskyjä consoleen,ja painaa enteriä,niin käsky "tulee käyttöön".
Jostain syystä en saanut sitä toimimaan tekstitiedostolla,ja opentoread ja opentowrite-komennoilla.
Vähän tähän tyyliin:
Jostain syystä en saanut sitä toimimaan tekstitiedostolla,ja opentoread ja opentowrite-komennoilla.
Vähän tähän tyyliin:
Code: Select all
Vauhti=0
(kirjoittaa consoleen "Vauhti10")
Ja yhtäkkiä vauhti onkin jo 10:D
Huuda mun ip:tä!
- TheDuck
- Devoted Member
- Posts: 632
- Joined: Sun Aug 26, 2007 3:51 pm
- Location: C:\Program Files\Tuusula\
Re: Tyhmät kysymykset
Tein tässä pienen systeemin... En ehtiny kommentoida, yritä selvitäOlw1 wrote:Pitäisi tehdä sellainen systeemi,että voisin kirjoittaa käskyjä consoleen,ja painaa enteriä,niin käsky "tulee käyttöön".
Jostain syystä en saanut sitä toimimaan tekstitiedostolla,ja opentoread ja opentowrite-komennoilla.
Vähän tähän tyyliin:Code: Select all
Vauhti=0 (kirjoittaa consoleen "Vauhti10") Ja yhtäkkiä vauhti onkin jo 10:D
Code: Select all
//kirjoita "vauhti 10"
While Not KeyHit(28)
command$ = Input("KOMENTO: ")
DrawScreen
Wend
komento$ = GetWord(command$,1)
parametrit$ = GetWord(command$,2)
//komennot
Select komento$
Case "vauhti"
vauhti=HaeParametri(parametrit$,1)
Print "Komentosi oli vauhti ja ensimmäinen parametri "+vauhti+","
Print "sekä muuttujan vauhti arvo on nyt "+vauhti
WaitKey
Default
Print "Komentoa ei löytynyt!"
WaitKey
EndSelect
//Funktiot
Function HaeParametri(jono$,id)
For i=1 To CountWords(jono$, ",")
If i=id Then Return GetWord(jono$,i,",")
Next i
EndFunction
^^
Re: Tyhmät kysymykset
Kannattaako laittaa,että kaikki animaatiot on erikseen potkut,Lyönnit,Vartalo,Pää ja laittaa Koordinaateilla oikeeseen kohtaan ? Kun ennen oli vartalo,pää,jalat,kädet kaikki samassa kuvassa,nyt olisin tekemässä kaikista eri objektit,että toimis paremmin osuuko vihu vai eikö vihu osu potkullaan mun ukkoo... Vai onko muita ehdotuksia ?
Re: Tyhmät kysymykset
Sori et oon näin tyhmä mutta miten sovitan tuon koodiini?
Code: Select all
Repeat
DrawImage ruutu,0,0
TranslateObject hero,vauhti,0
If vauhti>0 Then
ShowObject heroright,ON
hero=heroright
PlayObject hero,0,4,0.10
ElseIf vauhti<0 Then
ShowObject heroleft,ON
ShowObject heroright,OFF
hero=heroleft
PlayObject hero,0,4,0.10
Else
PlayObject hero,0
EndIf
DrawGame
Text 0,30,"X"+MouseX()
Text 0,40,"Y"+MouseY()
Text 0,50,"Vauhti:"+vauhti
DrawScreen
Forever
Huuda mun ip:tä!
Re: Tyhmät kysymykset
miten sais näyttökordinaateilla selville tilen kordinaatit?
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Mitä tarkotat?nevssons wrote:miten sais näyttökordinaateilla selville tilen kordinaatit?
Tätäkö?
Kun näyttökoordinaatti on (x,y),niin tilekoordinaatti on (a,s)vai? (numerot muuttujia)
Jos kenttä on näyttöä pienempi,niin sen saa selville yksinkertaisella funktiolla,mutta jos se on isompi niin ei taida onnistua.
Sori jos oon pahasti eksyksissä;)
Huuda mun ip:tä!
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Tyhmät kysymykset
nevssons wrote:miten sais näyttökordinaateilla selville tilen kordinaatit?
Onneksi olet väärässä sillä tässäpä tuo funktio, vaikka varmaankin vastaava olisi löytynyt myös sdk:sta.Olw1 wrote:Jos kenttä on näyttöä pienempi,niin sen saa selville yksinkertaisella funktiolla,mutta jos se on isompi niin ei taida onnistua.
Code: Select all
SCREEN 1024,768
'Load map and animate it (2 times a second)
map= LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject map,0,0,0.5
'Load the character and setup a collision for it
guy= LoadObject("Media\soldier.bmp",72)
SetupCollision guy,map,2,4,2
'The game
Repeat
'Control the guy
If LeftKey() Then TurnObject guy,5
If RightKey() Then TurnObject guy, -5
If UpKey() Then MoveObject guy,4
If DownKey() Then MoveObject guy, -4
'Stick camera to the guy
CloneCameraPosition guy
DrawGame
Text 0,0,ScreentoMap(MouseX(),map,1)+" "+ScreentoMap(MouseY(),map,2)
DrawScreen
Until EscapeKey()
Function ScreentoMap(_x,_map,_case)
Select _case
Case 1
mapx=ObjectX(_map)
tilewidth=Int(ObjectSizeX(_map)/MapWidth())
screenw=ScreenWidth()
worldx=_x-screenw/2+CameraX()
If worldx>(mapx-ObjectSizeX(_map)/2) And worldx<(mapx+ObjectSizeX(_map)/2) Then
tilex= ( (mapx+ObjectSizeX(_map)/2) + worldx ) / tilewidth +1 '- MapWidth()
Else
tilex=-1
EndIf
If tilex<>-1 Then Return tilex Else Return "Kartan ulkopuolella"
Case 2
mapy=ObjectY(_map)
tileheight=Int(ObjectSizeY(_map)/MapHeight())
screenh=ScreenHeight()
worldy=-_x+screenh/2+CameraY()
If worldy>(mapy-ObjectSizeY(_map)/2) And worldy<(mapy+ObjectSizeY(_map)/2) Then
tiley=- ( mapy-ObjectSizeY(_map)/2 + worldy ) / tileheight +1
Else
tiley=-1
EndIf
If tiley<>-1 Then Return tiley Else Return "Kartan ulkopuolella"
End Select
End Function
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Tyhmät kysymykset
miksiköhän tästä tulee mav?
Code: Select all
If ObjectsOverlap(avain,ukko)And die=True Then
key=1
die=False
DeleteObject avain
EndIf
programmer of DSG wrote:EDIT:aika hauska peli, vähän tylsä
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Tyhmät kysymykset
Ensinnä: puuttuuko jompikumpi objekteista? Toiseksi: die=True ensin, sitten vasta ObjectsOverlap. Nykyisellään tulee tilanne, jossa tarkistetaan tuhotun objektin kanssa päällekkäisyyttä, mistä mav seuraa.Mr_Noob wrote:miksiköhän tästä tulee mav? :evil:Code: Select all
If ObjectsOverlap(avain,ukko)And die=True Then key=1 die=False DeleteObject avain EndIf
Re: Tyhmät kysymykset
Kumpikaan objecteista ei puutu. Jos oikein käsitin niin näin:
Mutta tuo ei toimi..
Code: Select all
if die=True and Objectsoverlap(avain,ukko) Then
key = 1
Deleteobject avain
die=false
endif
Re: Tyhmät kysymykset
Ihan sama miten päin sen tarkistuksen tekee, mav tulee koska objektia avain ei ole. Katsopas:
Kierros 1:
- Tarkastetaan 'die' (on true), tarkastetaan objektien päällekkäisyys.
- Key = 1, avain tuhotaan, die = false.
Kierros 2:
- Tarkastetaan 'die' (tällä kertaa false). And-operaattori tarkastetaan silti, oli se die mikä vain. Eli ObjectsOverlappia kutsutaan. Avainta ei ole -> mav.
Toimiva koodi:
Kierros 1:
- Tarkastetaan 'die' (on true), tarkastetaan objektien päällekkäisyys.
- Key = 1, avain tuhotaan, die = false.
Kierros 2:
- Tarkastetaan 'die' (tällä kertaa false). And-operaattori tarkastetaan silti, oli se die mikä vain. Eli ObjectsOverlappia kutsutaan. Avainta ei ole -> mav.
Toimiva koodi:
Code: Select all
If die = True Then
If ObjectsOverlap( avain, ukko ) Then
key = 1
DeleteObject avain
die = False
EndIf
EndIf
Re: Tyhmät kysymykset
Nyt olisi semmoinen ongelma, eli tarkoitus olisi tehdä systeemi, että kun inputtiin kirjoitetaan joku "komento", niin ohjelma menisi kyseiseen kohtaan ohjelmassa. Mutta CB vain herjaa; "Label 'y$' not found at line 6". Jotain olen kuitenkin saanut väännettyä kasaan:
Kyllä sinne varmaan CloseInputtia sun muuta pitää heittää sekaan, mutta kun ei tiedä minne. Kiitos ajastanne jo etukäteen.
Code: Select all
Repeat
x$=Input(">>")
If x$=net Then
y$=net
If KeyHit(28) Then
Goto y$
EndIf
EndIf
DrawScreen
Forever
net:
Repeat
Print "Sending response to server..."
DrawScreen
Forever