Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 07:13

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C++/Allegro]Bessere Möglichkeit?

Discussion on [C++/Allegro]Bessere Möglichkeit? within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Question [C++/Allegro]Bessere Möglichkeit?

Hallo Leute...

Ich sitze diesmal vor keinem wirklichen Problem, aber vor einer Frage. Undzwar bin ich gerade dabei bzw. habe gerade angefangen eine Physik/Grafic Engine (oder auch Schnittstellenbibiliothek) für mein eigenes kleines Spiel zu programmieren. Nun nehme ich gerade das Simulieren des Fallens auf mich. Da ich nichts derweiteren gefunden habe in der Allegro lib was dem gleicht, was ich vorhabe, habe ich meine eigenen kleinen Funktionen dazu geschrieben. Noch dazu zu sagen ist, dass der Code den ich poste nur für Testzwecke der Fallgeschwindigkeit etc. gedient hat und ich in meiner eigentlichen Bibiliothek/Engine das etwas anders darstellen werde, um es in mein Spiel zu intregrieren.
Von euch würde ich nun gerne wissen ob es vllt. noch eine weiter, besser Methode/Möglichkeit giebt das von mir erklärte Fallen darzustellen.
Freue mich über jede Antwort die mir weiter hilft.
Hier der Code:
PHP Code:
#include "stdafx.h"   // allegro.h, winalleg.h aus ALLEGRO


double xpos=300;       // x-Position (links-rechts)
double ypos;           // y-Position (hoch-runter )

bool move_;            //wird später noch gebraucht (ob Bewegung vorhanden)

BITMAPback, *soldier//2Bilder ( ein strichmännchen, ein hintergrund(siehe back=create_bitmap))


double fall_speed(double high){             //berechnen der Fallgeschwindigkeit (herzstück zum testen)
    
double speed;

    
speed=high/50;         //geschwindigkeit= höhe(ypos) / Wert(veränderbar->langsamer)


    
return speed;
}


double move(){                  //verändert bei dem Tasetendruck w die ypos

    
if(key[KEY_W]){

        
ypos=ypos-300;    //ypos (höhe) -Wert BEACHTE: Koordinatensystem nicht mathematisch, sondern von oben nach unten zunehmend
        
move_=true;   
    }
    else{
move_=false;}  //falls keine Bewegung vorhanden setze move_ auf false

    
return ypos;
    return 
move_;
}


void demo_fall(double bottom,double speed){        //demonstrieren des Fallens (zeichnen)

    
while(ypos<bottom){                         //solange nicht der Boden der Karte erreicht wird( Boden= höhe des Fensters - höhe des soldier BITMAPS)

    /*   Zeichne die beiden BITMAPS    */
    
draw_sprite(screen,back,0,0);
    
draw_sprite(screen,soldier,xpos,ypos);

    
ypos+=4;        //ypos(höhe) schrittweise zurücksetzen via berechneter Geschwindigkeit

    
    
Sleep(speed);       // 1sec. warten bis zum nächsten Schleifendurchlauf

    
}

}


int set_y_back(){           // setzt ypos(höhe) auf bottom

    
int y;  //ypos

    
y=600-(soldier->h);    //ypos= bottom

    
return y;
}




int main(){

    
double speed// Geschwindigkeit des Fallens

    /*   Installiere: allegro,keyboard   */
    
allegro_init();
    
install_keyboard();


    
/* Erstellen eines Fensters und Farbentiefe setzen */
    
set_color_depth(16);                                                //Farbentiefe: 16
    
set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);                  //Fenstermodus


    /*   Lade beide BITMAPS      */
    
back=create_bitmap(800,600);
    
soldier=load_bitmap("Soldier.bmp",NULL);

    
double bottom=600-(soldier->h); //boden 

    
ypos=600-(soldier->h);     // erste Berechnung der ypos(höhe) (default auf den boden {siehe oben})

    
while(!key[KEY_ESC]){        //solange kein esc gedrückt wurde

        
ypos=set_y_back();    //setze ypos (höhe) zurück auf bottom (default)

        /*   Zeichne die beiden BITMAPS     */
        
draw_sprite(screen,back,0,0);
        
draw_sprite(screen,soldier,xpos,ypos);


        
readkey();   //lese/warte auf eingabe


        
if(key[KEY_ESC]){      //falls esc schon hier gedrückt wurde gehe aus der Schleife hinaus

            
continue; //überspringe rumpf

        
}

        
move();
        if(
move_=true){ //falls eine Bewegung von statten gegangen ist

        
speed=fall_speed(ypos); //errechne Fallgeschwindigkeit
        
demo_fall(bottom,speed); //demonstriere das Fallen
        
}

    }



    
/*  BITMAPS löschen und allegro beenden    */
    
destroy_bitmap(soldier);
    
destroy_bitmap(back);
    
allegro_exit();

    
/* Main Feedback */
    
return 0;
}

END_OF_MAIN(); 
Mfg MrSimonKeks

P.S. Ich möchte keine fertigen Codes, ich möchte (nur) einen weiteren Denkanstoß den ich umsetzen könnte.
MrSimonKeks is offline  
Old 04/11/2011, 19:45   #2
 
elite*gold: 0
Join Date: Mar 2007
Posts: 18
Received Thanks: 2
-
silon is offline  
Old 04/11/2011, 22:31   #3
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Hmm, da magst du wohl recht haben, aber Allegro ist sehr einfach un ich möchte ja auch "nur" ein kleines Jump an Run spiel machen. Ich denke dafür kenne ich mich schon genug aus , kann natürlich auch nicht der Fall sein aber wie Geist es so schön : Ein Kind lernt erst laufen, bevor es gehen kann. Außerdem ließt man in vielen posts, dass man erst die Grundlagen lernen soll , da aber jeder Grundlagen anders definiert würde ich gerne einmal wissen was du unter Grundlagen verstehst. Falls du jetzt OOP Konzept sagst , das habe ich schon verstanden jedoch spinnt meine Entwicklungsumgebung und stürzt immer ab wenn ich eine Klasse erstelle. Vielleicht kennt einer von euch die Lösung ich benutze msvc++ ...
Edit: IPod Rechtschreibung,..
MrSimonKeks is offline  
Old 04/11/2011, 22:46   #4
 
elite*gold: 36
Join Date: Nov 2010
Posts: 716
Received Thanks: 101
Nehm eine ander Entwicklungsumgebung, z.B. Codeblocks, weil wenn du die Klassen nicht machen kannst kannste direkt C programmieren.
.crossi# is offline  
Old 04/11/2011, 22:56   #5
 
MrSimonKeks's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 116
Received Thanks: 13
Msvc++ hat mir schon gut gefallen... Ich Suche halt noch ein wenig herum oder neuinstalliere msvc++ .irgendwas wird mir schon einfallen;D Der Fehler tritt auch erst seit heute auf von daher, werd ich das früher oder später gebacken kriegen. Sonst erstelle ich den eigentlichen Code erstmal separat. Was mich aber wirklich interessieren würde , ist was eurer Meinung alles zu den Grundlagen gehört.
MrSimonKeks is offline  
Reply


Similar Threads Similar Threads
C++ Allegro Kollision
09/30/2010 - C/C++ - 1 Replies
Hallo, Ich habe angefangen ein Jump and Run Spiel mit der Allegro libary zu schreiben. Bei jedem gutem Jump and Run sind natürlich kollision vorhanden. Bisher arbeite ich mit einer einfachen, aber umständlichen und leistungsfressende variante. Er prüft nach jeden schritt, ob eine kollision vorhanden ist, auch wenn er meilen weit davon entfernt ist. Das sieht wie folgt aus: x1= x von der Figur y1= y von der Figur
Bessere exp?
08/13/2010 - Flyff - 6 Replies
hey ich habe gehört wenn man zb lvl 120 is und einen 1er vaggi als leecher hinten dranhängt das man bessere exp kriegt als mit nem partner....true? wenn ja wieviel exp mehr? (%) danke im vorraus:mofo:
Allegro mit dev C++ verbinden?!
03/22/2010 - C/C++ - 4 Replies
Ich hoffe hier kann mir jmd helfen ich habe den IDE Dev-C++ jetzt möchte ich gern Allegro damit iwie verbinden, das ich damit 2D Spiele programmieren kann. Leider weis ich icht was ich da von Allegro runterladen muss, und wie ich das dann verbinde. Hoffe ihr könnt mir helfn ach und auf der Website stand glaub ich n Tutorial aber der Link ist tot. Deshalb hat mir das auch nicht geholfen =( Hoffe das mir hier einer helfen kann.
Allegro mit C++ verwenden?
03/21/2010 - C/C++ - 5 Replies
Nach ner Stunde googeln hab ichs aufgegeben, ich hab noch nicht soviel Erfahrung in C++ nur son bisschen mit Konsolenanwendung hab mir des Tutorial von schornboeck n paar mal durchgelesen aber jetzt möchte ich parallell zu dem Tutorial auch noch sowas in die richtung Spieleprogrammierung machen mit Allegro und C++ jetzt hab ich wie oben gesagt ne STUNDE gegoogelt und fast nichts brauchbares gefunden, nur ne sehr gute Seite wo steht wie man Allegro und C verwendet. Aber nicht Allegro und C++.Und...



All times are GMT +2. The time now is 07:13.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.