Antwort schreiben  Thema schreiben 
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Verfasser Nachricht
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #1
xPSP  C :: Graphics.h/.c - MapSystem?

Servus Leute Wink

Seit heute habe ich mich mal wieder mit der PSP-Programmierung zugewendet. Ich arbeite zurzeit mit der Graphics.h/.c um ein (noch) kleines Homebrew zu coden. Wie sich ein Spieler bewegt oder wie man den Hintergrund bewegt, wenn der Spieler eine bestimmte Stelle erreicht hast, das habe ich auch schon^^

Nun habe ich ein kleines Problem. Ich benutze einen Hintergrund, welcher die Maße des PSP Displays entsprechen. Ich möchte allerdings eine größere Fläche benutzen, also ein MapSystem.

Hat irgendjemand eine Idee, wie man ein MapSystem mithilfe der graphics.h/.c codet?

Danke schonmal im vorraus^^

lg

21.04.2012 17:18
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
SIM sk
Experte
****


Beiträge: 632
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 135
Beitrag: #2
RE: C :: Graphics.h/.c - MapSystem?

Wenn ich dich richtig verstanden habe willst du dass sich ein großes hintergrund-
Bild bewegt wenn deine Figur geht?
Wenn ya dann kannst du einfach die x und y Koordinaten des Bildes verschieben
lg

21.04.2012 17:25
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
~Hook~ (Apr-21-2012)
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #3
xPSP  RE: C :: Graphics.h/.c - MapSystem?

Zitat:
Nun habe ich ein kleines Problem. Ich benutze einen Hintergrund, welcher die Maße des PSP Displays entsprechen. Ich möchte allerdings eine größere Fläche benutzen, also ein MapSystem.


Die Fläche einfach größer Machen und an -Koordinaten drawen? ansonsten soetwas wie:
if (map==1) {
draw_für_map1();
}

beim Raumübergang könntest du dann so vorgehen:
if (x>=0 && y>=-16 && x<=0 && y<=0){
map=2;
}

ansonste, die Frage kommt mir wie "Wie progge ich ein MMORPG" vor

Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2012 17:46 von DoubleDD_aka_domis4.

21.04.2012 17:46
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
~Hook~ (Apr-21-2012)
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #4
xPSP  RE: C :: Graphics.h/.c - MapSystem?

SIM sk :
Wenn ich dich richtig verstanden habe willst du dass sich ein großes hintergrund-
Bild bewegt wenn deine Figur geht?
Wenn ya dann kannst du einfach die x und y Koordinaten des Bildes verschieben
lg


Wäre das sinnvoll einfach ein großes Bild zu verwenden?


PHP-Code:
<?php
    
echo 'Signatur';  
?>

21.04.2012 17:47
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #5
xPSP  RE: C :: Graphics.h/.c - MapSystem?

~Hook~ :
Wäre das sinnvoll einfach ein großes Bild zu verwenden?


Nein, nimm mehrere Bilder die du dann zu einem Zusammenfügst. du drawst immer nur ein paar davon, um nicht den Speicher der PSP zu überlasten...
20 mb hast du für dein Game Wink

EDIT: So funktioniert übrigens Pokemon.
die Map wird in Quadrate aufgeteilt und die naheliegendsten 3 werden gedrawt, daher kommt das Gefühl, das alles bei Pokemon "eins" ist...

Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2012 18:00 von DoubleDD_aka_domis4.

21.04.2012 17:51
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
~Hook~ (Apr-21-2012)
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #6
xPSP  RE: C :: Graphics.h/.c - MapSystem?

@DoubleDD_aka_domis4: Ah, Danke Wink
Also, wieviele Quadrate von einem Bild soll ich dann zeichnen und wie zeichnet man überhaupt nur
einen bestimmten Teil eines Bildes mithilfe der graphics.h/.c?

Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2012 18:11 von ~Hook~.

21.04.2012 18:11
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #7
RE: C :: Graphics.h/.c - MapSystem?

lies meinen vorherigen Beitrag.

21.04.2012 18:26
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #8
xPSP  RE: C :: Graphics.h/.c - MapSystem?

DoubleDD_aka_domis4 :
lies meinen vorherigen Beitrag.


Spezifisch hast du nichts von einer Funtkion geschrieben, mit welcher man nur einen bestimmen Teil zeichnen kann^^

21.04.2012 18:29
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #9
RE: C :: Graphics.h/.c - MapSystem?

ohje, vor dem problem saß ich acuh schon. ich habs so gelöst:

ich hab erstmal 4 verschiedene Layer, 2 bildlayer untermm spieler, ein Bildlayer über der Figur und eine Kollisionsebene. Dafür muss ich erstmal einige variablen definieren:

PHP-Code:
Image *world, *tiles[16][15], *upperlayer[16][15], *middlelayer[16][15]; 


dann habe ich die verschiedenen layer definiert, also welches bild-teil an welcher stelle der map sitzen soll:

gespoilert, da sehr groß (anzeigen)
jetzt lasse ich das programm ein paar generelle infos zur map zukommen, z.b. wie breit und hoch diese ist, und wo sich die kamera zurzeit befinden:

PHP-Code:
    mapbreite=(sizeof(map[0])*2)/(sizeof(int)*sizeof(int));
    
maphoehe=sizeof(map)/(mapbreite*sizeof(int)*2);
    
randx=mapbreite*32;
    
randy=maphoehe*32;
    
quellx=0;
    
quelly=0


als nächstes müssen dem programm die Bilder gegeben werden, die Bilder werden dabei in teilstücken (bei mir in 32*32 pixel rechtecken). alle Bilder-teile einer ebene sind in einem Bild, welches dann halt in 32*32 pixel tiles aufgeteilt wird, das sieht bei mir so aus:

PHP-Code:
    char buffer[64];
    
sprintf(buffer"tilesets\\world.png");
    
world loadImage(buffer);
    
int t,z;
    for(
t=0;t<16;t++){
        for(
z=0;z<15;z++){
            
tiles[t][z] = createImage(32,32);
            
blitImageToImage(z*32t*323232,  world00,tiles[t][z]);
        }
    }
    
sprintf(buffer,"tilesets\\upperlayer.png");
    
world=loadImage(buffer);
    for(
t=0;t<16;t++){
        for(
z=0;z<15;z++){
            
upperlayer[t][z] = createImage(32,32);
            
blitImageToImage(z*32t*323232,  world00,upperlayer[t][z]);
        }
    }
    
sprintf(buffer,"tilesets\\middlelayer.png");
    
world=loadImage(buffer);
    for(
t=0;t<16;t++){
        for(
z=0;z<15;z++){
            
middlelayer[t][z] = createImage(32,32);
            
blitImageToImage(z*32t*323232,  world00,middlelayer[t][z]);
        }
    } 


und dann gilt es halt noch funktionen zu schreiben, welche die nun geladene map dann auch richtig zeichnen:

PHP-Code:
void drawsupperlayer(){
    
int t,z,r,w;
    for(
t=0;t<18;t++){
        for(
z=0;z<30;z++){
            
r=z*32+quellx;
            
w=t*32+quelly;
            if(
map[t][z][1]<16 &amp;&ampmap[t][z][0]<16 &amp;&ampr>=-32 &amp;&ampw>=-32 &amp;&ampr<=512 &amp;&ampw<=304blitAlphaImageToScreen(z*32 ,t*32 ,32 32tiles[map[t][z][1]][map[t][z][0]], rw);
            if(
middle[t][z][1]<16 &amp;&ampmiddle[t][z][0]<16 &amp;&ampr>=-32 &amp;&ampw>=-32 &amp;&ampr<=512 &amp;&ampw<=304blitAlphaImageToScreen(z*32 ,t*32 ,32 32middlelayer[middle[t][z][1]][middle[t][z][0]], rw);
        }
    }
}
void drawupperlayer(){
    
int t,z,r,w;
    for(
t=0;t<18;t++){
        for(
z=0;z<30;z++){
            
r=z*32+quellx;
            
w=t*32+quelly;
            if(
upper[t][z][1]<16 &amp;&ampupper[t][z][0]<16 &amp;&ampr>=-32 &amp;&ampw>=-32 &amp;&ampr<=512 &amp;&ampw<=304blitAlphaImageToScreen(z*32 ,t*32 ,32 32upperlayer[upper[t][z][1]][upper[t][z][0]], rw);
        }
    }

damit das funktioniert müssen im programm die variablen quellx und quelly richtig gehandlet werden. z.b. wenn der spieler sich 64 pixel von der mitte des bildschirms aus gesehen nach rechts bewegt, muss quellx = -64 sein. Deshalb ist bei meinem programm das handlen von quellx und quelly auch in der funktion zur figurbewegung.





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
21.04.2012 18:36
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
~Hook~ (Apr-21-2012)
DoubleDD_aka_domis4
Durchstarter
**


Beiträge: 62
Gruppe: User
Registriert seit: Sep 2011

Status: Offline
Danke erhalten: 8
Beitrag: #10
xPSP  RE: C :: Graphics.h/.c - MapSystem?

DoubleDD_aka_domis4 :

Zitat:
Nun habe ich ein kleines Problem. Ich benutze einen Hintergrund, welcher die Maße des PSP Displays entsprechen. Ich möchte allerdings eine größere Fläche benutzen, also ein MapSystem.


Die Fläche einfach größer Machen und an -Koordinaten drawen? ansonsten soetwas wie:
if (map==1) {
draw_für_map1();
}

beim Raumübergang könntest du dann so vorgehen:
if (x>=0 && y>=-16 && x<=0 && y<=0){
map=2;
}


das meinte ich^^
ansonsten, neutrosiders lösung ist auch nicht schlecht

Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2012 18:41 von DoubleDD_aka_domis4.

21.04.2012 18:41
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #11
RE: C :: Graphics.h/.c - MapSystem?

@Neutrosider: Danke erstmal dass du dir die Zeit genommen hast um mir dies ausführlich zu erklären Wink
Puh...das ist irgendwie schon etwas komplex wie du das gelöst hast^^
Aber Danke Wink


PHP-Code:
<?php
    
echo 'Signatur';  
?>

21.04.2012 18:42
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #12
RE: C :: Graphics.h/.c - MapSystem?

aber hook, denk dran, je mehr du selbst schaffst, dessto besser verstehst dus später.





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
21.04.2012 18:42
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Folgende User bedanken sich:
dark-awesome (Apr-22-2012)
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #13
xPSP  RE: C :: Graphics.h/.c - MapSystem?

Neutrosider :
aber hook, denk dran, je mehr du selbst schaffst, dessto besser verstehst dus später.


Du weißt genau dass ich nicht Hook heiße Big Grin
Und Danke, werd ich mir merken Wink

Du hast es ja sicher auch selbst gelöst Wink


PHP-Code:
<?php
    
echo 'Signatur';  
?>

21.04.2012 18:45
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neutrosider
Developer
*


Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010

Status: Offline
Danke erhalten: 2325
Beitrag: #14
RE: C :: Graphics.h/.c - MapSystem?

jop, hab aber auch lange dran gearbeitet. aber glaubmir, so funktionierts und viel einfacher wirstes nicht hinbekommen ^^





GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
21.04.2012 18:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #15
xPSP  RE: C :: Graphics.h/.c - MapSystem?

Neutrosider :
jop, hab aber auch lange dran gearbeitet. aber glaubmir, so funktionierts und viel einfacher wirstes nicht hinbekommen ^^


Ich denke, die Arbeit hat sich gelohnt Wink
Hast du es nicht auch so bei "RPG?" gemacht (falls es so hieß)?


PHP-Code:
<?php
    
echo 'Signatur';  
?>

21.04.2012 18:50
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Antwort schreiben  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xGames "graphics.h" from back in the days MiDKNiTE 1 9.715 01.12.2016 23:01
Letzter Beitrag: taipangr
xPSP [PSP C] Graphics Problem Schaschlix 10 2.866 27.07.2010 15:32
Letzter Beitrag: Schaschlix

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang