Español
Foro

Sprites con Tastatur bewegen

 
Yo möchte una Sprite con el Tasten bewegen.
Mein erster Intento es nichts más como una gekürztes una Ejemplo con el Biene.
Yo bin me aber bastante sicher,
dass el Tastaturabfrage y Movesprite así no kombiniert voluntad.
(Scrollen des Hintergrundes es en el Beispielen sí prima erklärt.)
Yo habe veces a la Intento sin Prospeed geschrieben (V 7.0) y como Yo simplemente
sólo x% aumenta o. verkleinert y luego MCop-iert. (siehe unten y hinter -----?????).
Geht que aquí etwa auch ?
Tal vez ha uno auch ya una kleines Programa geschreiben wo Yo blos
abgucken brauche ?
Jedenfalls en el Voraus vielen Dank y otra vez:
Feliz y una gesunde Neues Jahr !
Jürgen.
KompilierenMarcaSeparación
------------
Declare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&, x%, y%, ende%
Dim Bereich#,512
X% = 100
y% = 200
 $I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
def getKey(1) !"user32","GetKeyState"
WindowStyle 26
cls
SetTrueColor 1
Hwnd& = %HWnd
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,18,4,1,6,x%,y%,1,1)
SetSpriteSpeed (sprite1&,10,0)------????
---------------------------

Whilenot ende%

    waitinput------????
    sleep 10

    IF @equ(%key,2) OR @equ(%key,27)

        ende%=1

    Endif

    If @LT(getkey(49),-126)

        sub x%,2
        MoveSprite(sprite1&,x%,y%)------------????
        Hier stünde:
        Startpaint -1
        MCopyBmp "Sprite nach Fensterkopie", x%, y%
        u. s. w......
        EndPaint

    EndIf

    If @LT(getkey(51),-126)

        add x%,2
        MoveSprite(sprite1&,x%,y%)------------????

    EndIf

    Mcopy "Fensterkopie auf den Bildschirm

wend

Wo würde ich den Sprung in die PROC hinschreiben die y% für einen Sprung errechnet?
=========================
DeleteAllSprites()
FreeExtBmp(background&)
FreeExtBmp(spriteplane&)
FreeExtBmp(fensterkopie1&)
FreeExtBmp(fensterkopie2&)
freedll neu&
../../function-references/XProfan/disponer/'>Disponer bereich#
 
24.04.2004  
 



Hi,

Hast dus ya con ProSpeeds GetSystemKey() probiert ?
MoveSprite() y GetSystemKey() müßten sin Problemas kombinierbar ser...

Sí, ebenfalls a todos una grandiosen Resbalón después de 2004 !!!

Saludo, Franco
 
24.04.2004  
 



Hi Franco,
GetSytemKey es no el problema. (Im Übringen incluso algo langsamer como getkey(.)).
Um una Jump & Run a escribir brauche Yo deine DLL, como ellos el Función SetBackAutoCollision enthält y antes allem una tabla erstellt, el mi Figur (en weißen Felder el Fensterkopie) führt.
Aber genau con dieser Función Yo mi Problemas:
Wenn Yo el Figur por MoveSprite mittels Tasten bewege y SetBackAutoCollision en Kollision gestellt es, hüpft el Figur. Seitlich kann Yo el Figur entonces nada mehr bewegen.
Also el Steuerung por Taste y SetBackAutoCollision son el eigentliche Problema. Tal vez kannst Usted me helfen, como Yo glaube todos Varianten ausprobiert a haben.
(Im Spieleforum gehts anscheinend en el gleiche Problema)
Ansonsten una gesundes neues Jahr 2004.
Saludo Jürgen!
 
24.04.2004  
 



Hi,

en diesem Fall kommst du con MoveSprite() no siempre más.
Hierzu müßtest du SetSpritePos() benutzen.
Hatte selber gestern el gleiche Problema y SetSpritePos elegant gelöst.

Saludo, Franco
 
24.04.2004  
 



Hi Franco
Posesiones Yo en efecto ya probiert, aber SetBackAutoCollision funktioniert entonces no.
Wenn Yo no a muy nerve, tal vez ha irgenwer schonmal una kleines Ejemplo programmiert ? Oder hast Usted tal vez una Auszug de Deinem Programa ?
Yo entschuldige para el Mühe, el Yo bisher gemacht habe y bedanke mich para Su Verständnis.
Tschüß Jürgen.
 
24.04.2004  
 



¡Hola Jürgen,

du machst no Mühe !
Dafür es dieses Foro doch pensamiento, en Fragen a beantworten !

Yo deinen Source algo verändert.
Das Sprite kann ahora con el Cursortasten innerhalb bestimmter Grenzen (deiner Wahl) gesteuert voluntad. Sogar diagonal !
Das todo debería sin Problemas con SetBackAutoCollision() kombinierbar ser...
Für el Tastenabfrage erscheint me el API GetKeyState() al idealsten.
WaitInput kannst du no benutzen, lo sei porque, du setzt una pequeña Temporizador. Aber es sí auch nada nötig...

Hier el Code:
KompilierenMarcaSeparación
Declare HWnd&, Bereich#, Neu&, Background&
Declare fensterkopie1&, fensterkopie2&, spriteplane&
Declare sprite1&,x&,y&,key&
Declare speedx&,speedy&,randl&,randr&,rando&,randu&
Dim Bereich#,512
SetTrueColor 1
 $I Prospeed_Funktionen.inc
neu&=usedll("ProSpeed.dll")
DEF GetKeyState(1) !"USER32","GetKeyState"
DEF IsKey(1) and(GetKeyState(&(1)),$8000)
WindowStyle 26
Window 0,0-800,400
Hwnd& = %HWnd
Aktuelle Position
x&=100
y&=100
Geschwindigkeit des Sprites
speedx&=2
speedy&=2
Randgrenzen absolut (links, oben, rechts und unten)
randl&=0
rando&=0
randr&=200
randu&=200
string bereich#,0="bmps/Hintergrund.jpg"
background&=LoadExtImage(bereich#)
CopyExtBmp(%HDC, 0,0,800,400,background&,0,0,0)
CopyExtBmp(%HDC2,0,0,800,400,background&,0,0,0)
fensterkopie1&=CreateExtBmp(%HDC,800,400)
fensterkopie2&=CreateExtBmp(%HDC,800,400)
CopyExtBmp(fensterkopie1&,0,0,800,400,%HDC,0,0,0)
CopyExtBmp(fensterkopie2&,0,0,800,400,%HDC,0,0,0)
string bereich#,0="bmps/sprites.gif"
spriteplane&=LoadExtImage(bereich#)
sprite1&=InitSprite(spriteplane&,%HDC,fensterkopie1&,fensterkopie2&,0,0,24,
18,4,1,6,100,100,speedx&,speedy&)

While 1

    Sleep 1
    key&=GetSystemKey()
    Case (key&=2 OR key&=27):BREAK
    Steuern per Cursortasten
    Case IsKey($25):x&=x&-speedx&  links
    Case IsKey($27):x&=x&+speedx&  rechts
    Case IsKey($26):y&=y&-speedy&  oben
    Case IsKey($28):y&=y&+speedy&  unten
    Stößt Sprite an Randgrenze ?
    Case x&<=randl&:x&=randl&
    Case x&>=randr&:x&=randr&
    Case y&<=rando&:y&=rando&
    Case y&>=randu&:y&=randu&
    MoveSprite(sprite1&,x&,y&)

Wend

DeleteAllSprites()
FreeAllExtBmps()
freedll neu&
Disponer bereich#

Saludo, Franco
 
24.04.2004  
 



Hi Franco,
hatte bisher no Tiempo. Also vielen Dank !!
 
24.04.2004  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

2.619 Views

Untitledvor 0 min.
macuto20.11.2012
Peter Max Müller29.09.2012
Gabor Krizsma08.08.2011

Themeninformationen

Dieses Thema ha 1 subscriber:

unbekannt (7x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie