| objet et ecran | |
|
|
|
Auteur | Message |
---|
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: objet et ecran Mer 16 Jan 2013 - 20:08 | |
| bonsoir!
question! j'ai un petit objet de 8x8 pixel et j'aimerais qu'il remplisse l'écran qu'il suive mon perso ect. J'ai besoin de remplir TOUT ce que je fais avec, alors tant qu'à faire, y a t il un moyen de dire à un objet de pas bouger de place par rapport à l'affichage écran?
je vais être plus clair.. c'est pour la lumière ^^ j'ai besoin de remplir tout le jeu de petit carreaux pour que ça marche.. donc au lieu de tout remplir est ce que je peux juste en afficher de manière à ce que ça remplisse l'écran d'affichage? |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 20:23 | |
| T'as les variables view_xview et view_yview pour récupérer la position de la view.
Par contre pour un système de lumière utilise plutôt une double boucle avec l'affichage de ton sprite, ça seras bien plus rapide. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 20:27 | |
| heuuuu c'est à dire? je dois remplir un affichage de 1056x500 avec des carreaux de 8x8 ^^ comment on se sert de xview?
en fait j'ai juste mis un objet darkness avec ça
if distance_to_object(Hero)<=60{visible=false} if distance_to_object(Hero)>60 and distance_to_object(Hero)<90 {visible=true;image_index=1} if distance_to_object(Hero)>90 and distance_to_object(Hero)<120 {visible=true;image_index=2} if distance_to_object(Hero)>120 {visible=true;image_index=0}
je veux une lumière facile à poser et pixelisée. Avec ça je peux éclairer le hero et d'autres objets en quelques lignes. Mais il faut que je remplisse l'affichage de petit carreaux. |
|
| |
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 20:41 | |
| C'est pas très clair ce que tu dis, mais je crois avoir compris. En event create d'un objet qui va créer la grille : - Code:
-
// On démarre les variables xvar = 2 // X de début de la grille yvar = 2 // Y de début de la grille xlong = 8 // Taille X du sprite ylong = 8 // Taille Y du sprite space_beetween_x = 2 // Espace entre chaque bloc ( x ) space_beetween_y = 2 // Espace entre chaque bloc ( y )
repeat(room_width/(xlong+space_beetween)*room_height/(ylong+space_beetween)) { instance_create(xvar,yvar,obj_bloc/* A remplacer par le vrai nom du bloc! */) if xvar<room_width xvar+=xlong+space_beetween_x else { xvar=2 // A remplacer par le xvar par défaut xvar+=ylong+space_beetween_y } Après il y a peut être des erreurs de code, j'ai pas vérifié, mais tout devrait aller Sinon pour l'effet de lumière tu peux faire dessiner un rectangle noir d'alpha 0.7 et dessiner un effet de lumière qui utiliserait le blend mode |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 20:45 | |
| merci pour ta réponse! mais y'a +space_beetween je comprend pas quoi mettre et instance_create(xvar si c'est la taille de l'ecran ou autre? Edit: en fait j'aurai beaucoup trop d'objet, ça va me faire ramer............. c'est dommage parce que ça me semblait un moyen bien simple pour poser de la lumière pixelisée..si vous avez une idée pour moi je suis preneur! Edit2: je pense que ça a du marcher puisque ça a planté plus de 5000objets il a pas aimé je crois ou alors j'ai écris n'importe quoi! |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:01 | |
| Houla du calme avec les posts. T'as un bouton éditer en haut a droite alors sert toi en.
Pour ce qui est de la double boucle je parlais pas de créer des instances, mais l'utiliser dans un objet avec des draw_sprite par exemple. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:03 | |
| j'y penserai la prochaine fois promis pour la double boucle draw sprite si tu veux être un peu plus clair, je suis débutant ^^ |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:05 | |
| Ouaip avec des objets ca va pas être possible, surtout avec GM... Tu fais comme Oni a dit, une double boucle avec affichage d'un sprite. Sinon je crois me souvenir d'un truc du même style dans un des pack d'exemple dispo sur le cbna, ca pourrait t'aider. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:08 | |
| si tu peux me l'indiquer ce serait gentil comme tout, je sais pas ce que c'est une double boucle. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:11 | |
| Bah deux boucles imbriquées... Genre - Code:
-
for(i=0; i<640; i+=8) for(j=0; j<480; j+=8) draw_sprite(sprBlack, 0, view_xview + i, view_yview + j)
Et la normalement t'as un écran tout noir. Apres tu joue sur l'alpha d'un draw_sprite_ext et le tour est joué. Mais bon pour gérer la lumière en général on utilise une surface... |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 21:14 | |
| for (x=0;x<room_width;x+=1) { for (y=0;y<room_height;y+=1) { // tu fais tes calculs et t'affiche le sprite correspondant en x,y } }
edit : grillé... |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 22:33 | |
| ok alors en fait, avec
var x1 var y1 for (x1=0;x1<room_width; x1+ = 8 ) { for(y1=0;y1<room_height; y1 + = 8 ) {instance_create(x1,y1,obj_darkness)}}
ça marche nikel, mais si j'ai une énorme room il va TOUT remplir?ya pas moyen de lui dire uniquement l'écran? |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 22:51 | |
| Si, t'utilise view_wview et view_hview. Mais encore une fois le coup des instances est pas une bonne solution.
Va voir du coté des surfaces. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 23:01 | |
| j'ai regardé les surfaces, soit ça buggait (jai pas réussi à adapter le tuto), soit ça faisait pas vraiment l'effet attendu.. parceque j'aimerais remplir la zone non éclairé avec des pixel aléatoires.. avec ça j'ai pas exactement l'effet voulu mais je m'en approche de plus en plus - Code:
-
if distance_to_object(object7)<=60{visible=false} if distance_to_object(object7)>60 and distance_to_object(object7)<75 {visible=true;image_index=random(5)} if distance_to_object(object7)>75 and distance_to_object(object7)<90 {visible=true;image_index=random(5)} if distance_to_object(object7)>90 {visible=true;image_index=random(2)} et ça dans un objet spawner - Code:
-
var x1 var y1 for (x1=0;x1<room_width;x1+=8){ for(y1=0;y1<room_height;y1+=8){instance_create(x1,y1,obj_darkness)}} Ca risque de ramer? :s (je sais pas où glisser view_etc, je connais pas bien cette fonction..) |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 23:22 | |
| for (x1=0;x1<view_wview; x1+= 8 ) ...
Sinon ouai, ça risque fort de ramer. Fin ça dépend aussi du GM que t'utilise, mais j'ai pas grand espoir x) |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Mer 16 Jan 2013 - 23:30 | |
| qu'importe la taille de la room vu que ça rempli juste l'écran en fait.. mais bon si le jeu risque de ramer quand même c'est pas la peine.. c'est con ça marchait bien.. EDIT ça ressemble pas du tout à ce que je veux avec les surfaces.. sinon j'ai fais un test avec une room de 10000x1000 et... ça a planté!bizarre hein?^^ bref sinon j'ai fais view_wview comme tu as dis pour juste remplir l'écran et ça remplis juste l'écran effectviement! mais si je bouge ça bouge pas, ça rempli que l'écran du début sans suivre le perso ^^' et c'est dommage parceque ça rame pas du tout là et ça se lance tout de suite.. |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 7:10 | |
| Faut le mettre dans step, et là, ca risque fort de ramer... |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 7:48 | |
| Dans le step de tes objets shadow tu peut mettre: x = xstart + view_xview et la même pour y. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 10:25 | |
| effectivement ça rame.. en plus j'ai vu qu'avec cette technique j'arrivais pas à mettre de la lumière sur un autre objet, y'a des conflits de luminosité... bref, j'ai fais avec les surfaces mais c'est pas du tout comme je le voulais visuellement parlant..
en fait y'avait
var x1 var y1 for (x1=0;x1<view_wview;x1 + = 8 ){ for(y1=0;y1<view_hview;y1 + = 8 ){instance_create(x1,y1,obj_darkness)}}
et y'a
if distance_to_object(object8)<=60{visible=false} if distance_to_object(object8)>60 and distance_to_object(object7)<80 {visible=true;image_index=choose(5,4)} if distance_to_object(object8)>80 and distance_to_object(object7)<120 {visible=true;image_index=choose(3,4)} if distance_to_object(object8)>120 {visible=true;image_index=random(2)}
les valeurs random sont à changer, mais ça produit l'effet souhaité! Une pixelisation aleatoire de l'ecran, et double halo autour du perso.. c'est l'effet souhaité mais je vais chercher une autre technique.. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 11:15 | |
| Pour les surfaces je vois pas pourquoi ça ne marcherais pas et en quoi tu ne pourrais pas faire ce que tu veux. Apprend déjà a bien les gérer, car vu comme tu galère pour certains trucs basiques le soucis viens de toi.
Fait des tests, montre nous ce que ça donne avec des screens, ainsi que ce tu voudrait, et on te fileras un coup de pouce. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 11:18 | |
| le moyen que j'ai essayé était très simple pour remplir l'écran de pixel aléatoire, aevc les surfaces je vois pas du tout comment faire. Aussi avec mes carreaux 8x8 j'avais un joli halo pixelisé qui bougeait, avec les surfaces déjà je galère à avoir un rendu de pixel et puis ça bouge pas.... du coup c'est vachement plus long pour avoir un rendu identique à ce que j'ai fais.... et je vais faire autre chose parce que ça me gonfle ^^ y'a peut être quelquun qui pourra m'aider mais dans un moment.. sinon oui tu as raison, voilà des screen pour mieux comprendre mes bêtises ^^ Faites pas attention au "design" j'en suis à la programmation! le soucis c'est que j'ai un rendu type HD avec les surfaces.. vous voyez le genre? ^^ et j'en veux pas!! il faudra que j'étudie les "filtres" si y'a moyen sur GM... et comment.. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 11:44 | |
| Tu vire l'interpolation, et t'utilise une petite surface que tu agrandiras par la suite lors de son affichage. Je vois pas trop de soucis a ce niveau, c'est plus simple a coder, et énormément plus optimisé. Edit: Finalement pour passer le temps j'ai fait ça: http://host-a.net/u/onilink_/Night2.gm6Et pour plus opti et adapté a ton projet: - Code:
-
surface_set_target(shadow) draw_clear(c_white) for(i=0; i<640/8; i+=1) for(j=0; j<480/8; j+=1) { if(choose(0, 1)) draw_point_color(i, j, $CCCCCC) }
surface_reset_target() |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 16:00 | |
| Jai pas pu regarder et test pque je suis au boulot, mais le truc c est que ds le premier sreen, tout est "animé" les pixels bougent et changent un peu de ton ^^ |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 16:23 | |
| Pareil pour moi, si tu regarde le code c'est dans un step, et choose retourne une valeur aléatoire. |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 17:20 | |
| Je peux pas le voir la fenetre est coupée ^^ je regarde tout a l heure, merci a toi dans tous les cas!! EDIT okokok, c'est bien compliqué tout ça, j'ai compris ce qu'est un draw, mais quand tu mets "draw_set_blend_mode(bm_subtract)" qu'est ce qu'il existe d'autre comme mode? et concrètement quel est l'effet subtract? donc même si j'ai une room de 10000x1000 shadow = surface_create(640/8, 480/ là je met la dimension de l'écran? EDIT merci beaucoup en tout cas! ça rend un peu épileptique mais c'est dans l'idée, je continue de faire des essais j'arrte d'edit lol |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 21:46 | |
| |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 21:49 | |
| Merci pour le liens! Et encore merci pour les codes, j'arrive à trifouiller un peu pour que ça colle à ce que je voulais surface_set_target(shadow) draw_clear($D8D8D8) for(i=0; i<1056/8; i+=1) for(j=0; j<500/8; j+=1) { if(choose(0,1,2)) draw_point_color(i, j, choose($F2F2F2,$E5E5E5)) } surface_reset_target() c'est un peu baveux je sais pas pourquoi...enfin jai l'impression.. |
|
| |
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 22:19 | |
| Faut virer l'interpolation quand t'affiche ta texture avec texture_set_interpolation(false). |
|
| |
tales Utilisateur confirmé: Rang *
Messages : 243
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 22:59 | |
| oula effectivement c'était baveux! mais pourquoi? ça marche mais du coup j'ai pas la piexelisation partout :s c'est la résolution 1056x480 qui pose problème? ou le /8? |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: objet et ecran Jeu 17 Jan 2013 - 23:41 | |
| L'interpolation ne devrait pas poser de problème si tes coefficients d'agrandissement sont entiers. Cependant, tu peux la réactiver avec la même fonction juste après avoir affiché la surface... _________________ Home is not a place, it's a feeling.
|
|
| |
Contenu sponsorisé
| Sujet: Re: objet et ecran | |
| |
|
| |
| objet et ecran | |
|