Programmare il computer
 

piccolo giochino

Ronie 30 Nov 2015 17:00
ho realizzato un piccolo giochino in c++ seguendo una guida su internet
in cui appare uno scarabocchio che sarebbe la mia astronave,un bmp che
rappresenta il nemico e il fondale che fa scrolling.
non ci sono ancora collisioni ecco però il nemico mi appare doppio e si
muove troppo velocemente cosi come lo scrolling del fondale.
non c'è modo di regolare velocità.
se volete posto codice ...
fmassei@gmail.com 30 Nov 2015 17:08
On Monday, November 30, 2015 at 5:00:25 PM UTC+1, Ronie wrote:
> ho realizzato un piccolo giochino in c++ seguendo una guida su internet
> in cui appare uno scarabocchio che sarebbe la mia astronave,un bmp che
> rappresenta il nemico e il fondale che fa scrolling.
> non ci sono ancora collisioni ecco però il nemico mi appare doppio e si
> muove troppo velocemente cosi come lo scrolling del fondale.
> non c'è modo di regolare velocità.
> se volete posto codice ...

Difficilmente se non lo posti si può riuscire ad indovinare :)

Ciao!
Ronie 1 Dic 2015 20:45
Il 30/11/2015 17:08, fmassei@gmail.com ha scritto:
> On Monday, November 30, 2015 at 5:00:25 PM UTC+1, Ronie wrote:
>> ho realizzato un piccolo giochino in c++ seguendo una guida su internet
>> in cui appare uno scarabocchio che sarebbe la mia astronave,un bmp che
>> rappresenta il nemico e il fondale che fa scrolling.
>> non ci sono ancora collisioni ecco però il nemico mi appare doppio e si
>> muove troppo velocemente cosi come lo scrolling del fondale.
>> non c'è modo di regolare velocità.
>> se volete posto codice ...
>
> Difficilmente se non lo posti si può riuscire ad indovinare :)
>
> Ciao!
>
ecco qua il codice:

#include "allegro.h"
BITMAP *buf, *sprite,*sfondo,*scrolling,*cattivo;
PALETTE colori;
int x,y,moltiplica,xscroll,xcattivo,ycattivo,xconto,yconto,morto;
void doppiobuffering()
{
vsync();
blit(buf, screen, 0, 0, 0, 0, 640, 480);
clear(buf);
}
void player() {
if(morto==1){
draw_sprite(buf, sprite, x, y);
}
}
void movimentotasti() {
if (key[KEY_LEFT]) x=x-2; if (x<=0) x=0;
if (key[KEY_RIGHT]) x=x+2; if (x>=300) x=300;
if (key[KEY_UP]) y=y-2; if (y<=0) y=0;
if (key[KEY_DOWN]) y=y+2; if (y>=180) y=180;
}
void fondale() {
xscroll=xscroll+1;
blit(scrolling,buf,xscroll,0, 0, 0, 320, 200);
if(xscroll>319){
xscroll=0;
}
}
void nemico(){
draw_sprite(buf,cattivo,xcattivo,ycattivo);
}
void movimentonemico(){
if(yconto==1){
ycattivo=ycattivo-1;
if(ycattivo<=10){
yconto=2;
}
}
if(yconto==2){
ycattivo=ycattivo+1;
if(ycattivo>=150){
yconto=3;
}
}
if(yconto==3){
xcattivo=xcattivo-1;
xconto=xconto+1;
if(xconto>=40){
xconto=0;yconto=1;
}
}
if (xcattivo<=50) {
xcattivo=360;
ycattivo=10;
yconto=3;
}
}
void collisione() {
if (((x+30)>=xcattivo) && (x<=(xcattivo+40))) {
if (((y+20)>=ycattivo) && (y<=(ycattivo+31))) {
morto=0;}
}
}
int main()
{
allegro_init();
install_keyboard();
set_color_depth(32);
set_palette(colori);
set_gfx_mode(GFX_AUTODETECT, 320, 200, 0, 0);
buf = create_bitmap(320, 200);
clear(buf);
sprite = load_bmp("player.bmp",colori);
sfondo = load_bmp("fondale.bmp",colori);
cattivo=load_bmp("nemico.bmp",colori);
scrolling=create_bitmap(640,200);
clear(scrolling);
for (moltiplica=0;moltiplica<=640;moltiplica=moltiplica+320) {
blit(sfondo,scrolling,0,0,moltiplica,0,320,200);
}
morto=1;
x=10; y=30;
xcattivo=360;ycattivo=10;
yconto=3;xconto=0;
while (!key[KEY_ESC]) {
doppiobuffering();
fondale();
player();
movimentotasti();
nemico();
movimentonemico();
collisione();
}
destroy_bitmap(buf);
destroy_bitmap(sprite);
destroy_bitmap(sfondo);
destroy_bitmap(cattivo);
destroy_bitmap(scrolling);

}
END_OF_MAIN ();
fmassei@gmail.com 2 Dic 2015 18:02
On Tuesday, December 1, 2015 at 8:45:38 PM UTC+1, Ronie wrote:
> Il 30/11/2015 17:08, fmassei@gmail.com ha scritto:
>> On Monday, November 30, 2015 at 5:00:25 PM UTC+1, Ronie wrote:
>>> ho realizzato un piccolo giochino in c++ seguendo una guida su internet
>>> in cui appare uno scarabocchio che sarebbe la mia astronave,un bmp che
>>> rappresenta il nemico e il fondale che fa scrolling.
>>> non ci sono ancora collisioni ecco però il nemico mi appare doppio e si
>>> muove troppo velocemente cosi come lo scrolling del fondale.
>>> non c'è modo di regolare velocità.
>>> se volete posto codice ...
>>
>> Difficilmente se non lo posti si può riuscire ad indovinare :)
>>
>> Ciao!
>>
> ecco qua il codice:
>
> <snip>
>

Mamma mia, butta quella "guida"! :)

Come prima cosa, non si scrive a video in un ciclo stretto (il tuo while nel
main()), che non ha senso: vuoi bloccare il framerate (e tutti i conti che
fai prima del rendering) sui 30/sec, e per farlo ti devi tarare con qualche
timer. Non conosco allegro ma sicuramente c'è una funzione per avere il clock.

Per tarare la "velocità" a quel punto puoi incrementare i tuoi movimenti di
diversi pixel (o frazioni di pixel, se è per questo) - ora è *****wired a
2.
Per "il nemico che si vede doppio" probabilmente è perché scrivi oltre la
dimensione della riga (x e/o y troppo grosse, o negative): trovare un errore
così però in un codice pieno di numerelli che non dicono nulla (10, 150, 40,
etc. - ma come fai a capirci qualcosa?) è impossibile: usa costanti o
#define per incrementare la leggibilità del codice, e quasi sicuramente a
quel punto vedrai anche te qual'è il numero sbagliato.

Ciao!
Ronie 3 Dic 2015 11:09
Il 02/12/2015 18:02, fmassei@gmail.com ha scritto:
> On Tuesday, December 1, 2015 at 8:45:38 PM UTC+1, Ronie wrote:
>> Il 30/11/2015 17:08, fmassei@gmail.com ha scritto:
>>> On Monday, November 30, 2015 at 5:00:25 PM UTC+1, Ronie wrote:
>>>> ho realizzato un piccolo giochino in c++ seguendo una guida su internet
>>>> in cui appare uno scarabocchio che sarebbe la mia astronave,un bmp che
>>>> rappresenta il nemico e il fondale che fa scrolling.
>>>> non ci sono ancora collisioni ecco però il nemico mi appare doppio e si
>>>> muove troppo velocemente cosi come lo scrolling del fondale.
>>>> non c'è modo di regolare velocità.
>>>> se volete posto codice ...
>>>
>>> Difficilmente se non lo posti si può riuscire ad indovinare :)
>>>
>>> Ciao!
>>>
>> ecco qua il codice:
>>
>> <snip>
>>
>
> Mamma mia, butta quella "guida"! :)
>
è che io sono un niubbo totale ...
la guida era proprio per niubbi totali o quasi ...
fmassei@gmail.com 3 Dic 2015 11:22
On Thursday, December 3, 2015 at 11:09:35 AM UTC+1, Ronie wrote:
> Il 02/12/2015 18:02, fmassei@gmail.com ha scritto:
>> On Tuesday, December 1, 2015 at 8:45:38 PM UTC+1, Ronie wrote:
>>> ecco qua il codice:
>>>
>>> <snip>
>>>
>>
>> Mamma mia, butta quella "guida"! :)
>>
> è che io sono un niubbo totale ...
> la guida era proprio per niubbi totali o quasi ...
>

Un motivo in più per prenderne una buona: se uno comincia subito a farsi
brutte abitudini poi è finita! :)

Una volta uno dei tutorial orientati allo sviluppo di giochini 2d che mi
sembrava ben fatto era questo: http://lazyfoo.net/tutorials/SDL/index.php
(che però usa le SDL invece di allegro).
In ogni caso l'importante sono i concetti base, poi quale libreria usi
conta fino ad un certo punto.

Se potessi ti consiglierei qualche libro, ma lo sviluppo di giochi non è
proprio il mio campo, per cui purtroppo non ne ho la minima idea.

Ciao!
Ronie 3 Dic 2015 16:10
Il 03/12/2015 11:22, fmassei@gmail.com ha scritto:
> On Thursday, December 3, 2015 at 11:09:35 AM UTC+1, Ronie wrote:
>> Il 02/12/2015 18:02, fmassei@gmail.com ha scritto:
>>> On Tuesday, December 1, 2015 at 8:45:38 PM UTC+1, Ronie wrote:
>>>> ecco qua il codice:
>>>>
>>>> <snip>
>>>>
>>>
>>> Mamma mia, butta quella "guida"! :)
>>>
>> è che io sono un niubbo totale ...
>> la guida era proprio per niubbi totali o quasi ...
>>
>
> Un motivo in più per prenderne una buona: se uno comincia subito a farsi
> brutte abitudini poi è finita! :)
>
> Una volta uno dei tutorial orientati allo sviluppo di giochini 2d che mi
> sembrava ben fatto era questo: http://lazyfoo.net/tutorials/SDL/index.php
> (che però usa le SDL invece di allegro).

mi sembra troppo complicato e poi è in inglese e il testo è su fondale
scuro !!!
Ronie 3 Dic 2015 16:13
Il 03/12/2015 16:10, Ronie ha scritto:
> Il 03/12/2015 11:22, fmassei@gmail.com ha scritto:
>> On Thursday, December 3, 2015 at 11:09:35 AM UTC+1, Ronie wrote:
>>> Il 02/12/2015 18:02, fmassei@gmail.com ha scritto:
>>>> On Tuesday, December 1, 2015 at 8:45:38 PM UTC+1, Ronie wrote:
>>>>> ecco qua il codice:
>>>>>
>>>>> <snip>
>>>>>
>>>>
>>>> Mamma mia, butta quella "guida"! :)
>>>>
>>> è che io sono un niubbo totale ...
>>> la guida era proprio per niubbi totali o quasi ...
>>>
>>
>> Un motivo in più per prenderne una buona: se uno comincia subito a farsi
>> brutte abitudini poi è finita! :)
>>
>> Una volta uno dei tutorial orientati allo sviluppo di giochini 2d che mi
>> sembrava ben fatto era questo: http://lazyfoo.net/tutorials/SDL/index.php
>> (che però usa le SDL invece di allegro).
>
> mi sembra troppo complicato e poi è in inglese e il testo è su fondale
> scuro !!!
>
>
comunque ci darò un'occhiata grazie ... dovrei essere almeno in grado di
importare le librerie ;)

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Programmare il computer | Tutti i gruppi | it.comp.programmare | Notizie e discussioni programmare | Programmare Mobile | Servizio di consultazione news.