Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

obrót sterowanej postaci w kierunku patrzenia

Ostatnio zmodyfikowano 2015-10-15 11:38
Autor Wiadomość
tolek
Temat założony przez niniejszego użytkownika
obrót sterowanej postaci w kierunku patrzenia
» 2015-10-13 00:11:56
Witam,
Jak w tytule, gdy sterują swoją postacią chciałbym żeby patrzyła ona w danym kierunku (tak jak w pacmanie) - gdy postać zmierza w prawo ma patrzeć w prawo, gdy w lewo ma obrócić się o 180 stopni, gdy w górę o 90 stopni, natomiast w dół o 270 stopni.Moja postać przypomina postać pacmana (z tym że jest kwadratowa, a nie okrągła oraz nie jest pokolorowana).
C/C++
#define PIXELS 8
void giant( int x, int y, int faza, int color ) { //*2 POSTAC
    int face[ 3 ][ PIXELS * 2 ] = {
        { 0, 0, 50, 0, 50, 25, 30, 25, 50, 25, 50, 50, 0, 50, 0, 0 },
        { 0, 0, 50, 0, 50, 22, 30, 25, 50, 27, 50, 50, 0, 50, 0, 0 },
        { 0, 0, 50, 0, 50, 20, 30, 25, 50, 30, 50, 50, 0, 50, 0, 0 },
    };
    int p;
    int xo, yo, ro;
    xo = face[ faza ][ 2 ] * 0.8 + x;
    yo = face[ faza ][ 2 ] * 0.2 + y;
    ro = face[ faza ][ 2 ] * 0.1;
    for( p = 0; p < PIXELS; p++ ) {
        face[ faza ][ p * 2 ] = face[ faza ][ p * 2 ] + x;
        face[ faza ][ p * 2 + 1 ] = face[ faza ][ p * 2 + 1 ] + y;
    }
    setcolor( color );
    drawpoly( PIXELS, face[ faza ] );
    circle( xo, yo, ro );
}
Sterowanie realizuje podana funkcja
C/C++
switch( kod ) {
case LEFT:
    if( x >= 5 ) x = x - 5;
   
    break;
case RIGHT:
    if( x < maxX - 50 - 5 ) x = x + 5;
   
    break;
case BOTTOM:
    if( y < maxY - 50 - 5 ) y = y + 5;
   
    break;
case UP:
    if( y >= 5 ) y = y - 5;
   
    break;
}
. Dodam, że mam zainstalowaną bibliotekę winBGIm i nie chciałbym instalować żadnej dodatkowej (no chyba, że nie ma innego wyjścia). Środowisko w jakim pracuje to CodeBlock.
P-138497
pekfos
» 2015-10-13 16:06:11
A problem masz z..?
P-138510
tolek
Temat założony przez niniejszego użytkownika
» 2015-10-13 16:31:15
Ze sformułowaniem funkcji. Mógłbym zrobić cztery rysunki i w  zależności od wciśnięcia przycisku wyskakiwałaby inna postać, jednak ja wolałbym mieć funkcję, która obracałaby obiekt :)
P-138512
pekfos
» 2015-10-13 16:44:19
Obrót punktu dookoła innego jest prosty do osiągnięcia przy użyciu funkcji trygonometrycznych. Obróć wszystkie dookoła środka postaci.
P-138514
tolek
Temat założony przez niniejszego użytkownika
» 2015-10-13 17:18:27
Mógłbyś zarzucić kodem? Chociaż przykładowym, dopiero zaczynam przygodę z grami 2D ;)
P-138516
pekfos
» 2015-10-13 17:51:23
To nie gry 2d, tylko matematyka. Z tym nie wypada dopiero zaczynać, szczególnie w programowaniu.
P-138517
tolek
Temat założony przez niniejszego użytkownika
» 2015-10-13 19:54:08
Napisałem post nie po to aby otrzymać gotowy kod, nie po to aby wymieniać się bezsensownie zdaniami i wymądrzać, tylko po to aby się czegoś nauczyć.Naprowadzisz mnie jak mam to zrobić? :)
P-138522
Gibas11
» 2015-10-13 20:04:40
Tam masz jak wykonać to dla jednego punktu, musisz to powtórzyć dla wszystkich pikseli i będzie działać. http://www.matematyka.pl​/308613.htm
P-138523
« 1 » 2
  Strona 1 z 2 Następna strona