Tyhmät kysymykset (I/2012)

Voit pyytää apua ohjelmointiongelmiin täältä.
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Tyhmät kysymykset (I/2012)

Post by esa94 »

Latexi95 wrote:
naputtelija wrote: Tuo on kökkö ratkaisu. Kerroin tämän jo vähän aikaa sitten, mutta kannattaa cbEditorin ominaisuuksista valita suorita ohjelma järjestelmänvalvojana.
Mielestäni ratkaisuni on paljon parempi kuin aina järjestelmän valvojana suorittaminen. Ei tule aina inhottavaa oikeuksien kyselyä eikä uudelleen asentaminen kestä kuin 2min.
Ohjelmien poistaminen Windowsilla on aina persiistä.
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset (I/2012)

Post by valscion »

Ei kinata nyt mielipideasioista täällä topikissa, kiitos.

Vaihtoehtoja on tosiaan ja kaikki niistä ratkaisevat asian, mikäli ongelmakohtana ei ole virustentorjuntaohjelmisto:
  • Aja CBEditor.exe järjestelmänvalvojana
  • Asenna CoolBasic jonnekin muualle kuin Program Files -kansioon
  • Aseta CoolBasic-kansiolle omalle/kaikille käyttäjille kirjoitusoikeudet
Tämä kysymys tullee aina vähän väliä esiin eikä sille voi mitään, että kaikki käyttäjät eivät osaa/ymmärrä lukea tuota usein ihmeteltyjen ongelmien listaa. Koitetaan tulevaisuudessa vastata kohteliaasti kysymyksiin eikä vain heti turhauduta, mikäli viesti ei mene perille :)
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
User avatar
seancarrion
Active Member
Posts: 128
Joined: Sun Jan 01, 2012 11:37 am
Location: ---

Re: Tyhmät kysymykset (I/2012)

Post by seancarrion »

Hei!
Miten saisin luotua ns. valikon, jossa on backgroundi, ja välkkyvä "Insert coin to play"-teksti.
Painettua mitä tahansa näppäintä, peli alkaa. Kiitos jo etukäteen.
---
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2012)

Post by Latexi95 »

Tee Repeat-Until looppi jossa piirrät välkkyvän tekstin (Text, Color, DrawScreen jne.) ja taustan. Untilin ehdoksi kannattaa laittaa (GetKey() <> 0 Or GetMouse() <> 0), jolloin loopista poistutaan, kun jotain nappia painetaan.
User avatar
seancarrion
Active Member
Posts: 128
Joined: Sun Jan 01, 2012 11:37 am
Location: ---

Re: Tyhmät kysymykset (I/2012)

Post by seancarrion »

Latexi95 wrote:Tee Repeat-Until looppi jossa piirrät välkkyvän tekstin (Text, Color, DrawScreen jne.) ja taustan. Untilin ehdoksi kannattaa laittaa (GetKey() <> 0 Or GetMouse() <> 0), jolloin loopista poistutaan, kun jotain nappia painetaan.
Tuota, koska olen aika säälittävä näissä asioissa, voisitko kirjoittaa minulle koodipätkän? c:
---
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Tyhmät kysymykset (I/2012)

Post by Latexi95 »

No tässä taiteellinen näkemykseni vilkkuvasta tekstistä:

Code: Select all

Repeat
	Color Rand(255),Rand(255),Rand(255)
	Text 10, 10, "Hello world"
	DrawScreen
Until (GetKey() <> 0 Or GetMouse() <> 0)
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2012)

Post by naputtelija »

Latexi95 wrote:No tässä taiteellinen näkemykseni vilkkuvasta tekstistä:

Code: Select all

Repeat
	Color Rand(255),Rand(255),Rand(255)
	Text 10, 10, "Hello world"
	DrawScreen
Until (GetKey() <> 0 Or GetMouse() <> 0)
Hän tarkoitti varmaan tällaista:

Code: Select all


starttime = Timer() 'Otetaan nykyinen aika
Repeat
    If Timer()-starttime >500 Then Color cbRed 'Jos kulunut aika on suurempi kuin 0,5s niin punainen
    If Timer()-starttime <500 Then Color cbGreen 'Jos pienempi niin sininen
    If Timer()-starttime >1000 Then starttime=Timer() 'Jos suurempi kuin 1s nollataan ajastin
    Text 0,0,"Minä vilkun!" 'Piirretään teksti
    DrawScreen
Forever

<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
seancarrion
Active Member
Posts: 128
Joined: Sun Jan 01, 2012 11:37 am
Location: ---

Re: Tyhmät kysymykset (I/2012)

Post by seancarrion »

Kiitos kummallekkin, mutta tarkoitin enemmän tällaista :
Kun ohjelma käynnistyy, näkyy kuva, jonka keskellä on "Insert coin to play!"-teksti. Myös musiikki soi. Vilkkumisella tarkoitan sitä, että se vaihtaa näkyvän ja näkymättömän välillä joka sekunti. Minkä tahansa napin jälkeen pelaaja spawnaa kentälle, minkä yhteydessä musiikki vaihtuu. Kiitos kuitenkin avusta.
---
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2012)

Post by naputtelija »

seancarrion wrote:Kiitos kummallekkin, mutta tarkoitin enemmän tällaista :
Kun ohjelma käynnistyy, näkyy kuva, jonka keskellä on "Insert coin to play!"-teksti. Myös musiikki soi. Vilkkumisella tarkoitan sitä, että se vaihtaa näkyvän ja näkymättömän välillä joka sekunti. Minkä tahansa napin jälkeen pelaaja spawnaa kentälle, minkä yhteydessä musiikki vaihtuu. Kiitos kuitenkin avusta.
Ahaa... SIinä tapauksessa ratkaisu olisi tämmöinen.
Kommenteissa kerrotaan vähän tarkemmin. "Täyttöpeliksi" koodailin pikkuisen liikuteltavan pallon.

Code: Select all

FrameLimit 60
//Tässä on valikko
starttime = Timer() 'Otetaan nykyinen aika
normal=LoadFont("arial",13)
big=LoadFont("arial",20)
SetFont(big)
Repeat
    If Timer()-starttime <500 Then CenterText ScreenWidth()/2,0,"Insert coin To play!!" 'Piirretään teksti jos pienempi kuin 0,5s
    If Timer()-starttime >1000 Then starttime=Timer() 'Jos suurempi kuin 1s nollataan ajastin
    DrawScreen
Until (GetKey() <> 0 Or GetMouse() <> 0)
SetFont(normal)

//Hyvin yksinkertainen liikkuva juttu by naputtelija
//Laita tämän paikalle sitten pelisi koodi
//Tämän toimintaa ei siis tarvi ymmärtää, mutta voit yrittää :)
x=ScreenWidth()/2
y=ScreenHeight()/2
angle=90
speed=5
Repeat
    move=0
    move=UpKey()*speed-DownKey()*speed
    angle=angle+RightKey()*speed-LeftKey()*speed
    x=x+Int(Cos(angle)*move)
    y=y+Int(Sin(angle)*move)
    Circle x-10,y-10,20,0
    Line x,y,x+Int(Cos(angle)*15),y+Int(Sin(angle)*15)
    DrawScreen
Forever

<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
seancarrion
Active Member
Posts: 128
Joined: Sun Jan 01, 2012 11:37 am
Location: ---

Re: Tyhmät kysymykset (I/2012)

Post by seancarrion »

naputtelija wrote:
seancarrion wrote:Kiitos kummallekkin, mutta tarkoitin enemmän tällaista :
Kun ohjelma käynnistyy, näkyy kuva, jonka keskellä on "Insert coin to play!"-teksti. Myös musiikki soi. Vilkkumisella tarkoitan sitä, että se vaihtaa näkyvän ja näkymättömän välillä joka sekunti. Minkä tahansa napin jälkeen pelaaja spawnaa kentälle, minkä yhteydessä musiikki vaihtuu. Kiitos kuitenkin avusta.
Ahaa... SIinä tapauksessa ratkaisu olisi tämmöinen.
Kommenteissa kerrotaan vähän tarkemmin. "Täyttöpeliksi" koodailin pikkuisen liikuteltavan pallon.

Code: Select all

FrameLimit 60
//Tässä on valikko
starttime = Timer() 'Otetaan nykyinen aika
normal=LoadFont("arial",13)
big=LoadFont("arial",20)
SetFont(big)
Repeat
    If Timer()-starttime <500 Then CenterText ScreenWidth()/2,0,"Insert coin To play!!" 'Piirretään teksti jos pienempi kuin 0,5s
    If Timer()-starttime >1000 Then starttime=Timer() 'Jos suurempi kuin 1s nollataan ajastin
    DrawScreen
Until (GetKey() <> 0 Or GetMouse() <> 0)
SetFont(normal)

//Hyvin yksinkertainen liikkuva juttu by naputtelija
//Laita tämän paikalle sitten pelisi koodi
//Tämän toimintaa ei siis tarvi ymmärtää, mutta voit yrittää :)
x=ScreenWidth()/2
y=ScreenHeight()/2
angle=90
speed=5
Repeat
    move=0
    move=UpKey()*speed-DownKey()*speed
    angle=angle+RightKey()*speed-LeftKey()*speed
    x=x+Int(Cos(angle)*move)
    y=y+Int(Sin(angle)*move)
    Circle x-10,y-10,20,0
    Line x,y,x+Int(Cos(angle)*15),y+Int(Sin(angle)*15)
    DrawScreen
Forever

Kiitos. Tämä oli juuri sitä mitä tarvitsin. Nyt pitää vielä säätää tekstin lokaatio, sekä saada kuva taustalle.
Ihanaa, että täällä on apua antavia ihmisiä. Hyvää yötä sinulle c:
---
Pollomuhku
Newcomer
Posts: 2
Joined: Tue Jun 18, 2013 7:23 pm

Re: Tyhmät kysymykset (I/2012)

Post by Pollomuhku »

Code: Select all

Function BGM (name$, change)

If SoundPlaying(music)=False Then
    music=PlaySound ("Data\BGM\"+name$+".mp3")
EndIf
If change=1
    StopSound music
    music=PlaySound ("Data\BGM\"+name$+".mp3")
EndIf

End Function
Mikä tässä funktiossa on vikana? Aiemman musiikin soitto ei lopu.
Sly_Jack0
Devoted Member
Posts: 612
Joined: Mon Dec 10, 2007 8:25 am

Re: Tyhmät kysymykset (I/2012)

Post by Sly_Jack0 »

Onko music-muuttuja globaali? Jos ei, niin tuo funktio pysäyttäisi itse aloittamansa äänen.
Pollomuhku
Newcomer
Posts: 2
Joined: Tue Jun 18, 2013 7:23 pm

Re: Tyhmät kysymykset (I/2012)

Post by Pollomuhku »

music ei ole globaali, funktion tarkoitus olisi pystyä toistamaan musiikkia ja vaihtamaan kappaleesta toiseen. Eräs toinenkin ongelma tuli esiin, jonkin ajan päästä tulee virheilmoitus "Can't load image: 'Data\BG\Cell.jpg'", vaikka kyseinen kuva näkyy olevan aivan hyvin ladattuna.
EDIT:

Muutin musicin globaaliksi, toimii hyvin nyt.

User avatar
Akuji
Member
Posts: 60
Joined: Fri Oct 08, 2010 5:59 pm
Location: Turku

Re: Tyhmät kysymykset (I/2012)

Post by Akuji »

Pystyykö CoolBasicilla tekemään ns. nettiselaimen, esimerkiksi juuri cbNetworkia käyttämällä? Eli tarkemmin sanottuna yksinkertaisesti avaamaan nettisivuja CB:llä tehdyn ohjelman sisälle?
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2012)

Post by koodaaja »

Teoriassa kyllä, se vain olisi varsin hidas ja työmäärältään ehkä suurimpia CB-projekteja ikinä. Selainhan vain kysyy palvelimelta läjän ulkoasusta ja toiminnallisuudesta kertovaa koodia, joka täytyy osata parsia ja näyttää/suorittaa. Pelkkä täydellinen CSS-parseri ja -renderöijä on valtava työ, JS-enginestä puhumattakaan.

Pelkkää perus-html:ää ilman muotoiluja saisi kyllä varmaan melko helpostikin näkyviin, siitä voi lähteä kokeilemaan.
temetin123
Newcomer
Posts: 4
Joined: Sun Jun 02, 2013 9:52 am

Re: Tyhmät kysymykset (I/2012)

Post by temetin123 »

Millä ohjlemmalla saisi tehtyä grafiikat coolbasic peliin?
User avatar
Frozen
Advanced Member
Posts: 282
Joined: Fri Jan 01, 2010 4:46 pm
Location: Suomi

Re: Tyhmät kysymykset (I/2012)

Post by Frozen »

temetin123 wrote:Millä ohjlemmalla saisi tehtyä grafiikat coolbasic peliin?
Gimp
Image
Työn alla:
Jotakin epäjulkaistua
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Tyhmät kysymykset (I/2012)

Post by Ilmuri »

temetin123 wrote:Millä ohjlemmalla saisi tehtyä grafiikat coolbasic peliin?
GraphicsGale
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
legend
Advanced Member
Posts: 371
Joined: Wed Nov 18, 2009 8:06 pm

Re: Tyhmät kysymykset (I/2012)

Post by legend »

temetin123 wrote:Millä ohjlemmalla saisi tehtyä grafiikat coolbasic peliin?
Microsoft Paint
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Tyhmät kysymykset (I/2012)

Post by skorpioni-cb »

saadakseni coolbasic-foorumin pois mureakuha-ilmiöstä, minulla on kysymys:

Code: Select all

//Constants
Const SHIP_PLAYER = 1
Const SHIP_ENEMY = 2
Const PROJECTILE_ENERGY_FRIENDLY = 1
Const ORB_HEAL = 1
Const SIDE_FRIENDLY = 1
Const SIDE_ENEMY = 2
//Type for projectiles
Type PROJECTILE
	Field obj As Integer //Pointer To object that has properties of this projectile
	Field damage As Float //The damage in desimal number
	Field ammoType As Integer //The Type of this single projectile
	Field speed As Float //Speed of the projectile
	Field side As Integer //The side of the projectile
EndType

//Type for ships
Type SHIP
	Field obj As Integer //Pointer To ship object
	Field health As Float //Health of ship
	Field side As Integer //The side of the ship
	Field speed As Float //Speed of the ship
	Field alive As Integer //Indigates If ship has no hp Left, used For enemy ships
EndType

//Type for powerup orbs
Type ORB
	Field obj As Integer //Pointer To the orb
	Field orbType As Integer //What this powerup does
EndType

SCREEN 640,360

Dim currentTime As Float
currentTime = Timer()
Dim newTime As Float
Dim delta As Float

//Everything todo with backround, it is important I promise you
backround = MakeObjectFloor()
backround_normal = LoadImage("Media\backround.png")
backround_super = LoadImage("Media\backround_hyperspace.png")
backround_speed = 0.5
backround_state = 0
PaintObject backround, backround_normal

//Stuff for player's ship
ship_player.SHIP = New(SHIP)
ship_player\obj = LoadObject("Media\spaceship.png")
ship_player\health = 100.0
ship_player\side = SHIP_PLAYER
ship_player\speed = 0.25
ship_player\alive = True
ObjectInteger ship_player\obj, Int(ConvertToInteger(ship_player))
Dim playerx As Float 
Dim playery As Float
ScreenPositionObject ship_player\obj, 32,ScreenHeight()/2

//Stuff for multiplying things
masterNormalEnemy = LoadObject("Media\ship_enemy.png")
ShowObject masterNormalEnemy, OFF
masterFriendlyEnergyProjectile = LoadObject("Media\projectile_energy.png")
ShowObject masterFriendlyEnergyProjectile,OFF

Repeat
	//Calculations For FPS-independece
	newTime = Timer()
	delta = newTime - currentTime
	currentTime = newTime
	//Debugging: remove remstart And remend
	Remstart
	If KeyHit(cbkeyspace) Then
		Select backround_state
			Case 1
				backround_state = 0
				backround_speed = 0.5
				PaintObject backround, backround_normal
			Case 0
				backround_state = 1
				backround_speed = 5
				PaintObject backround, backround_super
		EndSelect
	EndIf
	remend
	//Player movement
	If KeyDown(203) Then playerx =- ship_player\speed +0.05
	If KeyDown(205) Then playerx =+ ship_player\speed
	If KeyDown(200) Then playery =+ ship_player\speed
	If KeyDown(208) Then playery =- ship_player\speed
	If playerx < -1.0 Then playerx = -1.0
	If playerx > 1.0 Then playerx = 1.0
	If playery < -1.0 Then playery = -1.0
	If playery > 1.0 Then playery = 1.0
	If Not KeyDown(200) Or KeyDown(208) Then playery = CurveValue(0.00,playery,100)
	If Not KeyDown(205) Or KeyDown(203) Then playerx = CurveValue(0.00,playerx,100)
	TranslateObject ship_player\obj, playerx*delta, playery*delta
	//Creating projectile
	If KeyDown(cbkeyspace) And reload= 0 Then
		newProjectile.PROJECTILE = New(PROJECTILE)
		newProjectile\obj = CloneObject(masterFriendlyEnergyProjectile)
		newProjectile\damage = 50
		newProjectile\ammoType = PROJECTILE_ENERGY_FRIENDLY
		newProjectile\speed = 0.5
		newProjectile\side = SIDE_FRIENDLY
		CloneObjectPosition newProjectile\obj, ship_player\obj
		CloneObjectOrientation newProjectile\obj, ship_player\obj
		
		MoveObject newProjectile\obj, 34
		
		reload = 500
	EndIf
	//Move stuff
	For shipUnit.SHIP = Each SHIP
		If Not ConvertToInteger(shipUnit) <> ObjectInteger(ship_player\obj) Then Exit
		For ammo.PROJECTILE = Each PROJECTILE
			MoveObject ammo\obj, ammo\speed*delta
			If ObjectSY(ammo\obj) > ScreenWidth() Then
				DeleteObject ammo\obj
				Delete ammo
				Exit 
			EndIf
			
		Next ammo
	Next shipUnit
	If reload > 0 Then reload = reload - 1
	//Backround movement
	MoveObject backround,(-backround_speed)*delta
	DrawScreen
Forever

Function ObjectSX(obj)
    Return ObjectX(obj)+ScreenWidth()/2-CameraX()
EndFunction

Function ObjectSY(obj)
    Return -ObjectY(obj)+ScreenHeight()/2+CameraY()
EndFunction
rivi 54

Code: Select all

ObjectInteger ship_player\obj, ConvertToInteger(ship_player)
tuottaa erroria 101 eli "Yrität antaa vääräntyyppisen arvon funktiolle, komennolle, taulukkoon yms." Eli mikä tässä olisi syynä ja kyllä käytän cbE:n viimeisintä versiota jos ketään kiinnostaa
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Locked