dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

sdl button
Goto page 1, 2  Next
 
dev.gamez.lv Forum Index -> Iesācējiem
View previous topic :: View next topic  
Author Message
Valdo



Joined: 01 Nov 2006
Posts: 23

PostPosted: Sat Aug 25, 2007 5:04 pm    Post subject: sdl button

Es programmeeju 2d speeli c++ ar SDL,, man vaidzētu lai uz ekrāna buutu button kuru nospiezot kaut kas notiktu.
Esmu iesācējs, buusu loti pateiciigs ja kaads vareetu man paliidzeet.
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Aug 25, 2007 5:31 pm    Post subject:

Lieliski, ka programmē spēli. Bet kur ir jautājums?
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sat Aug 25, 2007 5:34 pm    Post subject:

viņam laikam vajag parastu "button"
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Valdo



Joined: 01 Nov 2006
Posts: 23

PostPosted: Sat Aug 25, 2007 5:58 pm    Post subject:

ok sorry ka manaa tekstaa nebij nevienas jautaajumziimes,,,
Vai kāds lūdzu nevarētu man pateikt kā lai es iepriekš minētajā situācijā, savaa spēlē varētu dabuut button?
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Aug 25, 2007 6:23 pm    Post subject:

Ne jau tas, ka tur nebija jautājuma zīmes, bet gan tas, ka tur nebija neviena jautājuma teikuma, ir svarīgi :)

Katrā ziņā, tavu buttonu vajag:
1) uzzīmēt,
2) noteikt vai tas ir nospiests.

Par 1) punktu - ja izmanto parastas SDL_Surface bildes zīmējot dažādus attēlus SDL logā, tad jau uzzīmēt buttona bildi ir vienkārši: vajag izmantot SDL_BlitSurface funkciju.

Par 2) punktu - vēl vienkaršāk: buttonam ir koordināte (pieņemšu, ka kreisais-augšējais stūris) x,y un izmēri width (platums), height (augstums). Savukārt pelei ir tās koordinātes logā - mx,my - un tās pogu stāvoklis (piemēram bool flags left_button_down). Atliek pābaudīt vai:
a) pele ir uz buttona
b) kreisā peles poga ir nospiesta.
Rezultātā nonākam pie sekojoša koda fragmenta:
Code:
if (mx >= x && my >= y && mx < x+width && my < y+height && left_button_dowwn == true)
{
    // poga ir nospiesta
}
else
{
    // poga nav nospiesta
}
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sat Aug 25, 2007 7:26 pm    Post subject:

ja vajag "mūsdienīgāku" button'u, tad jāmaina tekstūra, kuru liek uz button'a attiecīgi pēc peles pozīcijas un kreisās pogas
if (mouse_in == true)
{
tex = b_tex[0];
}
if (mouse_in == false)
{
tex = b_tex[1];
}
if (left_button_down == true)
{
tex = b_tex[2];
}
tā...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Aug 25, 2007 8:09 pm    Post subject:

Nu iespējas izvirst ir bezgalīgas. Taču nedomāju, ka topika autors domā par kautkādu tur mouse_in/out, ja jau tiek vaicāts kā vispār dabūt tādu buttonu.
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Sat Aug 25, 2007 10:07 pm    Post subject:

Uztaisi pa visu ekraanu vienu lielu bildi (kraasu karte? Laughing ) kur katra poga savaa kraasaa, peec tam peec peles klikskja dabuu rokaa pikselja kraasu vietaa kur noklikinaaji. Peec tam vienaa switch (case) skaties kaadaa kraasaa bija pikselis(taatad uz kuras pogas esi nospiedis) un izdari attieciigo pogas darbiibu. Protams to bildi nav jaaziimee xD Pie tam izveido sisteemu, kas no tavaam defineetajaam pogaam izveido to sauksim "kraasu karti" Very Happy Nu un, protams, pasa pogas bilde arii jaaziimee Razz Izveido vairaakas taas "kartes" un attieciigaa gadiiumaa izmato konkreeto karti - nu piemeeram viena buus speelees gaitaa, bet cita piem "galvenajaa izveelne" utt. Es gan par sdl neko nezinu :lol:

Es taa padomaaju un secinaaju, ka Tu labaak pilniigi noteikti lieto bubu variantu Very Happy Wink
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sat Aug 25, 2007 10:54 pm    Post subject:

protams, vismaz 4 stāvokļi button'am ir vienkārši izveidojami (mouse over - leave) + (left_mousebutton pressed - not), vēl klāt nāk "atslēgtais" stāvoklis - kad nevar nospiest, u.t.t. mūsdienās, lai lietotājs acumirklī saprastu, kas ar button'u noticis, vajadzētu vismaz 2 stāvokļus ar savu tekstūru... bet to tad, kad bubu varianta button's būs pabeigts Wink
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sat Aug 25, 2007 11:11 pm    Post subject:

Storm: kāpēc tu tik ļoti gribi sarežģīt vienkāršas lietas? Es vēl saprastu, ja noteikt pogu, uz kuras ir noticis klikšķis, ir sarežģīts vai dārgs process (piemēram 3D telpā, kad vajadzētu rēķināt inverso projekcijas matricu). Taču 2D interfeisā tas ir elementārs Point-in-Rectangle tests. Labs un ātrs gan no aizņemtās atmiņas vietas daudzuma, gan arī CPU kešatmiņai draudzīgs.
Back to top
View user's profile Send e-mail
Storm



Joined: 11 Apr 2006
Posts: 742

PostPosted: Sat Aug 25, 2007 11:50 pm    Post subject:

bubu, es vienkaarsi biju mazliet iecikleejies uz nenoteiktas formas pogaam Very Happy Smile
Back to top
View user's profile
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sun Aug 26, 2007 9:25 am    Post subject:

man vnk nav ko teikt... Very Happy
autoram: iesaku izveidot boundingbox'u sistēmu jau uzreiz! pēctam varētu bieži noderēt!
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Sun Aug 26, 2007 11:54 am    Post subject:

snake5 wrote:
man vnk nav ko teikt... :D

Tu nonāc pretrunā ar sevi, jo tomēr atradi kaut ko, ko pateikt.
Back to top
View user's profile Send e-mail
snake5
Indago dalībnieks
Indago dalībnieks


Joined: 27 Jun 2007
Posts: 2590

PostPosted: Sun Aug 26, 2007 2:44 pm    Post subject:

hahaa mūsdienu loģika... bet ja nu es teiktu, ka man no sākuma nebija, ko teikt, un tikai pēc tam es izdomāju, ka varu pateikt, ka man nav ko teikt!
bet pietiks offtopikā slīdēt iekšā...
_________________
"There are two choices here: "looks good" and "realism"." -- Paul Nettle
Back to top
View user's profile Visit poster's website
Valdo



Joined: 01 Nov 2006
Posts: 23

PostPosted: Mon Aug 27, 2007 10:38 am    Post subject:

Paldies buba,, poga darbojas,, vienīgais ir taa, ka piemēram, ja ir nospiests peles kreisais taustins, un peles kursors tiek uzbīdīts uz pogas tad button skaitās nospiesta,, vai kāds varētu pateikt, kā var dabūt to, ka button ir nospiests tikai tad, ja peles taustina nospiešanas brīdī pele kursors atrodas uz pogas?
Back to top
View user's profile
Display posts from previous:   
dev.gamez.lv Forum Index -> Iesācējiem All times are GMT + 2 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group