Tyhmät kysymykset (I/2009)
Re: Tyhmät kysymykset
Ohjelmassa on kaksi silmukkaa ja toisesta silmukasta pitäis päästä takaisin ekaan mitä tehdä?
(olen jo kokeillut gotosavedlocationia)
(olen jo kokeillut gotosavedlocationia)
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Yksinkertaisesti.Gosubilla.Kirjoita vaikka näin ensinmäisen silmukan alkuun.
sitten toisen silmukan alkuun sama mutta vähän erillä taval:
ja sitten jos olet toisessa silmukassa ja haluat ensinmäiseen niin kirjoita:
gotosavedlocation jatkaa ohjelmaa tallennetusta paikasta joka palauttaa muuttujat ja semmoset.
Se olisi voinut sekoittaa vaikka koko homman.
Code: Select all
ekasimlmukka:
sitten toisen silmukan alkuun sama mutta vähän erillä taval:
Code: Select all
tokasilmukka:
Code: Select all
GoSub ekasilmukka
Se olisi voinut sekoittaa vaikka koko homman.
Re: Tyhmät kysymykset
Sama juttu gotolla ja gotosavedgamella
voisko joku tehä vian määrityksen?
voisko joku tehä vian määrityksen?
Code: Select all
Kuva=MakeImage (400,300)
alku:
viivaon=1
hiiriy=1
hiirix=1
Repeat
DrawToScreen
DrawImage kuva,0,0
If hiiriy=1 And hiirix=1 Then hiiri=1 Else hiiri=0
If viivaon=1 And MouseHit(1) Then viiva=1 Else viiva=0
If hiiri=1 And viiva=1 Then
viivax1=MouseX()
viivay1=MouseY()
Exit
EndIf
DrawScreen
Forever
Repeat
DrawImage kuva,0,0
Line viivax1,viivay1,MouseX(),MouseY()
If hiiriy=1 And hiirix=1 Then hiiri=1 Else hiiri=0
If viivaon=1 And MouseHit(1) Then viiva=1 Else viiva=0
If hiiri=1 And viiva=1 Then
viivax2=MouseX()
viivay2=MouseY()
DrawToImage kuva
Line viivax1,viivay1,viivax2,viivay2
DrawToScreen
Goto alku
EndIf
If MouseHit(2) Then SaveImage kuva,"data/kuva.bmp"
DrawToScreen
DrawScreen
Forever
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Testasin ja se pomppii silmukasta toiseen.Vika taitaa olla muussa koodissa.nevssons wrote:Sama juttu gotolla ja gotosavedgamella
voisko joku tehä vian määrityksen?
Code: Select all
koodia
Re: Tyhmät kysymykset
se toimii jos goton poistaa mutta alku pistettä ei voi vaihtaaM.R wrote:Testasin ja se pomppii silmukasta toiseen.Vika taitaa olla muussa koodissa.nevssons wrote:Sama juttu gotolla ja gotosavedgamella
voisko joku tehä vian määrityksen?
Code: Select all
koodia
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Rajua purkkaa! Venyy ja paukkuu.nevssons wrote:se toimii jos goton poistaa mutta alku pistettä ei voi vaihtaa
Jos nyt ihan oikein tuon viritelmän ymmärsin niin siinä piirrellään viivoja kuvaan. Jonkinlainen piirto-ohjelma siis?
Jos nyt ihan heti alkuun unohdetaan goto ja tehdään sen käyttö vaikka rangaistavaksi niin tätä voitaisiin lähestyä hieman toisin.
Code: Select all
canvas = MakeImage(ScreenWidth(), ScreenHeight())
drawMode = False
startX = 0
startY = 0
Repeat
If MouseHit(1) Then
If drawMode Then
DrawToImage canvas
Line startX, startY, MouseX(), MouseY()
DrawToScreen
EndIf
startX = MouseX()
startY = MouseY()
drawMode = True
EndIf
If MouseHit(2) Then drawMode = False
DrawImage canvas, 0, 0
If drawMode Then Line startX, startY, MouseX(), MouseY()
DrawScreen
Forever
Re: Tyhmät kysymykset
jepulis. sitten vaan sovellan ton muihin toimintoihin
Koodarina kohtalainen, henkilönä vittumainen
-
- Advanced Member
- Posts: 335
- Joined: Tue Aug 28, 2007 3:55 pm
- Location: Siellä jossain
Re: Tyhmät kysymykset
Miten saan tällä funktiolla rivitetyn lauseen rivien määrän selville?
Code: Select all
Function RowText(st$,x,y,x2,center=0)
If x + TextWidth(st$) < x2 Then
If center = ON Then Text (x+x2)/2-TextWidth(st$)/2,y,st$ Else Text x,y,st$
Else
For i = 1 To CountWords(st$)
word$ = GetWord(st$,i)
If x + TextWidth(sentence$) + TextWidth(word$) > x2 Then
If center = ON Then
Text (x + x2)/2 - TextWidth(sentence$)/2, y, sentence$
Else
Text x, y, sentence$
EndIf
sentence$ = ""
y = y + TextHeight("I")
EndIf
sentence$ = sentence$ + word$ + " "
Next i
If sentence$ <> "" Then
If center = ON Then Text (x+x2)/2-TextWidth(sentence$)/2,y,sentence$ Else Text x,y,sentence$
EndIf
EndIf
End Function
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee
Joku projekti meneillään... Mitähän siitäkin tulee
Re: Tyhmät kysymykset
Miten saan järjestettyä tyypin jäsenet oikeaan järjestykseen esim. energian perusteella? Insertillä ilmeisesti hoituisi, mutta en saanut itse sitä onnistumaan.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Tyhmät kysymykset
Näin:iTKEVAnAKKI wrote:Miten saan tällä funktiolla rivitetyn lauseen rivien määrän selville?
Code: Select all
lause$ = "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum"
Repeat
Text 0,0,"Rivejä: "+ReturnRows(lause,5,30,200)
rowtext(lause,5,30,200)
DrawScreen
Forever
Function ReturnRows(st$,x,y,x2)
If x + TextWidth(st$) < x2 Then
y = 1
Else
For i = 1 To CountWords(st$)
word$ = GetWord(st$,i)
If x + TextWidth(sentence$) + TextWidth(word$) > x2 Then
sentence$ = ""
y = y + TextHeight("I")
EndIf
sentence$ = sentence$ + word$ + " "
Next i
EndIf
Return (y / TextHeight("I"))-1
EndFunction
Function RowText(st$,x,y,x2,center=0)
If x + TextWidth(st$) < x2 Then
If center = ON Then Text (x+x2)/2-TextWidth(st$)/2,y,st$ Else Text x,y,st$
Else
For i = 1 To CountWords(st$)
word$ = GetWord(st$,i)
If x + TextWidth(sentence$) + TextWidth(word$) > x2 Then
If center = ON Then
Text (x + x2)/2 - TextWidth(sentence$)/2, y, sentence$
Else
Text x, y, sentence$
EndIf
sentence$ = ""
y = y + TextHeight("I")
EndIf
sentence$ = sentence$ + word$ + " "
Next i
If sentence$ <> "" Then
If center = ON Then Text (x+x2)/2-TextWidth(sentence$)/2,y,sentence$ Else Text x,y,sentence$
EndIf
EndIf
End Function
Re: Tyhmät kysymykset
Mitä tekisinkään ilman tätä topikkia. Tällä kertaa 2 kysymystä:
1. Miksi tulee mav kun yritän päästä peliin alkuvalikosta?
2. Miksi tulee mav kun pelaaja yrittää lyödä?
Koodi:
1. Miksi tulee mav kun yritän päästä peliin alkuvalikosta?
2. Miksi tulee mav kun pelaaja yrittää lyödä?
Koodi:
Code: Select all
SCREEN 200,100
aloitapeli=LoadObject("media\aloitapeli.bmp")
lopetapeli=LoadObject("media\lopetapeli.bmp")
hiiri=LoadObject ("media\cursor.bmp")
ShowMouse OFF
PositionObject aloitapeli,0,30
PositionObject lopetapeli,0,-20
Repeat
PositionObject hiiri,MouseWX(),MouseWY()
If ObjectsOverlap (hiiri,aloitapeli) And MouseHit(1) Then Goto peli
If ObjectsOverlap (hiiri,lopetapeli) And MouseHit(1) Then End
DrawScreen
Forever
peli:
SCREEN 0,0,0,cbfullscreen
FrameLimit 40
heppu=LoadObject("media\kamu.bmp",72)
tähtäys=LoadObject("media\hiiri.bmp")
huitaisu=LoadAnimObject("Media\huitaisu.bmp",38,50,0,10)
ShowObject huitaisu,OFF
ObjectRange huitaisu,30,51
PositionObject heppu,500,-400
Repeat
PositionObject tähtäys,MouseWX(),MouseWY()
If KeyDown (17) Then TranslateObject heppu,0,2
If KeyDown (30) Then TranslateObject heppu,-2,0
If KeyDown (31) Then TranslateObject heppu,0,-2
If KeyDown (32) Then TranslateObject heppu,2,0
If MouseHit(1) Then
PaintObject heppu,huitaisu
PlayObject pelihahmo,0,10,0.25
EndIf
PointObject heppu,tähtäys
DrawScreen
Until EscapeKey()
Re: Tyhmät kysymykset
Kumpikin mav tulee samasta syystä: Kun menet peliin, paint hiiren 1-nappulaa. Kun lyöt, painat hiiren 1-nappulaa. Kun hiiren 1-nappulaa painaa, ajetaan koodi:
Objektia pelihahmo ei ole olemassakaan.
Edit.
Suosittelen tekemään ton huitaisun tähän malliin:
Eli sulla on yks objekti jolle annetaan kaikki komennot: Tätä objektia (tässä objektin nimi on "pelaaja") liikutetaa, animoidaan jne. Kun halutaan vaihtaa objektin ulkonäköä (esim. tässä seisomisesta juoksuksi), se objekti maalataan uudella ulkonäöllä (paintobject pelaaja, vasen, tai esim. paintobject pelaaja, huitaisu). Kun objekti tekee jotain, käytetään komentoa PlayObject pelaaja.
Eli tarvitset:
objektin jolle tehdään kaikki mitä halutaan: Liikutus, animointi jne.
Muut objektit joilla ainoastaan maalataan tämä eka objekti.
Code: Select all
PlayObject pelihahmo,0,10,0.25
Edit.
Suosittelen tekemään ton huitaisun tähän malliin:
Code: Select all
oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13)
MaskObject oikea,cbMagenta
ShowObject oikea,OFF
vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13)
MaskObject vasen,cbMagenta
ShowObject vasen,OFF
pelaaja = MakeObject()
PaintObject pelaaja, oikea
Repeat
If LeftKey() Then
PaintObject pelaaja, vasen
PlayObject pelaaja, 2, 11
ElseIf RightKey() Then
PaintObject pelaaja, oikea
PlayObject pelaaja, 2, 11
Else
PlayObject pelaaja, 0
EndIf
DrawScreen
Forever
Eli tarvitset:
objektin jolle tehdään kaikki mitä halutaan: Liikutus, animointi jne.
Muut objektit joilla ainoastaan maalataan tämä eka objekti.
-
- Newcomer
- Posts: 6
- Joined: Thu Dec 20, 2007 3:49 pm
Re: Tyhmät kysymykset
Tätä on varmaan kysytty tässä ketjussa varmaan miljoona kertaa, mutta en jaksanu käydä kun yheksän sivullista läpi,(eikä vastausta löytynyt) joten kysyn nyt:
miten saa räiskintäpeliin luotua heltit, ja miten vihuja saa "spawnaamaan" tiettyyn paikkaan??(vastaus molempiin esimerkin kanssa(satun olemaan hiukan vähäjärkinen)jos mahdollista)
miten saa räiskintäpeliin luotua heltit, ja miten vihuja saa "spawnaamaan" tiettyyn paikkaan??(vastaus molempiin esimerkin kanssa(satun olemaan hiukan vähäjärkinen)jos mahdollista)
Re: Tyhmät kysymykset
Miks elipsi ei seuraa hiirtä?
Code: Select all
kuva = MakeImage(400, 300)
eliON = False
elix = 0
eliy = 0
hiirix=True
hiiriy=True
elipsi=True
Repeat
ristix1=MouseX() -5
ristiy1=MouseY() -5
ristix2=MouseX() +5
ristiy2=MouseY() +5
If hiirix And hiiriy Then hiiri=True Else hiiri=False
If elipsi And MouseHit(1) Then eli=True Else eli=False
If hiiri Then
ShowMouse OFF
Line ristix1,MouseY(),ristix2,MouseY()
Line MouseX(),ristiy1,MouseX(),ristiy2
Else
ShowMouse ON
EndIf
If hiiri And eli Then
If elion Then
DrawToImage kuva
Ellipse elix, eliy, Distance (elix, eliy, MouseX(),MouseX()),Distance (elix, eliy, MouseY(),MouseY()),0
DrawToScreen
elinon=True
EndIf
eliX = MouseX()
eliY = MouseY()
elion = True
EndIf
If elinon Then
elion=False
elinon=False
EndIf
DrawImage kuva, 0, 0
If elion Then Ellipse elix, eliy, Distance (elix, elix, MouseX(),MouseX()),Distance (eliy, eliy, MouseY(),MouseY()),0
If MouseHit(3) Then SaveImage kuva,"images/kuva.bmp"
DrawScreen
Forever
Koodarina kohtalainen, henkilönä vittumainen
Re: Tyhmät kysymykset
Olipas nolo virhe. Kiitos kuitenkin!Jonez wrote:Kumpikin mav tulee samasta syystä: Kun menet peliin, paint hiiren 1-nappulaa. Kun lyöt, painat hiiren 1-nappulaa. Kun hiiren 1-nappulaa painaa, ajetaan koodi:Objektia pelihahmo ei ole olemassakaan.Code: Select all
PlayObject pelihahmo,0,10,0.25
Edit.
Suosittelen tekemään ton huitaisun tähän malliin:Eli sulla on yks objekti jolle annetaan kaikki komennot: Tätä objektia (tässä objektin nimi on "pelaaja") liikutetaa, animoidaan jne. Kun halutaan vaihtaa objektin ulkonäköä (esim. tässä seisomisesta juoksuksi), se objekti maalataan uudella ulkonäöllä (paintobject pelaaja, vasen, tai esim. paintobject pelaaja, huitaisu). Kun objekti tekee jotain, käytetään komentoa PlayObject pelaaja.Code: Select all
oikea=LoadAnimObject("Media\zerorun1.bmp",47,51,0,13) MaskObject oikea,cbMagenta ShowObject oikea,OFF vasen=LoadAnimObject("Media\zerorun2.bmp",47,51,0,13) MaskObject vasen,cbMagenta ShowObject vasen,OFF pelaaja = MakeObject() PaintObject pelaaja, oikea Repeat If LeftKey() Then PaintObject pelaaja, vasen PlayObject pelaaja, 2, 11 ElseIf RightKey() Then PaintObject pelaaja, oikea PlayObject pelaaja, 2, 11 Else PlayObject pelaaja, 0 EndIf DrawScreen Forever
Eli tarvitset:
objektin jolle tehdään kaikki mitä halutaan: Liikutus, animointi jne.
Muut objektit joilla ainoastaan maalataan tämä eka objekti.
Last edited by beg on Sun Jan 20, 2008 1:48 pm, edited 2 times in total.
Re: Tyhmät kysymykset
Nyt tuli mulle vastaan ihan uus juttu, nimittäin animaatiot. Ajattelinpa kysästä, että miten saisin aikaan suuliekin pelaajan / vihun ampuessa?
Re: Tyhmät kysymykset
Tyylikkäintä olisi varmaan tehdä kaksi kuvaa: kuva, jossa pelaaja on ase kädessä ja kuva jossa pelaaja ampuu. Ampumiskuvaan voi sitten piirtää suuliekin ja lisätä valaistukseen välähdyksen ja mahdollisesti tehdä pieniä muutoksia hahmon asentoon niin asella näyttää olevan rekyyliäkin.
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
Re: Tyhmät kysymykset
Kuinka voi järjestää tyypin jäsenet kolmen tyyppi muttujan perusteella?Eli missä ne kolme muuttujaa on samaa niin ne ois peräkkäin.
-
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 3:53 pm
- Location: Suomi, Finland
- Contact:
Re: Tyhmät kysymykset
Minä toteutan suuliekin erillisellä objectilla joka vain siirretään oikeaa kohtaan siten saa dynaamisuutta kun on monta liekkikuvaa eikä aina se sama
- -Z-
- Devoted Member
- Posts: 682
- Joined: Tue Aug 28, 2007 3:33 pm
- Location: In ur danmaku, grazin ur bullets
Re: Tyhmät kysymykset
Ensimmäinen ongelmani liittyen GTA-klooniini. "Auto"(eli ukko) Tekee ohjelman käynnistyessä pyöreän käännöksen, ja lähtee kulkemaan suoraan alaspäin. Piste, jonne sen pitäisi mennä, on valitettavasti vasemmalla eikä alhaalla. Kuseeko CurvePointObjecista muokkaamani funktio, vai mikä?
Code: Select all
SCREEN 600,400
Type AMMUS
Field obj
End Type
FrameLimit 40
ukkoei=LoadAnimObject("Media\plrun_unarmed.png",16,16,0,7,32)
ShowObject ukkoei,OFF
pati=LoadObject("Media\bullet.png",16)
ShowObject pati,OFF
ShowMouse OFF
map=LoadMap("media\gtatest.til","media\tilesetgta.png")
car=LoadObject("media\guy.bmp",72)
MaskObject map, 255,0,255
ClsColor cbwhite
ukko = MakeObject(32)
PaintObject ukko,ukkoei
selection=1
point=1
Repeat
CloneCameraPosition ukko
RotateObject ukko, GetAngle(ObjectX(ukko),-ObjectY(ukko),MouseWX(),-MouseWY())
TranslateObject ukko, KeyDown(cbkeyd)*3-KeyDown(cbkeya)*3,KeyDown(cbkeyw)*3-KeyDown(cbkeys)*3
If KeyDown(cbkeyw) Or KeyDown(cbkeys) Or KeyDown(cbkeya) Or KeyDown(cbkeyd) Then PlayObject ukko, 0,8,0.3
If Not KeyDown(cbkeyw) Then
If Not KeyDown(cbkeys) Then
If Not KeyDown(cbkeya) Then
If Not KeyDown(cbkeyd) Then PlayObject ukko, OFF
EndIf
EndIf
EndIf
MoveObject car,3
For y=1 To MapHeight()
For x=1 To MapWidth()
If GetMap2(3,x,y)=point Then curvepointobject2(car,x,y,10)
If GetMap(3,ObjectX(ukko),ObjectY(ukko))=point Then point+1
Next x
Next y
If point>4 Then point=1
If MouseDown(1) And reload=0 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
MoveObject luoti\obj,movef,mover
reload=gunreload
If dual=1 Then
luoti.AMMUS = New(AMMUS)
luoti\obj=CloneObject(pati)
CloneObjectPosition luoti\obj,ukko
CloneObjectOrientation luoti\obj,ukko
MoveObject luoti\obj,movef,mover*-1
reload=gunreload
EndIf
EndIf
If reload>0 Then reload=reload-1
For luoti.AMMUS = Each AMMUS
MoveObject luoti\obj,12
Next luoti
If selection=1 Then
PaintObject ukko,ukkoei
dmg=1
dual=1
movef=8
mover=10
gunreload=5
EndIf
DrawGame
Color cbred
Line MouseX()-5,MouseY(),MouseX()+5,MouseY()
Line MouseX(),MouseY()+5,MouseX(),MouseY()-5
DrawScreen
Until EscapeKey()
Function CurvePointObject2(_obj, x, y, _smoothness = 5)
angle# = ObjectAngle(_obj)
newangle# = GetAngle(ObjectX(_obj),ObjectY(_obj),x,y )
angle# = CurveAngle(newangle, angle, _smoothness)
RotateObject _obj, angle
EndFunction
"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