Fonctions obsolètes


Pour les utilisateurs venant de GameMaker: Studio 1.4, il peut être un peu déroutant d'utiliser GameMaker Studio 2 au début, car un certain nombre de modifications ont été apportées à la façon dont les ressources du projet, l'édition et le codage sont gérés. Ces changements signifient que ni l'EDI ni le langage GameMaker (GML) ne prennent en charge les éléments listés ci-dessous. Cependant, cela ne signifie pas que vous ne pouvez pas importer les jeux créés avec GameMaker: Studio 1.4 dans GameMaker Studio 2, comme vous le pouvez! Les fonctions listées ici seront transformées en scripts de compatibilité

Dans GameMaker: Studio 1.4, vous GameMaker une ressource de fond distincte dans laquelle vous pouviez ajouter des images à utiliser comme arrière-plan. Dans GameMaker Studio 2 toutes les images sont considérées comme des sprites, et l'utilisation que vous en ferez dépendra de la couche à laquelle elles sont assignées dans la pièce. Cela signifie qu'il n'y a plus de ressource "background" et que les fonctions suivantes sont obsolètes:

draw_background draw_background_ext draw_background_stretched draw_background_stretched_ext
draw_background_part draw_background_part_ext draw_background_general draw_background_tiled
draw_background_tiled_ext nom_d'arrière background_exists background_get_name
draw_background draw_background_ext draw_background_stretched draw_background_stretched_ext
background_get_width background_get_height background_get_transparent background_get_smooth
background_get_preload background_get_uvs background_get_texture background_set_alpha_from_background
background_create_from_surface background_create_color background_create_colour background_create_gradient
background_add background_replace background_add_alpha background_replace_alpha
background_delete background_duplicate background_assign background_save
background_prefetch background_prefetch_multi background_flush background_flush_multi
room_set_background

Vous pouvez en savoir plus sur les calques d'arrière-plan dans la section de l' éditeur de pièces et, pour plus d'informations sur les fonctions qui contrôlent les calques d'arrière-plan à l'aide du code, voir Calques d'arrière - plan.


Comme pour les arrière-plans (expliqués ci-dessus), la ressource de tuile de GameMaker: Studio 1.4 n'existe plus, et à la place nous avons des jeux de tuiles dans GameMaker Studio 2. Dans GameMaker: Studio 1.4, les tuiles utilisaient une ressource de fond et étaient placées à des profondeurs différentes dans l'éditeur de la pièce ou par le biais du code, mais la méthode utilisée n'était pas très flexible et n'était pas très efficace. Pour résoudre ces problèmes, dans GameMaker Studio 2 mosaïques sont désormais créées à partir d'une ressource d'image-objet et peuvent avoir différentes propriétés (animation ou mosaïque automatique). Ils sont ensuite placés sur une couche de tilemap dans l'éditeur de pièce ou via le code. En raison de ces changements, les fonctions suivantes sont maintenant obsolètes:

tile_get_x tile_get_y tile_get_left tile_get_top
tile_get_width tile_get_height tile_get_depth tile_get_visible
tile_get_xscale tile_get_yscale tile_get_alpha tile_get_background
tile_set_visible tile_set_background tile_set_region tile_set_position
tile_set_depth tile_set_scale tile_set_blend tile_set_alpha
tile_get_count tile_get_id tile_get_ids tile_get_ids_at_depth
tile_add tile_exists tile_delete tile_layer_hide
tile_layer_show tile_layer_delete tile_layer_shift tile_layer_find
tile_layer_delete_at tile_layer_depth room_tile_add room_tile_add_ext
room_tile_clear

Vous pouvez en savoir plus sur les jeux de tuiles dans la section du manuel sur l' éditeur de jeu de carreaux et sur la façon de les utiliser dans l'éditeur de pièce à partir de la section sur les calques de carreaux. Pour plus d'informations sur les fonctions qui contrôlent les couches d'arrière-plan à l'aide du code, voir Tilemap Layers.


La façon dont les objets sont traités dans GameMaker Studio 2 a légèrement changé en raison de l'introduction de calques dans l'éditeur de pièce. Il existe toujours la variable "depth", mais elle n'est maintenant vraiment utilisée que pour la compatibilité et vous ne pouvez plus obtenir ou définir la profondeur pour les objets, seulement les instances. Cela rend les fonctions suivantes obsolètes:

object_get_depth
object_set_depth

Vous pouvez en savoir plus sur les ressources objet à partir de la section manuelle de l' éditeur d'objets et sur les fonctions contrôlant les objets à l'aide de code dans la section Objets.


GameMaker: Studio 1.4 avait deux API de son différentes, une qui utilisait l'héritage sound_ fonctions (qui n'était vraiment valable que pour la plate-forme cible HTML5 ) et l'autre qui utilisait audio_ les fonctions. L'API audio a été améliorée et développée dans GameMaker Studio 2, rendant obsolètes les fonctions héritées suivantes:

sound_name sound_exists sound_get_name sound_get_kind
sound_get_preload sound_exists sound_restore sound_delete
sound_play sound_loop sound_stop sound_stop_all
sound_isplaying volume sonore sound_fade sound_global_volume
audio_music_gain audio_music_is_playing audio_new_system audio_old_system
audio_pause_music audio_play_music audio_resume_music audio_stop_music
système audio

Vous pouvez en savoir plus sur les ressources audio à partir de la section du manuel sur l' éditeur de son et sur les fonctions qui contrôlent l'audio en utilisant le code de la section Audio.


Lorsque vous utilisez des modèles 3D ou des primitives dans GameMaker: Studio 1.4, vous devez utiliser d3d_ les fonctions. Ceux-ci utilisaient une API obsolète pour le dessin et, dans de nombreux cas, n'étaient pas strictement liés à l'API Direct 3D, ni même à l'utilisation de la 3D elle-même. Avec l'arrivée des buffers de vertex, des matrices et des caméras dans GameMaker Studio 2, les fonctions suivantes ont été rendues obsolètes:

d3d_start d3d_end d3d_set_perspective d3d_set_hidden
d3d_set_depth d3d_set_lighting d3d_set_shading d3d_set_fog
d3d_set_culling d3d_set_zwriteenable d3d_set_projection d3d_set_projection_ext
d3d_set_projection_ortho d3d_set_projection_perspective d3d_transform_set_identity d3d_transform_set_translation
d3d_transform_set_scaling d3d_transform_set_rotation_x d3d_transform_set_rotation_y d3d_transform_set_rotation_z
d3d_transform_set_rotation_axis d3d_transform_add_translation d3d_transform_add_scaling d3d_transform_add_rotation_x
d3d_transform_add_rotation_y d3d_transform_add_rotation_z d3d_transform_add_rotation_axis 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_transform_vertex d3d_light_define_ambient d3d_light_define_direction
d3d_light_define_point d3d_light_enable d3d_primitive_begin d3d_primitive_begin_texture
d3d_primitive_end d3d_vertex d3d_vertex_color d3d_vertex_colour
d3d_vertex_texture d3d_vertex_texture_color d3d_vertex_texture_colour d3d_vertex_normal
d3d_vertex_normal_color d3d_vertex_normal_colour d3d_vertex_normal_texture d3d_vertex_normal_texture_color
d3d_vertex_normal_texture_colour d3d_draw_block d3d_draw_cylinder d3d_draw_cone
d3d_draw_ellipsoid d3d_draw_wall d3d_draw_floor d3d_model_create
d3d_model_destroy d3d_model_clear d3d_model_load d3d_model_save
d3d_model_draw d3d_model_primitive_begin d3d_model_primitive_end d3d_model_vertex
d3d_model_vertex_color d3d_model_vertex_colour d3d_model_vertex_texture d3d_model_vertex_texture_color
d3d_model_vertex_texture_colour d3d_model_vertex_normal d3d_model_vertex_normal_color d3d_model_vertex_normal_colour
d3d_model_vertex_normal_texture d3d_model_vertex_normal_texture_color d3d_model_vertex_normal_texture_colour d3d_model_block
d3d_model_cylinder d3d_model_cone d3d_model_ellipsoid d3d_model_wall
d3d_model_floor

Vous pouvez en savoir plus sur les tampons de vertex ici, plus sur les matrices ici plus sur les caméras ici et plus sur les fonctions GPU ici.


Avec l'avènement des fonctions de caméra dans GameMaker Studio 2, cela signifie qu'un certain nombre de view les variables ne sont plus nécessaires, en particulier ceux qui se réfèrent à la vue dans la pièce plutôt que la view_port (qui est toujours utilisé). Il existe également quelques fonctions permettant de contrôler la façon dont les éléments affichés sont disponibles dans les anciennes versions de GameMaker: Studio 1.4 qui ne sont plus appropriées. Ces variables et fonctions sont listées ci-dessous:

view_object angle de vue view_xview view_yview
view_hview view_wview view_hborder view_vborder
view_hspeed view_vspeed display_set_windows_vertex_buffer_method display_get_windows_vertex_buffer_method
display_set_windows_alternate_sync display_get_windows_alternate_sync room_set_view

Vous pouvez en savoir plus sur les caméras dans la section du manuel sur les caméras et l'écran.


GameMaker Studio 2 beaucoup de fonctionnalités intégrées des versions précédentes vers des extensions, ce qui signifie que les fonctions de support tierces suivantes sont considérées comme obsolètes:

ads_enable ads_disable ads_move ads_get_display_width
ads_get_display_height ads_interstitial_available ads_interstitial_display ads_setup
ads_engagement_available ads_engagement_launch ads_engagement_active ads_event
ads_event_preload ads_set_reward_callback playhaven_add_notification_badge playhaven_hide_notification_badge
playhaven_position_notification_badge playhaven_update_notification_badge pocketchange_display_reward pocketchange_display_shop
analytics_event analytics_event_ext iap_event_queue iap_files_purchased
iap_is_downloaded iap_product_files iap_product_status iap_store_status
immersion_play_effect immersion_stop

Vous pouvez obtenir les extensions officielles YoYo Games pour la publicité et l'analyse depuis leur page Marketplace.


GameMaker: Studio 1.4 et GameMaker Studio 2 disposent tous GameMaker Studio 2 d'une interface de Drag and Drop (DnD™) pour la création de vos jeux, mais la manière dont ils sont gérés dans GameMaker Studio 2 est assez différente des méthodes précédentes. Auparavant, toutes les actions DnD™ avaient leur propre fonction correspondante qui fonctionnait «en coulisses» pour obtenir les résultats souhaités, mais cela n'était pas très transparent et ajoutait des frais généraux supplémentaires aux appels de fonction, ce qui entraînait des performances médiocres. Dans GameMaker Studio 2 ceci a été modifié, et maintenant toutes les actions sont compilées en code pur (et peuvent être affichées comme telles si nécessaire), ce qui signifie que les fonctions d'action suivantes sont obsolètes:

action_path_old action_set_sprite action_draw_font action_draw_font_old
action_fill_color action_fill_colour action_line_color action_line_colour
action_highscore action_set_relative action_move action_set_motion
action_set_hspeed action_set_vspeed action_set_gravity action_set_friction
action_move_point action_move_to action_move_start action_move_random
action_snap action_wrap action_reverse_xdir action_reverse_ydir
action_move_contact action_bounce chemin d'action action_path_end
action_path_position action_path_speed action_linear_step action_potential_step
action_kill_object action_create_object action_create_object_motion action_create_object_random
action_change_object action_kill_position action_sprite_set action_sprite_transform
action_sprite_color action_sprite_colour action_sound action_end_sound
action_if_sound action_another_room action_current_room action_previous_room
action_next_room action_if_previous_room action_if_next_room action_set_alarm
action_sleep action_set_timeline action_timeline_set action_timeline_start
action_timeline_stop action_timeline_pause action_set_timeline_position action_set_timeline_speed
action_message action_show_info action_show_video action_end_game
action_restart_game action_save_game action_load_game action_replace_sprite
action_replace_sound action_replace_background action_if_empty action_if_collision
action_if action_if_number action_if_object action_if_question
action_if_dice action_if_mouse action_if_aligned action_execute_script
action_inited action_if_variable action_draw_variable action_set_score
action_if_score action_draw_score action_highscore_show action_highscore_clear
action_set_life action_if_life action_draw_life action_draw_life_images
action_set_health action_if_health action_draw_health action_set_caption
action_partsyst_create action_partsyst_destroy action_partsyst_clear action_parttype_create_old
action_parttype_create action_parttype_color action_parttype_colour action_parttype_life
action_parttype_speed action_parttype_gravity action_parttype_secondary action_partemit_create
action_partemit_destroy action_partemit_burst action_partemit_stream action_cd_play
action_cd_stop action_cd_pause action_cd_resume action_cd_present
action_cd_playing action_set_cursor action_webpage action_splash_web
action_draw_sprite action_draw_background action_draw_text action_draw_text_transformed
action_draw_rectangle action_draw_gradient_hor action_draw_gradient_vert action_draw_ellipse
action_draw_ellipse_gradient action_draw_line action_draw_arrow action_color
action_colour action_font action_fullscreen action_snapshot
action_effect

Vous pouvez en savoir plus sur le nouveau DnD™ à partir de la section du manuel Drag and Drop Overview.



Scripts de compatibilité


Lorsque vous importez un projet créé avec une version précédente de GameMaker Studio, toutes les fonctions obsolètes qui ont été utilisées continueront à fonctionner car elles auront été automatiquement transformées par l'EDI en scripts de compatibilité. Ce qui se passe, c'est que GameMaker Studio 2 va analyser votre projet pour toutes les fonctions et variables obsolètes que vous avez utilisées, puis créer une série de scripts en utilisant ces noms de fonctions. Ces scripts contiendront soit la nouvelle fonction équivalente, soit un court script de code exécutant la même action que la fonction obsolète.

Lorsque vous importez un projet GameMaker Studio 2 pour la première fois, un rapport de compatibilité semblable à celui-ci s'affiche: Rapport de compatibilité

Le corps principal du rapport montre quels objets et scripts ont été affectés et où, tandis qu'à la fin vous pouvez trouver une liste des scripts qui ont été créés pour votre projet. Vous pouvez cliquer sur le bouton du milieu de la souris ou appuyez sur sur l'un des scripts répertoriés dans le rapport pour l'ouvrir et voir ce qui a été fait. Notez que si vous voyez des scripts créés avec une double barre inférieure avant leur nom (par exemple: __global_object_depths ), alors ce sont des scripts qui ont été créés par l'EDI pour aider à la compatibilité et ne sont pas des scripts qui ont été convertis à partir de fonctions obsolètes, donc ils ne devraient pas être falsifiés car ils sont requis pour les autres scripts de compatibilité.

Lorsque vous avez terminé la révision du rapport de compatibilité, vous pouvez fermer l'espace de travail, mais si vous devez réviser quelque chose dans le rapport, vous pouvez le retrouver en accédant à la section Notes de l'arborescence des ressources.

Veuillez noter qu'il existe certaines fonctions qui ont été introduites dans le langage GameMaker pour assurer la compatibilité avec les projets plus anciens et qui apparaîtront dans ces scripts de compatibilité. Cependant, ces fonctions ne devraient jamais être utilisées dans vos propres projets. Vous pouvez trouver une liste de ces fonctions dans la section suivante du manuel: