red-error Utilisateur confirmé: Rang ****
Messages : 1015 Projet Actuel :
| Sujet: Liste de fonctions cachotières non-registered free lite Sam 2 Jan 2010 - 17:55 | |
| "Il y a de nombreuses fonctions qui sont disponibles dans le mode non-enregistré et qui sont pourtant ignorées par les jeunes utilsateurs. GM lite offre de nombreuses possibilités, qu'ils ne soupçonnent souvent pas !" Il y a longtemps j'avais ce texte en signature :- Spoiler:
Liste des fonctions possibles en mode non-registered et qui n'en ont pas l'air:
-image_alpha, _x/yscale -draw_set_alpha(alp), color_merge(c1,c2,%) -draw_sprite/background_part(sp,ind,x,y), _stretched(sp,ind,x,y,w,h) -tile_set_alpha(id,alp), _scale(id,xsc,ysc), background_alpha[0...7] -tableaux[a], tableaux[a,b] -screen_save(f), screen_save_part(f,x,y,w,h) -ini_open(f), ini_read_real(sc,key,val), ini_write_string(sc,key,str), ... -path_scale, orientation
Mais pour avoir une liste à peu-près exhaustive de toutes ces fonctions , au lieu de toutes les citer une à unes (si je me met à refaire la liste incluant instance_create...) j'ai entrepris de faire par élimination, la liste des fonctions uniquement disponibles en mode Pro (et donc toutes les autres sont libres !).
Au début je pensais que ce serai plus court.
Problème de mise en page venant du fait que c'est un copier-coller d'un texte de PC à MAC résolu, ceci est le "second jet". La mise en page sera améliorée d'ici... peu.
Dès que Sekigo aura traduit l'aide de GM8, j'ajoute les fonctions GM8. :hehe:
GM6 aid : " Cette action n'est disponible que dans la version enregistrée. " GM 6 (basé sur l'aide GM6 << Traduction française par Philippe Ragni - (2005) >>) /Ressources de base/- Spoiler:
Les path, timelines, objets, scripts, sprites, sons, fonts ! sont tous disponibles. Notez cependant que dans les sons, certaines fonctionnalités avancées (tous les effets spéciaux) sont bloquées pour les utilisateurs non-enregistrés. Autrement dans l'éditeur d'images vous pouvez librement charger des sprites et backgrounds, changer les couleurs, utiliser les effets... ( ! ce n'est plus entièrement le cas dans GM8 ! ) /Drag & drop/-Onglet DRAW - Spoiler:
Draw a text transformed (Affiche un texte avec effet de transformation) >Alternative : utiliser les "FONTS" (mais pas les même effets)
Draw a horizontal gradient (Dessine un rectangle avec couleurs gradient horizontales) Draw a vertical gradient (Dessine un rectangle avec couleurs gradient verticales) Draw a gradient ellipse (Dessine une ellipse gradient) > Alternative : pas conseillé, faire une boucle (lent), faire un dessin
Take a snapshot image of the game (Effectuer une copie d'écran du jeu) > Alternative : disponible en GML
Create an effect (Créer un effet) (système de particules) > Alternative : créer son propre système de particules (objets ou draws)
-Onglet ACTIONS 1 - Spoiler:
Transform the sprite (Transformer le sprite) Set sprite blending (Paramétrer le mélange de couleur du sprite) > Alternative : changer les variables image_xscale, image_yscale ou image_alpha (dispo)... faire un autre sprite dans l'éditeur...
-"Actions complémentaires", toutes - Spoiler:
Lire un CD musical (Play a CD) Arrêter la lecture du CD (Stop the CD) Mets en pause le CD (Pause the CD) Reprendre la lecture du CD (Resume the CD) Tester si un CD est présent dans le lecteur (If a CD exists in the drive) Tester si le CD est en cours de lecture (If the CD is playing) Remplacer le curseur de la souris (Set the mouse cursor) Ouvrir une page web dans un navigateur (Open a webpage in a browser)
Note: certaines de ces fonctions sont disponibles dans le mode GML. -Certaines actions principales (ayant trait à la modification des ressources) - Spoiler:
Remplacer un sprite à partir d'un fichier (Replace a sprite from a file) Remplacer un son à partir d'un fichier (Replace a sound from a file) Remplacer un décor à partir d'un fichier (Replace a background from a file)
-Système de particules - Spoiler:
Créer le système de particule (Create the particle system) Détruire le système de particule (Destroy the particle system) Effacer toutes les particules du système (Clear all particles in the system) Créer un type de particule (Create a type of particle) Choisir une couleur pour un type de particule (Set the color for a particle type) Fixer la durée de vie pour un type de particule (Set the life time for a particle type) Régler le déplacement pour un type de particule (Set the motion for a particle type) Fixer la gravité d'un type de particule (Set the gravity of a particle type) Créer des particules secondaires (Create secondary particles) Créer un émetteur de particule (Create a particle emitter) Détruire un émetteur (Destroy an emitter) Générer un nombre de particules à partir d'un émetteur (Burst a number of particles from an emitter) Créer des jets de particules à partir d'un émetteur (Stream particles from an emitter)
En utilisant plusieurs objets, en utilisant des tableaux en GML... les particules peuvent être remplacées et émulées (il suffit de faire preuve de bon goût). /GML/-Variables ayant trait aux backgrounds Seul background_blend[0..7] est limité aux utilisateurs enregistrés. ! Les autres variables (background_xscale, background_alpha!) sont utilisables à volonté ! -Fonctions avancées de dessin - Spoiler:
draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha) draw_sprite_stretched_ext(sprite,subimg,x,y,w,h,color,alpha) draw_sprite_tiled_ext(sprite,subimg,x,y,xscale,yscale,color,alpha) draw_sprite_part_ext(sprite,subimg,left,top,width,height,x,y,xscale,yscale,color,alpha) draw_sprite_general(sprite,subimg,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)
> Alternatives : draw_sprite_stretched(), utiliser des tiles, ne pas utiliser de draw, faire plusieurs sprites... Pas d'alternative vraiment viable pour les blends et la rotation (à part faire plusieurs sprites ou utiliser view_angle...) - Spoiler:
draw_background_ext(back,x,y,xscale,yscale,rot,color,alpha) draw_background_stretched_ext(back,x,y,w,h,color,alpha) draw_background_tiled_ext(back,x,y,xscale,yscale,color,alpha) draw_background_part_ext(back,left,top,width,height,x,y,xscale,yscale,color,alpha) draw_background_general(back,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)
> Alternatives : les mêmes que pour les sprites... Notez que toutes les autres fonctions de dessin des background et sprite ( ! draw_settched, draw_part, draw_tiled ! ) sont disponibles ! - Spoiler:
draw_point_color(x,y,col1) Affiche un point à la position (x,y) draw_line_color(x1,y1,x2,y2,col1,col2) draw_rectangle_color(x1,y1,x2,y2,col1,col2,col3,col4,outline) draw_roundrect_color(x1,y1,x2,y2,col1,col2,outline) draw_triangle_color(x1,y1,x2,y2,x3,y3,col1,col2,col3,outline) draw_circle_color(x,y,r,col1,col2,outline) draw_ellipse_color(x1,y1,x2,y2,col1,col2,outline)
! Toutes les autres fonctions de dessins n'ayant pas trait aux primitives sont disponibles ! ( draw_triangle, draw_set_color, get_point_color, ... ) > Alternatives : draw_set_color(), make_color_rgb(), merge_color(), et draw_set_alpha() ne sont pas entièrement dépassés, et permettent tout de même à l'utilisateur non enregistré de faire de joli graphismes en draw. Notez aussi que juste en désactivant le background_color et en dessinant comme fond un rectangle transparent recouvrant toute la salle, on a déjà un bel effet de mouvement. -Les fonctions des primitives, textures et blend mode : - Spoiler:
draw_primitive_begin(kind) draw_vertex(x,y) draw_vertex_color(x,y,col,alpha) draw_primitive_end()
sprite_get_texture(spr,subimg) background_get_texture(back) texture_preload(texid) texture_set_priority(texid,prio) texture_get_width(texid) texture_get_height(texid)
draw_primitive_begin_texture(kind,texid) draw_vertex_texture(x,y,xtex,ytex) draw_vertex_texture_color(x,y,xtex,ytex,col,alpha) draw_primitive_end() ('')
texture_set_interpolation(linear) texture_set_blending(blend) texture_set_repeat(repeat) draw_set_blend_mode(mode) draw_set_blend_mode_ext(src,dest)
Ces fonctions puissantes permettent moult effets spéciaux d'un niveau supérieur. Difficilement comparables à ce que l'on peut faire avec la version non-enregistrée, mais avec un peu de goût on peut aussi faire des trucs bien... Le blend mode, les textures et les primitives sont néanmoins un grand atout de la version enregistrée. (on peut toujours essayer de jouer avec un tableau de triangles et de points, mais je doute que le fps appréciera) Notez que même si les fonctions avancées sont indisponibles, de nombreuses autres fonctions de dessin sont déjà disponibles pour les débutants non-enregistrés. -Toutes les fonctions sur les systèmes de particules Liste : (notez que la liste n'est pas vraiment nécessaire, il suffit de retenir que l'on ne peut pas utiliser le système de particules intégré de GM. ) - Spoiler:
effect_create_below(kind,x,y,size,color) effect_create_above(kind,x,y,size,color) effect_clear() part_type_create() part_type_destroy(ind) part_type_exists(ind) part_type_clear(ind) part_type_shape(ind,shape) part_type_size(ind,size_min,size_max,size_incr,size_wiggle) part_type_scale(ind,xscale,yscale) part_type_orientation(ind,ang_min,ang_max,ang_incr,ang_wiggle,ang_relative) part_type_color1(ind,color1) part_type_color2(ind,color1,color2) part_type_color3(ind,color1,color2,color3) part_type_color_mix(ind,color1,color2) part_type_color_rgb(ind,rmin,rmax,gmin,gmax,bmin,bmax) part_type_color_hsv(ind,hmin,hmax,smin,smax,vmin,vmax) part_type_alpha1(ind,alpha1) part_type_alpha2(ind,alpha1,alpha2) part_type_alpha3(ind,alpha1,alpha2,alpha3) part_type_blend(ind,additive) part_type_life(ind,life_min,life_max) part_type_step(ind,step_number,step_type) part_type_death(ind,death_number,death_type) part_type_speed(ind,speed_min,speed_max,speed_incr,speed_wiggle) part_type_direction(ind,dir_min,dir_max,dir_incr,dir_wiggle) part_type_gravity(ind,grav_amount,grav_dir) part_system_create() part_system_destroy(ind) part_system_exists(ind) part_system_clear(ind) part_system_draw_order(ind,oldtonew) part_system_depth(ind,depth) part_system_position(ind,x,y) part_system_automatic_update(ind,automatic) part_system_automatic_draw(ind,automatic) part_system_drawit(ind) part_particles_create(ind,x,y,parttype,number) part_particles_create_color(ind,x,y,parttype,color,number) part_particles_clear(ind) part_particles_count(ind) part_emitter_create(ps) part_emitter_destroy(ps,ind) part_emitter_destroy_all(ps) part_emitter_exists(ps,ind) part_emitter_clear(ps,ind) part_emitter_region(ps,ind,xmin,xmax,ymin,ymax,shape,distribution) part_emitter_burst(ps,ind,parttype,number) part_emitter_stream(ps,ind,parttype,number) part_attractor_create(ps) part_attractor_destroy(ps,ind) part_attractor_destroy_all(ps) part_attractor_exists(ps,ind) part_attractor_clear(ps,ind) part_attractor_position(ps,ind,x,y) part_attractor_force(ps,ind,force,dist,kind,aditive) part_destroyer_create(ps) part_destroyer_destroy(ps,ind) part_destroyer_destroy_all(ps) part_destroyer_exists(ps,ind) part_destroyer_clear(ps,ind) part_destroyer_region(ps,ind,xmin,xmax,ymin,ymax,shape) part_deflector_create(ps) part_deflector_destroy(ps,ind) part_deflector_destroy_all(ps) part_deflector_exists(ps,ind) part_deflector_clear(ps,ind) part_deflector_region(ps,ind,xmin,xmax,ymin,ymax) part_deflector_kind(ps,ind,kind) part_deflector_friction(ps,ind,friction) part_changer_create(ps) part_changer_destroy(ps,ind) part_changer_destroy_all(ps) part_changer_exists(ps,ind) part_changer_clear(ps,ind) part_changer_region(ps,ind,xmin,xmax,ymin,ymax,shape) part_changer_types(ps,ind,parttype1,parttype2) part_changer_kind(ps,ind,kind)
> Alternative à tout ça : on peut très bien créer son propre système de particules à partir d'un tableau, d'objets ou de draws, en jouant avec des random() et des min(), max(), merge_color() etc. (y'a pas justement un tuto pour ça ?) -Toutes les fonctions d'effets spéciaux sur les sons Liste normalement exhaustive (pris du fichier d'aide) - Spoiler:
sound_effect_set(snd,effect) sound_effect_chorus(snd,wetdry,depth,feedback,frequency,wave,delay,phase) sound_effect_echo(snd,wetdry,feedback,leftdelay,rightdelay,pandelay) sound_effect_flanger(snd,wetdry,depth,feedback,frequency,wave,delay,phase) sound_effect_gargle(snd,rate,wave) sound_effect_reverb(snd,gain,mix,time,ratio) sound_effect_compressor(snd,gain,attack,release,threshold,ratio,delay) sound_effect_equalizer(snd,center,bandwidth,gain)
Aucune alternative (à moins de changer soi-même ses sons avec un éditeur de sons externe avant) ( ! notez que sont disponibles en mode non enregistré sound_volume(index,value) sound_global_volume(value) sound_fade(index,value,time) (effet de changement de volume progressif ! ) sound_pan(index,value) sound_background_tempo(factor) sound_set_search_directory(dir) ! ) -Les fonctions de modifications de ressources On ne peut pas modifier les ressources en mode non enregistré. Liste : - Spoiler:
-Fonctions sur les sprites sprite_set_offset(ind,xoff,yoff) sprite_set_bbox_mode(ind,mode) sprite_set_bbox(ind,left,top,right,bottom) sprite_set_precise(ind,mode) sprite_duplicate(ind) sprite_assign(ind,spr) sprite_merge(ind1,ind2) sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) sprite_replace(ind,fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) sprite_create_from_screen(x,y,w,h,precise,transparent,smooth,preload,xorig,yorig) sprite_add_from_screen(ind,x,y,w,h) sprite_create_from_surface(id,x,y,w,h,precise,transparent,smooth,preload,xorig,yorig) sprite_add_from_surface(ind,id,x,y,w,h) sprite_delete(ind) sprite_set_alpha_from_sprite(ind,spr)
-Sons sound_add(fname,kind,preload) sound_replace(index,fname,kind,loadonuse) sound_delete(index)
-Arrière plans background_duplicate(ind) background_assign(ind,back) background_add(fname,transparent,smooth,preload) background_replace(ind,fname,transparent,smooth,preload) background_create_color(w,h,col,preload) background_create_gradient(w,h,col1,col2,kind,preload) background_create_from_screen(x,y,w,h,transparent,smooth,preload) background_create_from_surface(id,x,y,w,h,transparent,smooth,preload) background_delete(ind) background_set_alpha_from_background(ind,back)
-Polices de caractères font_add(name,size,bold,italic,first,last) font_add_sprite(spr,first,prop,sep) font_replace(ind,name,size,bold,italic,first,last) font_replace_sprite(ind,spr,first,prop,sep) font_delete(ind) -Chemins path_set_kind(ind,val) path_set_closed(ind,closed) path_set_precision(ind,prec) path_add() path_delete(ind) path_duplicate(ind) path_assign(ind,path) path_append(ind,path) path_add_point(ind,x,y,speed) path_insert_point(ind,n,x,y,speed) path_change_point(ind,n,x,y,speed) path_delete_point(ind,n) path_clear_points(ind) path_reverse(ind) path_mirror(ind) path_flip(ind) path_rotate(ind,angle) path_scale(ind,xscale,yscale) path_shift(ind,xshift,yshift)
-Scripts Cette section est sujette à vérification execute_string(str) execute_file(fname) script_execute(scr,arg0,arg1,...) -Lignes du temps timeline_add() timeline_delete(ind) timeline_moment_add(ind,step,codestr) timeline_moment_clear(ind,step)
-Objets object_set_sprite(ind,spr) object_set_solid(ind,solid) object_set_visible(ind,vis) object_set_depth(ind,depth) object_set_persistent(ind,pers) object_set_mask(ind,spr) object_set_parent(ind,obj) object_add() object_delete(ind) object_event_add(ind,evtype,evnumb,codestr) object_event_clear(ind,evtype,evnumb)
-Chambre (Rooms) room_set_width(ind,w) room_set_height(ind,h) room_set_caption(ind,str) room_set_persistent(ind,val) room_set_code(ind,str) room_set_background_color(ind,col,show) room_set_background(ind,bind,vis,fore,back,x,y,htiled,vtiled,hspeed,vspeed,alpha) room_set_view(ind,vind,vis,xview,yview,wview,hview,xport,yport,wport,hport,hborder,vborder,hspeed,vspeed,obj) room_set_view_enabled(ind,val) room_add() room_duplicate(ind) room_assign(ind,room) room_instance_add(ind,x,y,obj) room_instance_clear(ind) room_tile_add(ind,back,left,top,width,height,x,y,depth) room_tile_add_ext(ind,back,left,top,width,height,x,y,depth,xscale,yscale,alpha) room_tile_clear(ind)
Ces fonctions de création-modification de ressources pendant le jeu sont utiles. Néanmoins, certaines peuvent être remplacées par simplement la création d'un nouveau système de path, de timeline... sur lequel vous aurez un contrôle complet. Mais dans la plupart des cas, il faudra tout définir à l'avance... -Toutes les fonctions ayant trait à l'utilisation des CD. (décédé hehe) (musique) Liste : - Spoiler:
cd_init() cd_present() cd_number() cd_playing() cd_paused() cd_track() cd_length() cd_track_length(n) cd_position() cd_track_position() cd_play(first,last) cd_stop() cd_pause() cd_resume() cd_set_position(pos) cd_set_track_position(pos) cd_open_door() cd_close_door() MCI_command(str)
Il n'y a pas d'autre moyens de jouer les CD. -Fonctions sur les sons 3D - Spoiler:
sound_3d_set_sound_position(snd,x,y,z) sound_3d_set_sound_velocity(snd,x,y,z) sound_3d_set_sound_distance(snd,mindist,maxdist) sound_3d_set_sound_cone(snd,x,y,z,anglein,angleout,voloutside)
-Variables sur les sprites des objets Seules image_blend et image_angle sont réservés aux utilisateurs enregistrés, pour le reste, libre à vous de jouer avec toutes les autres variables, dont image_xscale, image_yscale, image_alpha ! ( ! sprite_x/offset et les variables utiles à lecture seule sont aussi disponibles (mais pas modifiables > voir chapitre modification des ressources ) ! ) -Fonctions sur les tiles Les utilisateurs non-reg ont beaucoup de contrôle sur les tiles, sans vraiment le savoir. La seule fonction qui leur est interdite est tile_set_blend(id,color), pour le reste, on peut s'amuser à volonté ! ! Notons entre autres tile_add(), tile_set_region, tile_set_background !, tile set_ alpha() ainsi que tile_set_scale(id,xscale,yscale) sont aussi présentes ! -Fonctions sur les structures de données - Spoiler:
ds_set_precision(prec) (précision des égalités) -Piles des données (Stacks) ds_stack_create() ds_stack_destroy(id) ds_stack_clear(id) ds_stack_size(id) ds_stack_empty(id) ds_stack_push(id,val) ds_stack_pop(id) ds_stack_top(id)
-Files d'attente (Queues) ds_queue_create() ds_queue_destroy(id) ds_queue_clear(id) ds_queue_size(id) ds_queue_empty(id) ds_queue_enqueue(id,val) ds_queue_dequeue(id) ds_queue_head(id) ds_queue_tail(id)
-Listes (Lists) ds_list_create() ds_list_destroy(id) ds_list_clear(id) ds_list_size(id) ds_list_empty(id) ds_list_add(id,val) ds_list_insert(id,pos,val) ds_list_replace(id,pos,val) ds_list_delete(id,pos) ds_list_find_index(id,val) ds_list_find_value(id,pos) ds_list_sort(id,ascend)
-Cartes (Maps) ds_map_create() ds_map_destroy(id) ds_map_clear(id) ds_map_size(id) ds_map_empty(id) ds_map_add(id,key,val) ds_map_replace(id,key,val) ds_map_delete(id,key) ds_map_exists(id,key) ds_map_find_value(id,key) ds_map_find_previous(id,key) ds_map_find_next(id,key) ds_map_find_first(id) ds_map_find_last(id)
-Files d'attente prioritaires (Priority Queues) ds_priority_create() ds_priority_destroy(id) ds_priority_clear(id) ds_priority_size(id) ds_priority_empty(id) ds_priority_add(id,val,prio) ds_priority_change_priority(id,val,prio) ds_priority_find_priority(id,val) ds_priority_delete_value(id,val) ds_priority_delete_min(id) ds_priority_find_min(id) ds_priority_delete_max(id) ds_priority_find_max(id)
-Grilles (Grids) ds_grid_create(w,h) ds_grid_destroy(id) ds_grid_resize(id,w,h) ds_grid_width(id) ds_grid_height(id) ds_grid_clear(id,val) ds_grid_set(id,x,y,val) ds_grid_add(id,x,y,val) ds_grid_multiply(id,x,y,val) ds_grid_set_region(id,x1,y1,x2,y2,val) ds_grid_add_region(id,x1,y1,x2,y2,val) ds_grid_multiply_region(id,x1,y1,x2,y2,val) ds_grid_set_disk(id,xm,ym,r,val) ds_grid_add_disk(id,xm,ym,r,val) ds_grid_multiply_disk(id,xm,ym,r,val) ds_grid_get(id,x,y) ds_grid_get_sum(id,x1,y1,x2,y2) ds_grid_get_max(id,x1,y1,x2,y2) ds_grid_get_min(id,x1,y1,x2,y2) ds_grid_get_mean(id,x1,y1,x2,y2) ds_grid_get_disk_sum(id,xm,ym,r) ds_grid_get_disk_min(id,xm,ym,r) ds_grid_get_disk_max(id,xm,ym,r) ds_grid_get_disk_mean(id,xm,ym,r) ds_grid_value_exists(id,x1,y1,x2,y2,val) ds_grid_value_x(id,x1,y1,x2,y2,val) ds_grid_value_y(id,x1,y1,x2,y2,val) ds_grid_value_disk_exists(id,xm,ym,r,val) ds_grid_value_disk_x(id,xm,ym,r,val) ds_grid_value_disk_y(id,xm,ym,r,val)
> Alternative : il reste tout de même aux utilisateurs non-enregistrés la possibilité d'utiliser les tableaux (c'est à dire les variables dépendant d'autre variables position, par exemple var[i,j]), ainsi que les INI ! (Note à moi-même : demander à propos de performances de ces modes de stockage)
-Toutes les fonctions sur l'utilisation des surfaces Liste : (liste pas très utile, comme les particules il suffit de savoir) - Spoiler:
surface_create(w,h) surface_free(id) surface_exists(id) surface_get_width(id) surface_get_height(id) surface_get_texture(id) surface_set_target(id) surface_reset_target() surface_getpixel(id,x,y) surface_save(id,fname) surface_save_part(id,fname,x,y,w,h) draw_surface(id,x,y) draw_surface_stretched(id,x,y,w,h) draw_surface_tiled(id,x,y) draw_surface_part(id,left,top,width,height,x,y) draw_surface_ext(id,x,y,xscale,yscale,rot,color,alpha) draw_surface_stretched_ext(id,x,y,w,h,color,alpha) draw_surface_tiled_ext(id,x,y,xscale,yscale,color,alpha) draw_surface_part_ext(id,left,top,width,height,x,y,xscale,yscale,color,alpha) draw_surface_general(id,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) surface_copy(destination,x,y,source) surface_copy_part(destination,x,y,source,xs,ys,ws,hs)
Pas vraiment d'alternative : les surfaces couplées au blend mode sont un dispositif très puissant permettant de modifier à volonté les images, porte ouverte à toutes sortes d'effets spéciaux faramineux ! Une des grandes raisons de passer en mode pro, mais pas d'un niveau très accessible aux débutants. -Les fonctions 3D Aucune fonction 3D ne peut être utilisée en mode non-enregistré. D'un même côté, la 3D n'est pas facile à manier pour un débutant. D'ailleurs, comme Mark Ovemars le dit à propos des restrictions 3D : " Si tout ceci ne vous a pas découragés, alors lisez ce qui suit. " Liste ('Juste pour savoir qu'elles existent') - Spoiler:
d3d_start() d3d_end() d3d_set_hidden(enable) d3d_set_perspective(enable) d3d_set_depth(depth) d3d_primitive_begin(kind) d3d_vertex(x,y,z) d3d_vertex_color(x,y,z,col,alpha) d3d_primitive_end() d3d_primitive_begin_texture(kind,texid) d3d_vertex_texture(x,y,z,xtex,ytex) d3d_vertex_texture_color(x,y,z,xtex,ytex,col,alpha) d3d_primitive_end() d3d_set_culling(cull) d3d_draw_block(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) d3d_draw_cylinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) d3d_draw_cone(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps) d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps) d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) d3d_draw_floor(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat) d3d_set_projection(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup) d3d_set_projection_ext(xfrom,yfrom,zfrom,xto,yto,zto,xup,yup,zup,angle,aspect,znear,zfar) d3d_set_projection_ortho(x,y,w,h,angle) d3d_set_projection_perspective(x,y,w,h,angle)
d3d_transform_set_identity() d3d_transform_set_translation(xt,yt,zt) d3d_transform_set_scaling(xs,ys,zs) d3d_transform_set_rotation_x(angle) d3d_transform_set_rotation_y(angle) d3d_transform_set_rotation_z(angle) d3d_transform_set_rotation_axis(xa,ya,za,angle) d3d_transform_add_translation(xt,yt,zt) d3d_transform_add_scaling(xs,ys,zs) d3d_transform_add_rotation_x(angle) d3d_transform_add_rotation_y(angle) d3d_transform_add_rotation_z(angle) d3d_transform_add_rotation_axis(xa,ya,za,angle)
d3d_transform_stack_clear() d3d_transform_stack_empty() d3d_transform_stack_push() d3d_transform_stack_pop() d3d_transform_stack_top() d3d_transform_stack_discard() d3d_set_fog(enable,color,start,end) d3d_set_lighting(enable) d3d_set_shading(smooth) d3d_light_define_direction(ind,dx,dy,dz,col) d3d_light_define_point(ind,x,y,z,range,col) d3d_light_enable(ind,enable)
d3d_vertex_normal(x,y,z,nx,ny,nz) d3d_vertex_normal_color(x,y,z,nx,ny,nz,col,alpha) d3d_vertex_normal_texture(x,y,z,nx,ny,nz,xtex,ytex) d3d_vertex_normal_texture_color(x,y,z,nx,ny,nz,xtex,ytex,col,alpha)
d3d_model_create() d3d_model_destroy(ind) d3d_model_clear(ind) d3d_model_save(ind,fname) d3d_model_load(ind,fname) d3d_model_draw(ind,x,y,z,texid)
d3d_model_primitive_begin(ind,kind) d3d_model_vertex(ind,x,y,z) d3d_model_vertex_color(ind,x,y,z,col,alpha) d3d_model_vertex_texture(ind,x,y,z,xtex,ytex) d3d_model_vertex_texture_color(ind,x,y,z,xtex,ytex,col,alpha) d3d_model_vertex_normal(ind,x,y,z,nx,ny,nz) d3d_model_vertex_normal_color(ind,x,y,z,nx,ny,nz,col,alpha) d3d_model_vertex_normal_texture(ind,x,y,z,nx,ny,nz,xtex,ytex) d3d_model_vertex_normal_texture_color(ind,x,y,z,nx,ny,nz,xtex,ytex,col,alpha)
d3d_model_block(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat) d3d_model_cylinder(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,closed,steps) d3d_model_cone(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,closed,steps) d3d_model_ellipsoid(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat,steps) d3d_model_wall(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat) d3d_model_floor(ind,x1,y1,z1,x2,y2,z2,hrepeat,vrepeat)
M. Ovemars : " Game Maker est et reste avant tout un logiciel pour créer des jeux en 2 dimensions. " pour les Non-reg. Note : la 3D fonctionnerai vraiment mieux avec des DDL. -Les fonctions de jeu multi-joueurs (par réseau) - Spoiler:
mplay_init_ipx() mplay_init_tcpip(addr) mplay_init_modem(initstr,phonenr) mplay_init_serial(portno,baudrate,stopbits,parity,flow) mplay_connect_status() mplay_end() mplay_ipaddress() mplay_session_create(sesname,playnumb,playername) mplay_session_find() mplay_session_name(numb) mplay_session_join(numb,playername) mplay_session_mode(move) mplay_session_status() mplay_session_end() Termine mplay_player_find() mplay_player_name(numb) mplay_player_id(numb) mplay_data_write(ind,val) mplay_data_read(ind) mplay_data_mode(guar) mplay_message_send(player,id,val) mplay_message_send_guaranteed(player,id,val) mplay_message_receive(player) mplay_message_id() mplay_message_value() mplay_message_player() mplay_message_name() mplay_message_count(player) mplay_message_clear(player)
Note : ces fonctions sont généralement délaissées pour des DDL.
Fichier d'aide GM : " Vous pouvez bien entendu jouer à un jeu en étant deux joueurs devant le même écran et utiliser différentes touches ou autres périphériques de saisie [...]" Bon, on a bien ri, c'est vrai que le multijoueur est une grande fonction qui n'est pas en mode free. -Fonctions de détermination d'un chemin Bien qu'il existe les fonctions qui dirigent un objet vers un point en évitant les obstacles, il fallait des fonctions plus avancées pour des chemins plus compliqués (labyrinthes)... Des fonctions pour IA par exemple. - Spoiler:
mp_linear_path(path,xg,yg,stepsize,checkall) mp_linear_path_object(path,xg,yg,stepsize,obj) mp_potential_path(path,xg,yg,stepsize,factor,checkall) mp_potential_path_object(path,xg,yg,stepsize,factor,obj)
Créer son propre système de collisions (puisque c'est à peu près ce dont il s'agit) n'est pas si compliqué, mais nécessite dejà une petite habitude de GM (GML). Je pense qu'il y avait un exemple dans le Tuto intégral d'Eddi9999... (Note à moi-même : à vérifier)-Fonctions de grid Encore plus avancées dans la recherche du chemin, les fonctions de création d'un chemin par grille sont les plus puissantes (à ce qu'il est écrit dans le fichier d'aide) pour trouver des chemins, et est appelé aussi algorithme A* (A-star). - Spoiler:
mp_grid_create(left,top,hcells,vcells,cellwidth,cellheight) mp_grid_destroy(id) mp_grid_clear_all(id) mp_grid_clear_cell(id,h,v) mp_grid_clear_rectangle(id,left,top,right,bottom) mp_grid_add_cell(id,h,v) mp_grid_add_rectangle(id,left,top,right,bottom) mp_grid_add_instances(id,obj,prec) mp_grid_path(id,path,xstart,ystart,xgoal,ygoal,allowdiag) mp_grid_draw(id)
Bien qu'au premier abord, cela paraisse compliqué, ça paraît possible de refaire la même chose avec un tableau... Mais refaire son propre système de grid est assez long, je pense. (Note à moi-même : faire des recherches sur A*, évaluer les possibilités)-Les fonctions de paramétrage de l'affichage A vérifier, sur la page "Affichage", il y a plusieurs fonctions. " Les fonctions de paramétrage du mode d'affichage ne sont disponibles que dans la version enregistrée. " A voir si les fonctions "get" sont possibles, et si seules les fonctions "set" sont mode Reg. Dans le doute, j'attendrai avant de mettre ces fonctions. (à tester) -Fonctions d'utilisation des librairies DDL Les Dynamic Link Library sont réservées aux utilisateurs du mode enregistré. Très puissant, ce système peut ajouter beaucoup, mais déjà avec toutes les fonctions à notre disposition, il y a pas mal à faire en mode Non-reg, surtout avec de l'imagination. Liste des fonctions : - Spoiler:
external_define(dll,name,calltype,restype,argnumb,arg1type,arg2type, ...) external_free(dll) execute_string(str) (déjà cité dans la modification des ressources) execute_file(fname) window_handle() "Retourne le gestionnaire de fenêtre de la fenêtre principale (window handle)." Toutes les autres fonctions qui n'ont pas été citée dans une des catégories et qui n'est pas rattachée à une DDl externe sont disponibles (logiquement) aux usagers non-enregistrés. En clair, vous comptez le nombre de fonctions citées ici, vous soustrayez ce nombre à environs 1000 et vous aurez le nombre de fonctions avec lesquelles il vous reste à faire connaissance, et qui sait, vous lier d'amitié avec certaines d'entre elles ? Rien d'impossible à coeur entreprenant. Copier-coller pouvoireuh.[/size]
Dernière édition par red-error le Mer 1 Sep 2010 - 12:24, édité 12 fois |
|