Hallo ihr Lieben,
ich habe nen kleines Problem. Vielleicht fehlt mir nur der richtige Ansatz. Ich bastel gerade an einer Textengine, die nicht nur automatischen Zeilenumbruch, sondern auch eine bestimmte Maximalzahl an Zeilen haben soll(in meinem Fall 4). Ist diese erreicht soll der text der schon geschrieben wurde ersetzt werden durch den Rest der noch übrigbleibt, solange bis alles abgearbeiten wurde.
Den normalen Zeilenumbruch habe ich mit draw_text_ext gelöst, allerdings das mit der Zeilenzahl, hab ich gerade Schwierigkeiten.
Ich habe mich schon Seitenweise belesen wie man das machen könnte, aber nix davon gefällt mir so richtig, bzw. funktioniert nicht.
Nunja hier das Script soweit:
scr_typer:
Alles anzeigen
Ich hoffe englische Erklärungen stören nicht, ich mag english einfach
Aufrufen tu ich das dann über :
von wo auch immer:
usw.
scr_message:
Ich hoffe ich hab mich verständlich ausgedrückt, und jemand kann mir da weiterhelfen.
Greetz
ich habe nen kleines Problem. Vielleicht fehlt mir nur der richtige Ansatz. Ich bastel gerade an einer Textengine, die nicht nur automatischen Zeilenumbruch, sondern auch eine bestimmte Maximalzahl an Zeilen haben soll(in meinem Fall 4). Ist diese erreicht soll der text der schon geschrieben wurde ersetzt werden durch den Rest der noch übrigbleibt, solange bis alles abgearbeiten wurde.
Den normalen Zeilenumbruch habe ich mit draw_text_ext gelöst, allerdings das mit der Zeilenzahl, hab ich gerade Schwierigkeiten.
Ich habe mich schon Seitenweise belesen wie man das machen könnte, aber nix davon gefällt mir so richtig, bzw. funktioniert nicht.
Nunja hier das Script soweit:
scr_typer:
GML-Quellcode
- //argument0 = text to type
- //argument1 = draw textbar true/false
- //argument2 = initiate text true/false
- //argument3 = text color
- //argument4 = name - who is talking?
- //NOTE: no autoswitch to new after box is full
- coll = argument3
- draw_set_color(coll)
- draw_set_font(fnt_normal);
- draw_set_halign(fa_left);
- draw_set_valign(fa_top);
- global.conversation = true;//conversation started
- global.text = argument0;//text to type
- global.name = argument4;//name - who is talking?
- //initialize Text
- if argument2 = true// first time loading this text = initialize it
- {
- char = 0//set position of letter to first letter(character)
- text_complete = false//set text_complete to false ... not ready with typing
- }
- ////////////////////////////////////////////////////////////////////////
- //use the text - NO HEIGHT-WRAP!!!!
- if text_complete = false// if still typing
- {
- txt = string_copy(global.text,0,char+1);//copy the given text to txt
- char +=1//count up the letters
- if string_length(txt) = string_length(global.text)//if u have typed all
- {
- //draw sprite mouse click!!!!!!!!!!!!! - WORKS 100%
- draw_sprite(spr_mouse_click,1,492,room_height-84)//mouse_click symbol - animated needed!?!
- //important!!!!!!!!
- text_complete = true;//give out u are ready with typing
- char = 0;// reset to start-position - not needed??? - only for height wrap????
- }
- }
- //use the text end
- ////////////////////////////////////////////////////////////////////////
- //speed it up
- if mouse_check_button_pressed(mb_left) = true //if mouse pressed left
- {
- text_complete = true //you are done
- char = string_length(global.text) //end the text
- txt = global.text //set the string to the text
- io_clear(); //stop generating events(clear mouse+keyboard)
- //draw sprite mouse click!!!!!!!!!!!!! - WORKS 100%
- draw_sprite(spr_mouse_click,1,492,room_height-84)//mouse_click symbol - animated needed!?!
- //important!!!!!
- }
- //speed it up end
- ////////////////////////////////////////////////////////////////////////
- //draw this
- //if argument1 = true//if draw textbar = true --- senseless!!!
- {
- draw_sprite(spr_textbar,0,0,room_height-100);//draw textbar
- draw_sprite(spr_name_box,0,0,room_height-134);//draw name box
- draw_text(7,room_height-130,global.name)//draw name - who is talking
- draw_text_ext(7,room_height-95,txt,-1,475);//and the text - autowrap included - height wrap needed
- }
- //draw this end
- screen_refresh();//refresh - needed!!!!
- ////////////////////////////////////////////////////////////////////////
- //Last Part
- if text_complete = false
- {
- if global.music = "ON"
- {
- sound_play(sound0);//typing sound
- }
- sleep(30);//wait for 30 ms -> type-speed!!!!!
- scr_typer(global.text,true,false,coll,global.name);//redo all without need to re-initialize because u have done already
- }
- else// u are ready with typing
- {
- global.conversation = false;//give out u are ready with conversation
- sound_stop(sound0);//be quiet!!!!
- mouse_wait();//wait until any mouse button is pressed
- screen_refresh();//refresh
- screen_redraw();//redraw - delete spr_mouse-clicker!!! - important!!!
- io_clear();//clear all keyboard and mouse states
- }
Ich hoffe englische Erklärungen stören nicht, ich mag english einfach

Aufrufen tu ich das dann über :
von wo auch immer:
usw.
scr_message:
Ich hoffe ich hab mich verständlich ausgedrückt, und jemand kann mir da weiterhelfen.
Greetz
Es gibt viel zu tun, packen wir´s an !!!
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.
Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.