:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 26/06/2008, 22h26   #1
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut Layer Map

Hello everyone

I have one more problem (but the last )

I try to make a layer map for the game but when i call the three layers on the screen (thanks to Pro X for the maps ), they looked like on the image in the Attachmant.

Here the test code

Code:
#include <oslib/oslib.h>
#include "maps.h"


PSP_MODULE_INFO("OSLib Sample", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);


OSL_IMAGE *Stegtileset, *Seatileset, *Groundtileset;
OSL_MAP *Steg, *Sea, *Ground;
OSL_SOUND *music;

int i;
int layers = 3;

void InitMaps();
void Keys();
void Text();
OSL_IMAGE *LoadTileset(char *filename);

int main(int argc, char* argv[])
{
	//Initialization
	oslInit(0);						//The lib
	oslInitGfx(OSL_PF_8888, 1);		//Gfx
	oslInitConsole();				//Text
	oslInitAudio();					//Sound

	//Load the files
	Stegtileset = LoadTileset("Stegtileset.png");
	Seatileset = LoadTileset("Seatileset.png");
	Groundtileset = LoadTileset("Groundtileset.png");
	
	//Load the sounds
	music = oslLoadSoundFile("music.bgm", OSL_FMT_STREAM);

	//Verify that everything went ok
	if (!Stegtileset || !Seatileset || !Groundtileset || !music)
		oslFatalError("At least one file is missing. Please copy all the file in the game directory.");	

	//Loop for music
	oslSetSoundLoop(music, 1);

	//Configure the joypad
	oslSetKeyAutorepeatInit(40);
	oslSetKeyAutorepeatInterval(10);

	InitMaps();			//Initialize the maps

	while (!osl_quit)
	{
		oslStartDrawing();

		//The gradient blue background
		oslDrawGradientRect(0,0,480,272,RGB(0,0,128), RGB(0,0,128), RGB(0,255,255), RGB(0,255,255));

		Keys();

		//The maps
		if (layers > 0) oslDrawMap(Steg);
		if (layers > 1) oslDrawMap(Sea);
		if (layers > 2) oslDrawMap(Ground);


		Text();		

		oslEndDrawing();
		oslSyncFrame();
		oslAudioVSync();
	}

	oslEndGfx();
	oslQuit();
	return 0;
}


void Keys()
{
	oslReadKeys();

	//Joypad (display the layers)
	if (osl_keys->pressed.down && layers > 0) layers--;
	if (osl_keys->pressed.up && layers < 3) layers++;
	if (osl_keys->pressed.left) layers = 0;
	if (osl_keys->pressed.right) layers = 3;
	
	//Joystick (scroll maps)
	for (i=32;i<=120;i+=48)
	{
		if (osl_keys->analogX > i)
		{
			Steg->scrollX += 1;
			Sea->scrollX += 2;
			Ground->scrollX += 3;
		}
		if (osl_keys->analogX < -i)
		{
			Steg->scrollX -= 1;
			Sea->scrollX -= 2;
			Ground->scrollX -= 3;
		}							
	}

	//Buttons 
	if (osl_keys->pressed.square) oslPauseSound(music, -1);
	if (osl_keys->pressed.triangle) oslStopSound(music);
	if (osl_keys->pressed.R) oslPlaySound(music, 0);

	if (osl_keys->pressed.start) oslQuit();			//Exit the sample
	if (osl_keys->pressed.select)					//Take a screenshot
		oslWriteImageFile(OSL_SECONDARY_BUFFER, "screenshot.png", 0);
}

void Text()
{
	//Set the color of the text
	oslSetTextColor(RGBA(0,0,0,255));
	oslSetBkColor(RGBA(0,0,0,0));

	oslPrintf_xy(1,5,"OSLib Maps & Sound sample");
	oslPrintf_xy(1,25,"Left/right: display maps");
	oslPrintf_xy(1,35,"Up/down: more/less maps");
	oslPrintf_xy(1,45,"Joystick: scroll maps");
	oslPrintf_xy(1,55,"R: play music");
	oslPrintf_xy(1,65,"[]: pause music");
	oslPrintf_xy(1,75,"^: stop music");
	oslPrintf_xy(1,85,"X & (): play sounds");
	oslPrintf_xy(1,95,"Select: take screenshot");
	oslPrintf_xy(1,105,"Start: quit");
}

void InitMaps()
{
	Steg = oslCreateMap(
		Stegtileset,						//Tileset
		Steg_map,							//Map
		8,8,								//Tiles size
		127,34,							//Map size
		OSL_MF_U16);						//Map format

	Sea = oslCreateMap(
		Seatileset,							
		Sea_map,						
		8,8,								
		127,34,								
		OSL_MF_U16);						

	Ground = oslCreateMap(
		Groundtileset,							
		Ground_map,						
		8,8,								
		127,34,								
		OSL_MF_U16);						
}

OSL_IMAGE *LoadTileset(char *filename)		{
	OSL_IMAGE *temp, *img=NULL;
	//Load & swizzle for best speed
	temp = oslLoadImageFile(filename, OSL_IN_RAM, OSL_PF_5551);
	if (temp)		{
		img = oslCreateSwizzledImage(temp, OSL_IN_VRAM);
		oslDeleteImage(temp);
	}
	return img;
}

the other three images are the layer maps.

thanks for your help

greetz
Codehamster

Dernière modification par Codehamster ; 28/06/2008 à 13h14.
Codehamster est déconnecté   Réponse avec citation

Publicité

Vieux 27/06/2008, 00h47   #2
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

What's exactly your problem ?? I looked the images but I don't understand
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 27/06/2008, 13h43   #3
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut

I try to draw an Map. They are made out three layers ground, sea, steg.
but the Map was drawing wrong (the pink paint are wrong(look on the picture A in the attachment)).

Picture B is that what i want (self made the picture B in Paint).
But it doesn't work.

greetz
Codehamster

Dernière modification par Codehamster ; 28/06/2008 à 13h14.
Codehamster est déconnecté   Réponse avec citation
Vieux 27/06/2008, 16h00   #4
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Hum.... it's hard to help you....

I can see that the blue paint is also wrong, if you display just one layer and test the three, is it correct ??

which software do you used for generating map and tileset ??

one thing is also strange, why do we see the pink colour ? it's normally your transparent colour ??
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 27/06/2008, 17h10   #5
archipel
Kikoolol
 
Date d'inscription: 22/01/2007
Messages: 2 847
Par défaut

try to save your map with photoshop

paint always act weird
__________________
DevBlog qui a aboutit à Aanaa
archipel est déconnecté   Réponse avec citation
Vieux 27/06/2008, 18h15   #6
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut

@ Dr.Vince: I used Brunnis GBA Graphics to create the three maps and tileset

@archipel: I test it when i'm finished the download of Photoshop trial .

greetz
Codehamster

Edit

I test it with Photoshop but it is the same problem.

the 2, 3 and 4 image out of the first post are my layers. perhaps is there the problem i don't now .

Dernière modification par Codehamster ; 27/06/2008 à 22h52.
Codehamster est déconnecté   Réponse avec citation
Vieux 28/06/2008, 00h09   #7
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

the better thing to do is to post an archive with your sources and gfx, so I could search what is the problem
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 28/06/2008, 13h11   #8
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut

here it is.

Dernière modification par Codehamster ; 29/06/2008 à 16h11.
Codehamster est déconnecté   Réponse avec citation
Vieux 28/06/2008, 15h17   #9
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

ok, I found the problem

one thing you must know about map is that the first tile of your tileset is by default the transparent tile, so to resolve your problem you can edit your tileset and add a 8x8 pink tile at the beginning

otherwise, I have to disable the swizzling of the images else I see strange think
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 29/06/2008, 02h44   #10
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Dr.Vince : maybe Codehamster don't use Oslib 2, because with it, swizzling of image is made automaticaly when you load a image
(so, don't need the LoadTileset function)
If I'm wrong, tell me
Yodajr est déconnecté   Réponse avec citation
Vieux 29/06/2008, 14h42   #11
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut

Citation:
Envoyé par Yodajr Voir le message
Dr.Vince : maybe Codehamster don't use Oslib 2, because with it, swizzling of image is made automaticaly when you load a image
(so, don't need the LoadTileset function)
If I'm wrong, tell me
No I have OSLib 2.10 for PSP .

greetz
Codehamster
Codehamster est déconnecté   Réponse avec citation
Vieux 29/06/2008, 15h25   #12
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Citation:
Envoyé par Codehamster Voir le message
No I have OSLib 2.10 for PSP .
So, you don't have to swizzle images

Citation:
Envoyé par Brunni
Images are now automatically swizzled when loaded, providing a performance boost for new users.
Yodajr est déconnecté   Réponse avec citation
Vieux 29/06/2008, 15h40   #13
Codehamster
Membre
 
Date d'inscription: 24/06/2008
Messages: 11
Par défaut

Thanks for the help

So all works but only the layer three didn't show .

Dernière modification par Codehamster ; 29/06/2008 à 16h40.
Codehamster est déconnecté   Réponse avec citation
Vieux 29/06/2008, 18h45   #14
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

did you add a pink tile at the beginning of the layer 3 tileset ??

and if you did, you must change your map because the first tile is now the pink not the blue, so your map must contain references to the tile 1 instead of the tile 0, and this must be done for all tiles

the better thing to do is to recreate the map under GBAGraphics using your new tileset
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
PSP Jour 10 : Collisions entre un sprite et une map pjeff Tutoriels 10 19/10/2013 15h32
NDS Map de collision pour autre chose qu'une plateforme smeagogo Aide au développement 7 15/06/2008 20h59
GBA Ham - Dé-initialiser une Map omg Aide au développement 11 15/05/2006 08h44
GBA School Map Brunni Projets 98 17/02/2006 22h20
GBA probleme d'affichage de map njo80 Aide au développement 9 28/01/2006 17h42


Fuseau horaire GMT +2. Il est actuellement 18h07.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince