Page 100 of 154
Re: Tyhmät kysymykset
Posted: Thu Dec 04, 2008 7:03 pm
by TheFish
rami123 wrote:miksi Bossi sammuu? se jaksaa seurata vähä aikaa ja sitten se sammuu ja ei reagoi mitenkään mihinkään..
Tuon if:in varmaan pitäisi olla
Muutenhan tuo toteutuu vain jos tapot ovat tasan 5.
Re: Tyhmät kysymykset
Posted: Thu Dec 04, 2008 7:51 pm
by rami123
mikä vika tässsä bossin poistamisessa on?
virhe ilmoitetaan täsät koodista??
ja muut kohdat bossista
Code: Select all
bossi1 = LoadObject ("c:\viikatemies\kingi.png",72)
ShowObject bossi1,OFF
SetupCollision bossi1,kartta,1,4,2
SetupCollision bossi1,ukko,2,2,2
SetupCollision ukko,bossi1,2,2,2
bossi1hp=1500
repeat
If tapot>5 Then
ShowObject bossi1,ON
PointObject bossi1,ukko
If ObjectSight (bossi1,ukko) Then MoveObject bossi1, 1
If ObjectsOverlap (bossi1,ibullet\obj) Then bossi1hp-1000
If bossi1hp=0 Then Delete bossi1
EndIf
Re: Tyhmät kysymykset
Posted: Thu Dec 04, 2008 8:09 pm
by Character
rami123 wrote:
virhe ilmoitetaan täsät koodista??
Edit: laita siihen deleteobject bossi1 ja sen = merkin tilalle <.
Re: Tyhmät kysymykset
Posted: Thu Dec 04, 2008 11:06 pm
by Heki
Code: Select all
FrameLimit 40
SCREEN 500,350
Type AMMUS
Field obj
Field partikkeli
End Type
Type RÄJÄHDYS
Field partikkeli
End Type
savu=LoadAnimImage("C:\Program Files\CoolBasic\Media\smoke.bmp",16,16,0,12)
poks=LoadAnimImage("C:\Program Files\CoolBasic\Media\bang.bmp",32,32,0,8)
arial = LoadFont("arial",50)
DrawToWorld ON
guy = LoadObject ("C:\Documents and Settings\HP_Omistaja\Omat tiedostot\Omat kuvatiedostot\sswsha.bmp",360)
DrawScreen
paukku = LoadObject ("C:\Documents and Settings\HP_Omistaja\Omat tiedostot\Omat kuvatiedostot\pati.bmp",1)
ShowObject paukku,OFF
DrawScreen
hiiri=LoadImage("C:\Documents and Settings\HP_Omistaja\Omat tiedostot\Omat kuvatiedostot\kursori.bmp")
ShowMouse hiiri
DrawScreen
WaitKey
vihu = LoadObject ("C:\Documents and Settings\HP_Omistaja\Omat tiedostot\Omat kuvatiedostot\shiiiit.bmp",360)
DrawScreen
WaitKey
PositionObject guy, -150,-150
DrawScreen
SetupCollision guy,vihu,2,2,2
DrawScreen
Repeat
TurnObject vihu,Rand(0.20)
If LeftKey () Then TurnObject guy, 5
If RightKey () Then TurnObject guy, -5
If UpKey () Then MoveObject guy, 2
If DownKey () Then MoveObject guy, -2
If KeyDown(cbkeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(paukku)
CloneObjectPosition luoti\obj,guy
CloneObjectOrientation luoti\obj,guy
SetupCollision luoti\obj,vihu,2,2,2
SetupCollision luoti\obj,guy,2,1,4
If CountCollisions(luoti\obj) Then
poksis.RÄJÄHDYS = New(RÄJÄHDYS)
poksis\partikkeli = MakeEmitter(poks,10)
CloneObjectPosition poksis\partikkeli,luoti\obj
ObjectLife poksis\partikkeli,11
ParticleMovement poksis\partikkeli,0,0
ParticleEmission poksis\partikkeli,2,1,1
ParticleAnimation poksis\partikkeli,7
DeleteObject luoti\obj
Delete paukku
EndIf
Next paukku
reload=5
If reload>0 Then reload=reload-1
Color cbRed
SetFont arial
Text 225,160, "ASS!"
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
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
DrawGame
Color cbOrange
Box -185,135,367,270,OFF
DrawScreen
Forever
Eli tulee tuo "Can't find NEXT. Missing structure..." ym.
Mikä vikana?
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 12:27 am
by MAVmaggot
Sinulla on ylimääräinen silmukan lopetus jossakin(forever, until, next, end jotain..) Sisennä koodisi paremmin niin virhe löytyy helpommin.
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 5:22 pm
by Character
Miten saisin silleen että vihut eivät pääse kartan ulkopuolelle?
Tarkoitan siis sitä kun luon vihun ja sijoitan sen randomisti niin ne eivät ilmestyisi kuin kartan sisälle.
Tässä koodi:
Code: Select all
Type AMMUS
Field obj
Field speed
Field hp
Field damage
End Type
Type VIHUT
Field obj
Field speed
Field hp
Field damage
End Type
'ladataan mediat
kartta=LoadMap("Media\cdm2.til","Media\tileset.bmp")
ukko=LoadObject("Media\soldier.bmp",72)
vihu=LoadObject("Media\guy.bmp",72)
ampu=LoadSound("Media\Gun 1.wav")
pati=LoadObject("Media\bullet.bmp")
ShowObject vihu, OFF
ShowObject pati, OFF
SetupCollision ukko,kartta,1,4,2
hp = 200 'pelaajan elämät
pisteet = 0 'pelaajan pisteet
Repeat
'jos elämiä on jäljellä niin suritetaan kaikki
If hp>0 Then
'ohjaus
TurnObject ukko,LeftKey()*3-RightKey()*3
MoveObject ukko,UpKey()*3-DownKey()*3
If KeyDown(cbkeyRControl) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj = CloneObject(pati)
luoti\speed = 6
luoti\hp = 20
luoti\damage = 20
SetupCollision luoti\obj,kartta,1,4,2
CloneObjectPosition luoti\obj, ukko
CloneObjectOrientation luoti\obj, ukko
PlaySound ampu
reload=30
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj, luoti\speed
If GetMap(2,ObjectX(luoti\obj),ObjectY(luoti\obj)) Then
DeleteObject luoti\obj
Delete luoti
EndIf
If luoti\hp=0 Or luoti\hp<0 Then
DeleteObject luoti\obj
Delete luoti
EndIf
Next luoti
//Viholliset//
If luonti=0 Then
uusi.VIHUT = New(VIHUT)
uusi\obj = CloneObject(vihu)
uusi\speed = 2
uusi\hp = 20
uusi\damage = 10
mapX=ObjectSizeX(kartta)
mapY=ObjectSizeY(kartta)
SetupCollision uusi\obj,kartta,1,4,2
PositionObject uusi\obj,Rand(-mapX,mapX),Rand(-mapY,mapY)
If GetMap(2,ObjectX(uusi\obj),ObjectY(uusi\obj)) Then
PositionObject uusi\obj,Rand(-mapX,mapX),Rand(-mapY,mapY)
EndIf
luonti=50
EndIf
If luonti>0 Then luonti=luonti-1
For uusi.VIHUT = Each VIHUT
If ObjectSight(uusi\obj,ukko) Then
PointObject uusi\obj, ukko
MoveObject uusi\obj, uusi\speed
EndIf
If GetMap(2,ObjectX(uusi\obj),ObjectY(uusi\obj)) Then
PositionObject uusi\obj,Rand(-mapX,mapX),Rand(-mapY,mapY)
EndIf
If ObjectsOverlap(uusi\obj,ukko) Then hp=hp-uusi\damage
Next uusi
'käydään ammukset ja vihut läpi yhtäaikaa
For luoti.AMMUS = Each AMMUS
For uusi.VIHUT = Each VIHUT
If ObjectsOverlap(luoti\obj,uusi\obj) Then
uusi\hp = uusi\hp - luoti\damage
luoti\hp = luoti\hp - luoti\damage
EndIf
If uusi\hp=0 Or uusi\hp<0 Then
pisteet = pisteet + Rand(25,80)
DeleteObject uusi\obj
Delete uusi
EndIf
Next uusi
Next luoti
EndIf
If hp=0 Or hp<0 Then Goto häviö
DrawGame
'piirretään elämäpalkki
Color cbdarkred
Box 10,10,200,15
Color cbred
Box 10,10,hp,15
Color cbwhite
Text 10,10,"Hp: "+hp
Text 10,30,"Score: "+pisteet
CloneCameraPosition ukko
DrawScreen
Forever
häviö:
arial=LoadFont("arial",25)
Repeat
DrawGame
SetFont arial
Color cbwhite
Text 150,110,"Game Over!"
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 5:37 pm
by DatsuniG
Code: Select all
Positionobject ukko,Rand(0,Screenwidth()-UKONLEVEYS),rand(0,Screenheight()-UKONKORKEUS)
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 6:40 pm
by qwetyone
Voiko CoolBasicillä tehdyllä ohjelmalla tehdä käskyn avata joku tiedosto? Jos on niin joku ystävällinen voisi kertoa..
Ja miten voi ilmoittaa vaikkapa
Code: Select all
If sana=blabla Then Addtext " access denied "
kielteisenä että sanoo että Jos sana erisuuri kuin blabla sitten lisää.... ??
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 7:11 pm
by Jonez
Katso komento Execute tiedostojen availuun.
Toi koodi kielteisenä:
Code: Select all
If sana <> blabla Then Addtext " access denied "
Re: Tyhmät kysymykset
Posted: Fri Dec 05, 2008 7:13 pm
by Koodiapina
Voiko CoolBasicillä tehdyllä ohjelmalla tehdä käskyn avata joku tiedosto? Jos on niin joku ystävällinen voisi kertoa..
No XP:ssä ainakin toimii
En tiedä Vistasta, kun en ole koskaan käyttänyt.
Ja miten voi ilmoittaa vaikkapa *koodi* kielteisenä että sanoo että Jos sana erisuuri kuin blabla sitten lisää.... ??
Käytä operaattoreita < ja >. Esim:
Code: Select all
if sana<>blabla then addtext "acces denied
EDIT: Myöhässä >:(
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 12:04 pm
by Character
DatsuniG wrote:Code: Select all
Positionobject ukko,Rand(0,Screenwidth()-UKONLEVEYS),rand(0,Screenheight()-UKONKORKEUS)
En saanut toimimaan voisiko joku selventää?
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 1:01 pm
by Jonez
Tässä pieni koodinpätkä joka luo ja arpoo ukot vain ja ainoastaan mapin sisälle, sellaisiin kohtiin jossa ei ole törmäyskerrosta. Kyseinen asia siis tehdään funktiolla LuoObjekti()
Code: Select all
SCREEN 800, 600
FrameLimit 40
Type ukot
Field obj
End Type
mappi = LoadMap( "media\cdm2.til", "media\tileset.bmp" )
Global ukko
ukko = LoadObject( "media\guy.bmp" )
ShowObject ukko, OFF
For i = 1 To 50
LuoObjekti()
Next i
Repeat
TranslateCamera ( RightKey() - LeftKey() ) * 10, ( UpKey() - DownKey() ) * 10
DrawScreen
Forever
Function LuoObjekti()
nu.ukot = New( ukot )
nu\obj = CloneObject( ukko )
While True
_x = Rand( 0, MapWidth() )
_y = Rand( 0, MapHeight() )
If GetMap2( 0, _x, _y ) <> 0 And GetMap2( 2, _x, _y ) = 0 Then
PositionObject nu\obj, -MapWidth() * 16 + _x * 32 - 16, -MapHeight() * 16 + _y * 32 - 16
Return True
EndIf
Wend
End Function
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 2:23 pm
by temu92
Jonez, funktiossa on yksi mutta. Tilekoko ei aina ole 32x32. Tietty siitä tulee hyvä kotitehtävä niille jotka ottavat tuon
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 3:52 pm
by rami123
miksi tappo pisteitä tulee enemmän kuin 1? (tarkoitan todella paljon)
tässä on varmaan ongelma kohta
Code: Select all
If bossi1hp<0 Then
tapot+1
PaintObject bossi1,kuollut
MoveObject bossi1,-1
EndIf
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 3:59 pm
by Sepi
Koska niitä tulee aina vain enemmän ja enemmän niin kauan kuin vihun hp on alle 1. Elikkä tuo korjaantuu kun laitat tuon silmukan sisälle näin:
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 4:00 pm
by -Z-
rami123 wrote:miksi tappo pisteitä tulee enemmän kuin 1? (tarkoitan todella paljon)
tässä on varmaan ongelma kohta
Code: Select all
If bossi1hp<0 Then
tapot+1
PaintObject bossi1,kuollut
MoveObject bossi1,-1
EndIf
No tietenkin sen takia, että piste lisätään joka framessa, jossa bossilla on alle nolla HP:ta. Tee vaikka näin:
Code: Select all
If bossi1hp<0 Then
if pisteetlisätty=0 then
tapot+1
pisteetlisätty=1
endif
PaintObject bossi1,kuollut
MoveObject bossi1,-1
EndIf
[/quote]
Varmaan on jokin vähemmän kusinen metodikin, mutta noin minä sen tekisin.
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 4:39 pm
by rami123
sepi tuo teki bossista kuolemattoman taas..
Z tuo toimii
kiitos en olisi osannut noin tehdä sitä.
EDIT:Tiedän koodissani on joku vika
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 4:58 pm
by Sepi
Rami, eikö bossin pitäisi kuolla jos enu on alle 1? Nimittäin tuo keinoni toimisi silloin. Ei kai kukaan elä kun energiaa on 0?
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 9:14 pm
by rami123
nyt en keksi taaskaan mitään..
mites sen että tuo maalataan, ja sen jälkeen pelaaja ei voi menettää hp tä siitä ruumiista?
Code: Select all
If tapot>2 Then
ShowObject bossi1,ON
PointObject bossi1,ukko
If ObjectSight (bossi1,ukko) Then MoveObject bossi1, 1
If ObjectsOverlap (bossi1,ukko) Then hp-1
EndIf
If bossi1hp<0 Then
if pisteetlisätty1=0 Then
tapot+1
score+1000
pisteetlisätty1=1
EndIf
PaintObject bossi1,kuollut
MoveObject bossi1,-1
EndIf
Re: Tyhmät kysymykset
Posted: Sat Dec 06, 2008 9:53 pm
by Character
Varmaan muuttujalla:
Code: Select all
If tapot>2 Then
bossielossa=true
ShowObject bossi1,ON
PointObject bossi1,ukko
If ObjectSight (bossi1,ukko) Then MoveObject bossi1, 1
If ObjectsOverlap (bossi1,ukko) and bossielossa=true Then hp-1
EndIf
If bossi1hp<0 Then
bossielossa=false
if pisteetlisätty1=0 Then
tapot+1
score+1000
pisteetlisätty1=1
EndIf
PaintObject bossi1,kuollut
MoveObject bossi1,-1
EndIf
Noin tekisin ainakin itse.
Edit: No joo. On kyllä purkkaisa ratkaisu.