Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

(C++[allegro]) Gra w rzutki

#1
(C++[allegro]) Gra w rzutki
Proszę się nie przerażać, ale potrzebuję pomocy w napisaniu pomocy w napisaniu gry w rzutki.
Chodzi o coś takiego:
Rysuje się na ekranie o rozdzielczości 1280x1024 pięć, sześć kół o coraz mniejszym promieniu, wszystkie mają swój środek w w tym samym miejscu w centrum ekranu.
Po górze ekranu tzn. przy górnej krawędzi jeździłaby tam i z powrotem taka kreska i jak kliknie się jakiś klawisz to zapisze się współrzędna x.
Po lewej krawędzi ekranu to samo, tylko ta kreska jeździ w pionie.
Te 2 współrzędne w zależności na którym okręgu by się znalazła daje nam punkty.
Po 10 rzutach wynik jest sumowany i wyświetlany na ekranie.
Żadne menu ani nic takiego nie jest wymagane. Ot, tylko ten program, kompilujesz i już jeżdżą te kreski.
Muszę takie coś zrobić w allegro, tylko problem w tym, że zupełnie nie wiem jak się do tego zabrać. Smutek Byłbym wdzięczny za każdą pomoc.
Umiałbym może narysować te koła na ekranie, ale nie wiem jak napisać te "jeżdżące kreski".
 System operacyjny: windows_seven Przeglądarka: firefox
#2
RE: (C++[allegro]) Gra w rzutki
Górna kreska, pisane w przeglądarce, dlatego niezbyt to wygląda
Kod:
int x , y, strona = 0;

if(x > 0 && x < 1024)
{
switch(strona)
{
case 0:
{
x++;
if( x > 1024 )
  strona = 1;
}break;
case 1:
{
x--;
if( x < 0 )
  strona = 0;
}break;
}
}
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
#3
RE: (C++[allegro]) Gra w rzutki
Mam takie coś
Kod:
#include <allegro.h>
#include <time.h>

using namespace std;

int main(int argc, char *argv[])
{
    allegro_init();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode(GFX_AUTODETECT,1280,1024,0,0);
    
    BITMAP *my_pic = NULL;
    my_pic = load_bitmap("picture.bmp", NULL);
    BITMAP*buffer = NULL;
    
    buffer = create_bitmap(1280,1024);
  
    int my_pic_x=357;
    int my_pic_y = 1024;
    
    while(!key[KEY_ESC])
    {
                        if(key[KEY_RIGHT])
                        {my_pic_x ++;
                        }
                        else if(key[KEY_LEFT])
                        {
                        my_pic_x --;
                        }
                        else if(key[KEY_UP])
                        {
                        my_pic_y --;
                        }
                        else if(key[KEY_DOWN])
                        {
                        my_pic_y ++;
                        }
                        
                        draw_sprite(buffer, my_pic, my_pic_x, my_pic_y);
                        blit(buffer, screen,0,0,0,0,1280,1024);
                        clear_bitmap(buffer);
    }    
    
    destroy_bitmap(my_pic);
    destroy_bitmap(buffer);
    return 0;
}
END_OF_MAIN()
W które miejsce to powinienem wkleić? Zaraz jeszcze narysuję te koła.
A, to jest do jeżdżenia rysunkiem, jak zdobędzie się ileś punktów to wtedy to wyskoczy. Jak zrobić, żeby ta kreska się wyświetlała na ekranie? Wstawić kwadrat i podać jako pierwszą współrzędną strona?
Gdzie w ogóle w tym kodzie mogę te koła narysować, bo jak zaraz po buffer create bitmap i ruszę strzałką to cały ekran znika i wjeżdża obrazek.
Chodzi mi o takie kółka na ekranie:
Kod:
circlefill( buffer, 50, 50, 25, makecol( 0,255, 0));
Na środku ekranu, żeby już tam były po włączeniu programu.
 System operacyjny: windows_seven Przeglądarka: firefox
#4
RE: (C++[allegro]) Gra w rzutki
Nie masz tego wkleić, tylko przeczytać, zrozumieć i przekształcić.

Nie pamiętam jak wyglądała w allegro funkcja do rysowania kwadratu, ale po prostu wstawiasz x i y, żadnej filozofii nie ma. 'strona' to tylko zmienna, dzięki której możesz wiedzieć w którą stronę ekranu akurat przesuwa się prostokąt, ale nie jego pozycje.

Rysujesz w pętli głównej ,- przejrzyj jakiś kurs allegro

Trochę poprawiony kod,powinno Ci być łatwiej z tego zrozumieć:
Kod:
int x = 0 , y = 50,        //współrzędne
    strona = 0;   //strona w którą porusza się prostokąt

switch(strona)
{
    case 0: // prawo
    {
        x++;
        if( x > 1024 ) // jeśli wyszło poza ekran, zmień stronę
        strona = 1;
    }break;
    case 1: // lewo
    {
        x--;
        if( x < 0 ) // jeśli wyszło poza ekran, zmień stronę
            strona = 0;
    }break;
}
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
#5
RE: (C++[allegro]) Gra w rzutki
Co do kursu zajrzyj do tego może ci pomożeJęzyk

Kurs: http://cpp0x.pl/kursy/Kurs-Allegro-C++/21
 System operacyjny: windows_seven Przeglądarka: firefox
#6
RE: (C++[allegro]) Gra w rzutki
Chcę, żeby można było załadować i obrazek bmp, tak jak działa teraz, i rysować prymitywy, ale choć wpiszę w kodzie:
rectfill( buffer, x, y, x+20, y, makecol( 12, 34, 200));
Obojętnie w którym miejscu, to i tak nie działa.
 System operacyjny: windows_seven Przeglądarka: firefox
#7
RE: (C++[allegro]) Gra w rzutki
Jeszcze ważne jest co pierwsze rysujesz, odsyłam raz jeszcze do kursu
[Obrazek: 9989.jpg]
Nowy hit przemysłu gier: http://yfrog.com/16hitvqj
#define private public //beware, classes, I'm coming! LOL
 System operacyjny: windows_vista Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ((C++[allegro]) Gra w rzutki)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Gra przez przeglądarkę w c++ i allegro? Da się? Giliad 11 4827 08.02.2011, 00:47
Ostatni post: brzegator27

Skocz do:


Wybrane wątki ((C++[allegro]) Gra w rzutki)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  pomoc projekt scilab piesel18 2 10682 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 9540 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 10315 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 9563 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 10254 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 12945 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 10759 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 12007 06.10.2018 12:22
Ostatni post: NissmoOne
  C# pierwsza pusta komórka Excel DonCorleone 0 10788 21.09.2018 16:58
Ostatni post: DonCorleone
  .bat nie kompresuje plików GIENTY 3 11323 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 12224 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 10858 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 11548 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2792 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 12008 28.06.2018 16:56
Ostatni post: FireBytes