Re: Tyhmät kysymykset (II/2009)
Posted: Mon Sep 21, 2009 4:33 pm
Miten voi tehdä yksinkertaisen sudoku pelin?
Game Making Should Be Easy...
https://www.coolbasic.com/phpBB3/
Taulukoilla on helpinta. Ainakin tarkistus.skorpioni-cb wrote:Miten voi tehdä yksinkertaisen sudoku pelin?
martti wrote:Mites GotoSavedLocationia käytetään?
Kun itse testaan ni ruutu on mustana.
CoolBasicin manuaali wrote:Tämä komento siirtää pelin suorituksen täsmälleen samaan paikkaan, mihin se jäi kun peli tallennettiin. Käytä tätä komentoa LoadProgramin jälkeen. Yleensä vielä senkin jälkeen, kun kaikki kuvat sun muut on ladattu uudelleen.
ESIMERKKICode: Select all
'Save game foo() Print "Program continues..." 'LoadGame LoadProgram "savegame.sav" GotoSavedLocation Print "Program ended" WaitKey Function foo() SaveProgram "savegame.sav" 'will continue from here after loading... Print "Game Saved..." End Function
Tuon luin oppaasta.kaneli2000 wrote:martti wrote:Mites GotoSavedLocationia käytetään?
Kun itse testaan ni ruutu on mustana.CoolBasicin manuaali wrote:Tämä komento siirtää pelin suorituksen täsmälleen samaan paikkaan, mihin se jäi kun peli tallennettiin. Käytä tätä komentoa LoadProgramin jälkeen. Yleensä vielä senkin jälkeen, kun kaikki kuvat sun muut on ladattu uudelleen.
ESIMERKKICode: Select all
'Save game foo() Print "Program continues..." 'LoadGame LoadProgram "savegame.sav" GotoSavedLocation Print "Program ended" WaitKey Function foo() SaveProgram "savegame.sav" 'will continue from here after loading... Print "Game Saved..." End Function
Code: Select all
Type JOKU
Field _normisijaintiX
Field _normisijaintiY
Field _normikokoX
Field _normikokoX
Field _normiid
EndType
Function tee(_x,_y,_kokox,_kokoy,_id)
_testi.JOKU = New(JOKU)
_testi\_normisijaintiX = _x
_testi\_normisijaintiY = _y
_testi\_normikokoX = _kokox
_testi\_normikokoY = _kokoy
_testi\_normiid = _id
EndFunction
Kiitti paljon! selkeni asiat
Code: Select all
'Asetetaan ruutu hieman zoomattuun tilaan
SCREEN 1024, 768
SetWindow "Painovoimaesimerkki" 'suurenna ruudulle
FrameLimit 40
Const PAINOVOIMA = -0.1'painoviman voimakkuus
Type ukot
Field obj
Field maassa As Byte
Field vauhti
Field yPlus As Float
Field oldY
Field reload
EndType
Type ammukset
Field obj
Field id
EndType
'-------------------------------------------------
'lataa kartta, siirrä sitä ylöspäin ja animoi se.
kenttä=LoadMap("Media\testmap.til","Media\tileset.bmp")
PositionObject kenttä,0,50
PlayObject kenttä,0,0,0.5
'lataa animaatiosarja oikealle, maskaa ja piilota se
oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
ObjectRange oikea,30,51 'tämä pitää asettaa kaikkiin
'sama vasemmalle
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
ObjectRange vasen,30,51 'tämä pitää asettaa kaikkiin
Global gBullet
gBullet = LoadObject( "media\bullet.bmp" )
ShowObject gBullet, OFF
For i = 1 To 5
UusiUkko( oikea, kenttä )
Next i
Function UusiUkko( _obj, _map )
nu.ukot = New( ukot )
nu\obj = CloneObject( _obj )
SetupCollision nu\obj, _map, 1, 4, 2
ObjectRange nu\obj, 30, 51
While nu\vauhti = 0
nu\vauhti = Rand( -1, 1 )
Wend
While True
_x = Rand( 1, MapWidth() )
_y = Rand( 1, MapHeight() )
If GetMap2( 2, _x, _y ) = 0 And GetMap2( 0, _x, _y ) <> 0 Then
PositionObject nu\obj, ( -ObjectSizeX( _map ) - 32 ) / 2 + _x * 32, ( -ObjectSizeY( _map ) + 16 ) / 2 + _y * 32 - 5
Exit
EndIf
Wend
ResetObjectCollision nu\obj
nu\oldY = ObjectY( nu\obj )
EndFunction
Repeat
For iu.ukot = Each ukot
'iu\vauhti=0 'oletuksena ei liikettä
' If RightKey() Then
If iu\vauhti > 0
'juokse oikealle
PaintObject iu\obj,oikea 'vaihda kuvaa...
If iu\maassa Then PlayObject iu\obj,2,11,0.25
ElseIf iu\vauhti < 0 Then
'juokse vasemmalle
PaintObject iu\obj,vasen 'vaihda kuvaa...
If iu\maassa Then PlayObject iu\obj,2,11,0.25
Else
'pysäytä animaatio, jos ei liikuta
PlayObject iu\obj,0
EndIf
Tekoäly( ConvertToInteger( iu ), kenttä )
'liikuta pelihahmoa
TranslateObject iu\obj,iu\vauhti * 2, iu\yPlus
iu\yPlus = iu\yPlus + PAINOVOIMA 'päivitä painovoima
'UpdateGame 'päivitä törmäys
'CloneCameraPosition pelihahmo 'liimaa kamera
jump = 0
If KeyDown(cbKeyZ) And iu\maassa Then
iu\yPlus=4.5 'voimaa ylös päin
jump = 1
EndIf
iu\maassa = 0 'ilmassa jollei toisin käy ilmi
törmäykset=CountCollisions(iu\obj)
'katsotaan tärmätäänkö kattoon tai lattiaan
For i=1 To törmäykset
If GetCollision(iu\obj,i)=kenttä
'lattia
If CollisionAngle(iu\obj,i)=90 And ( Not jump ) Then
iu\yPlus = -1
iu\maassa=1 'jalat on maassa
EndIf
'katto
If CollisionAngle(iu\obj,i)=270 Then
iu\yPlus=-1
EndIf
EndIf
Next i
'jos ollaan ilmassa, näytä toisenlainen kuva
If törmäykset=0 Then PlayObject iu\obj,12,0
bTuhoaUkko = False
For ia.ammukset = Each ammukset
bTuhoaAmmus = False
If iu = First( ukot ) Then
MoveObject ia\obj, 10
EndIf
If ObjectsOverlap( ia\obj, iu\obj ) Then
If ia\id <> ConvertToInteger( iu ) Then
bTuhoaAmmus = True
bTuhoaUkko = True
' Exit
EndIf
ElseIf Distance2( ia\obj, kenttä ) > 1000 Then
bTuhoaAmmus = True
EndIf
If bTuhoaAmmus Then
DeleteObject ia\obj
Delete ia
EndIf
Next ia
If bTuhoaUkko Then
'DeleteObject iu\obj
'Delete iu
EndIf
Next iu
DrawScreen 'piirrä näyttö
Until EscapeKey()
Function Tekoäly( _id, _map )
cu.ukot = ConvertToType( _id )
_objX = ObjectX( cu\obj )
_objY = ObjectY( cu\obj )
If cu\maassa Then
If cu\vauhti = 0 Then
cu\vauhti = Rand( -1, 1 )
EndIf
If GetMap( 2, _objX + cu\vauhti * 64, _objY ) <> 0 Then
If GetMap( 2, _objX + cu\vauhti * 64, _objY + 96 ) = 0 Then
hyppää = True
EndIf
EndIf
If GetMap( 2, _objX + cu\vauhti * 96, _objY + 64 ) = 1 Then
hyppää = True
EndIf
EndIf
If GetMap( 2, _objX + cu\vauhti * 16, _objY ) <> 0 Then
cu\vauhti = cu\vauhti * -1
EndIf
If Not cu\maassa Then
checkY = _objY
While True
checkY - 32
If GetMap( 2, _objX, checkY ) = 1 And checkY > cu\oldY Then
cu\vauhti = 0
Exit
EndIf
If checkY < cu\oldY Then Exit
Wend
EndIf
If hyppää Then
cu\oldY = _objY
cu\yPlus = 4.5
EndIf
If cu\reload = 0 Then
For iu.ukot = Each ukot
If iu <> cu Then
If ObjectSight( cu\obj, iu\obj ) Then
Ammu( _id, GetAngle( _objX, -_objY, ObjectX( iu\obj ), -ObjectY( iu\obj ) ) )
cu\reload = 10
Exit
EndIf
EndIf
Next iu
Else
cu\reload = cu\reload - 1
EndIf
EndFunction
Function Ammu( _id, _angle As Float )
cu.ukot = ConvertToType( _id )
na.ammukset = New( ammukset )
na\obj = CloneObject( gBullet )
na\id = _id
CloneObjectPosition na\obj, cu\obj
RotateObject na\obj, _angle
EndFunction
Älä aloita ikinä kysymystä noin.Kuvatus wrote:Onko mahdollista tehdä ohjelmaa,
Tee yksinkertainen ehtolauseke:Kuvatus wrote:joka avaa kuvan, kun klikkaa sitä kuvaa pic.jpg kakkospainikkeella ja valitsee "Avaa sovelluksessa... -> cbohjelma.exe"?
Code: Select all
if mousex()>imagex and mousex()<imagex+imagewidth(image) and mousey()>imagey and mousey()<imagey+imageheight(image)
Tai jos tarkoitit, että kun selaat resurssienhallinnassa, niin siihen tulee em. valinta? Se tulee automaattisesti kun klikkaat sitä kuvaa => Avaa sovelluksessa => Valitse ohjelma... => Selaa => (haet ohjelmasi ja valitset sen) OK.Kuvatus wrote:Onko mahdollista tehdä ohjelmaa, joka avaa kuvan, kun klikkaa sitä kuvaa pic.jpg kakkospainikkeella ja valitsee "Avaa sovelluksessa... -> cbohjelma.exe"?
Tätähän minä hain, eli kun explorerissa selaa kuvatiedostoja ja valitsee sieltä kuvan jota klikkaa ja ottaa tuon "Avaa sovelluksessa... ja sieltä oma ohjelma, mutta millä saan sen haluamani kuvan avautumaan siihen ohjelmaan?axu wrote:Tai jos tarkoitit, että kun selaat resurssienhallinnassa, niin siihen tulee em. valinta? Se tulee automaattisesti kun klikkaat sitä kuvaa => Avaa sovelluksessa => Valitse ohjelma... => Selaa => (haet ohjelmasi ja valitset sen) OK.Kuvatus wrote:Onko mahdollista tehdä ohjelmaa, joka avaa kuvan, kun klikkaa sitä kuvaa pic.jpg kakkospainikkeella ja valitsee "Avaa sovelluksessa... -> cbohjelma.exe"?
Code: Select all
tiedosto$=CommandLine()
kuva=LoadImage (""+tiedosto)
Repeat
DrawImage kuva,0,0
DrawScreen
Until EscapeKey()
Näin toimii:kuvatus wrote:Tai itse asiassa löysin hetkisen selailulla tuon CommandLine() komennon, mutta en saa oikein toimimaan.
Kun tämän kääntää ohjelma.exeksi ja sitten valitsee kuvasta avaa sovelluksessa -> ohjelma.exe niin ainakin se saa haettua kuvan polun muttei osaa ladata sitä (erroria vilkuttelloo)..
Code: Select all
tiedosto$=CommandLine() kuva=LoadImage (""+tiedosto) Repeat DrawImage kuva,0,0 DrawScreen Until EscapeKey()
Code: Select all
tiedosto$=Trim(CommandLine())
kuva=LoadImage (""+tiedosto)
Repeat
DrawImage kuva,0,0
DrawScreen
Until EscapeKey()
Itse asiassa ei näytä toimivan.Trim wrote:Näin toimii:kuvatus wrote:Tai itse asiassa löysin hetkisen selailulla tuon CommandLine() komennon, mutta en saa oikein toimimaan.
Kun tämän kääntää ohjelma.exeksi ja sitten valitsee kuvasta avaa sovelluksessa -> ohjelma.exe niin ainakin se saa haettua kuvan polun muttei osaa ladata sitä (erroria vilkuttelloo)..
Code: Select all
tiedosto$=CommandLine() kuva=LoadImage (""+tiedosto) Repeat DrawImage kuva,0,0 DrawScreen Until EscapeKey()
Code: Select all
tiedosto$=Trim(CommandLine()) kuva=LoadImage (""+tiedosto) Repeat DrawImage kuva,0,0 DrawScreen Until EscapeKey()