GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

PURE BASIC - Le Topic officiel

+8
grostonton
Urbinou
ShiningBZH
Tryphon
goux.m
jmg49
Capitaine
Shaoth
12 participants

Page 3 sur 12 Précédent  1, 2, 3, 4 ... 10, 11, 12  Suivant

Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Lun 30 Sep 2019 - 21:46

Tu vas passer Dr toi  Mr. Green


Bah j'ai 2 premieres question :

1. Rendu visuel

j'ai commencé 2 tests découverte en 320x240 et 640x400, mais le rendu visuel est un peu lissé/flou...  comme avec BLITZ 3D d'ailleurs...

Avec d'autres langages j'ai un rendu pixel perfect qui est très beau, quelque soit la définition que j'utilise (des definitions virtuelles)

Tu as un conseil sur cet aspect ?

2eme question

J'ai créé un EXE test... Chez certains l'.EXE ne se lance pas.... serait ce aussi a cause de ces définitions batardes ?

Merci Dr Dobro

drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Nombre de messages : 181670
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Tryphon Lun 30 Sep 2019 - 21:52

Le doc, utiliser des structures ? PURE BASIC - Le Topic officiel - Page 3 435303
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 21:57

pour ce qui concerne la resolution (en mode Graphique )
en fait tout depend du sous system graphique que tu configures..
ça se configure dans l'ide , vu que j'utilise mon propre IDE (codé en Purebasic)
je ne sais plus ou ça se trouve dans les parametres de l'editeur officiel

de memoire, tu dois avoir un champ ou il te faut preciser "OpenGL" ou "Directx11"
ça devrai deja jouer ... pour ma part, je conseille au depart de coder en mode Fenetré Graphique ....(pour les jeux)

bon pour faire court en Purebasic on peut coder
 --- en fenetre (type utilitaire Windows )
--- en Graphique mode fenetré c'est a dire que l'ecran est inclu dans une fenetre
cela permet d'avoir acces au evenement windows, et de rester compatible avec tout les systeme windows ...
--- en Graphique mode Screen (directx) la l'ecran prends toute la place et s'impose
pas de possibilité simple de sortir de ce mode, pour retourner sur le bureau

alors quen mode fenetré on peut !! (le mode fenetré graphique permet aussi d'etre en plein ecran bien sur , on peut virer les bordures de la fenetre ... :)

pour ton code, j'ai testé vite fait, tu as une erreur sur la creation des sprites ligne 83 "le Sprite spécifié n'est pas initialisé"
(typique de l'utilisation d'un numero de sprite, qui n'existe pas Wink  )
c'est bizarre que ça ne t'affiche pas l'erreur , peut etre que tu compile sans avoir activé le debugger ...
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par grostonton Lun 30 Sep 2019 - 22:13

Salut à tous, j'interviens pour ne rien dire d'intéressant comme toujours, mais pour ma part je possède la license purebasic depuis des lustres et pourtant on peut pas dire que j'ai fait grand chose avec. Juste par soutien à quelque chose qui me semblait valoir la peine. 80euros c'est pas rien c'est sûr, mais bon.
grostonton
grostonton
Patient contaminé

Masculin Nombre de messages : 937
Age : 42
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://grostonton.itch.io/

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 22:28

c'est 80 euro, mais avec support a VIE !!
c'est pas rien non plus ....

pas beaucoup de devloppeurs proposent cette option d'avoir un language suivi
que tu ne paye plus !! mais que tu obtiens quand meme toutes les mise a jours ..... a VIE Wink
perso j'en profite depuis 2003




@DrFloyd :

je crois que il y a une details qu'il faut que tu sache a propos des sprite Purebasic

contrairement a d'autres langage les sprites Purebasic ne sont pas des objets !!

dans un language lambda, lorsque tu pose le sprite 1 a la coordonées 10,10

si tu utilise le sprite 1 plus tard, et que tu le pose a la coordonée 20,20 , le sprite "1"
va alors changer de place ....


en Purebasic c'est pas comme ça que ça marche

un sprite est une petite image
le sprite "1"  pourra etre en coordonée 10,10  mais aussi en coordonées 20,20
ou meme encore n'importe ou ailleurs ...

l"index d'un sprite en Purebasic ne defini pas le sprite comme un objet
mais seulement comme un index d'image ....

voici un code (j'espere que la limitation lié au APi ne t'empechera pas de le lancer

qui montre qu'un meme numero de sprites peut etre a pleins d'endroit en meme temps

Code:

Structure sprite
    x.l
    y.l
    vitesse.l
    taille_x.l
    taille_y.l
EndStructure

Enumeration
    #sprite_fond
    #sprite
EndEnumeration

nbr_sprite=1000
Dim sprite.sprite(nbr_sprite)

; Test
ExamineDesktops()
EcranX =DesktopWidth(0)  ;GetSystemMetrics_(#SM_CXSCREEN)
EcranY = Desktopheight(0);GetSystemMetrics_(#SM_CYSCREEN)
InitSprite(): InitKeyboard()

;hwnd=OpenWindow(1,0,0,EcranX,EcranY,"test", #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget  )
OpenScreen (EcranX,EcranY,32,"Test")

; *********** ce sprite sert a effacer le fond ! ****************************
CreateSprite(#sprite_fond,EcranX,EcranY)
StartDrawing(SpriteOutput(#sprite_fond))
    Box(0,0,EcranX,EcranY,RGB(0,0,0))
StopDrawing()
; ***************************************************************************

; *********** dessine le  sprite *****************
sprite(t)\taille_x=8
sprite(t)\taille_y=8

CreateSprite(#sprite, sprite(t)\taille_x, sprite(t)\taille_x) ; c'est la meme image qui est employé
    ; dessine le sprite
StartDrawing(SpriteOutput(#sprite))
    Box( 0,0, sprite(t)\taille_x, sprite(t)\taille_y,RGB(255,166,56))
StopDrawing()

; *********** prepare les parametres de chaque sprite *****************
For t=0 To nbr_sprite
    sprite(t)\x = Random(EcranX)+1
    sprite(t)\y= Random(EcranY)+1
    sprite(t)\vitesse=Random(4)+1
Next t
; ***************************************************************

Repeat
    go= ElapsedMilliseconds()
    DisplaySprite(#sprite_fond,0,0)
    For t= 0 To nbr_sprite  
        DisplaySprite(#sprite,sprite(t)\x,sprite(t)\y)   ; toujour la meme image qui est affiché
        sprite(t)\x=sprite(t)\x+sprite(t)\vitesse  
        If   sprite(t)\x>EcranX+(sprite(t)\vitesse *2)
            sprite(t)\x=0-sprite(t)\vitesse
        EndIf
    Next t
    
    FlipBuffers()
    
    temps=ElapsedMilliseconds()-go
    
    ExamineKeyboard()
    If  KeyboardPushed(#PB_Key_Escape)
        End
    EndIf
    ; ClearScreen(0) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  voila retiré !
    Delay(2)
ForEver


Dernière édition par Dobro le Lun 30 Sep 2019 - 22:29, édité 1 fois
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Shaoth Lun 30 Sep 2019 - 22:29

Salut @Dobro !
Bienvenue dans la clinique.
Tu fais quoi avec le Basic Pure, tu codes des jeux ?
Tu peux partager ?
Shaoth
Shaoth
Guéri miraculeux

Masculin Nombre de messages : 2194
Age : 54
Localisation : 92
Date d'inscription : 05/04/2018

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 22:42

en fait, ... je ne code plus !
j'ai fait un burn out ...
j'ai pendant pleins , pleins d'années participé au forum Purebasic
j'en ai meme été l'un des principaux modérateur
j'avais la chance d'avoir du temps , je passais plus de 8 heures par jours sur le forum ..

puis... l'ambiance parfois se degrade , prise de bec , j'ai rendu mon tablier ..
j'ai aussi eu des soucis perso qui sont venu s'ajouter a tout ça ..

bref, j'ai un peut craqué.. je ne code plus.. mais je regarde de temps en temps l'evolution du forum ..

sinon a titre perso, j'ai fait un editeur de Code pour Purebasic (EPB) mais je ne peux plus assurer le suivi regulier... comme je l'ai dis, je ne code plus..
juste je m'amuse ...
http://michel.dobro.free.fr/STLINE/Files/Image/Images/images_download/EPB.gif

j'ai fait pleins de trucs, ça va d'un synthetiseur vocal a la façon "Maupiti ilsland"
(je l'avais fait en Dark Basic au depart )
en passant par un prog de creation d'Anaglyphes
des utilitaires variés (effaceur d'espace libre disque dur)
reparateur de fichier pour le demodulateur Aston
un interpreteur LOGO (PureGolo) , (evalué par le site de PapyLOGO ... )
un Casse Brique, meme plusieurs en fait ...
pfff. pleins de trucs en réalité , que je ne peut meme pas tout lister
un prg pour changer les couleurs de l'editeur AGK2...
un prg pour creer des peintures..
.... (ça ne me reviens pas tout LOL )

j'ai eu un probleme avec mon site, ce qui fait que je ne peut meme pas donner un lien vers une pages graphique qui affichais  quelques screen de mes prg ...
bref, je me considere comme un bidouilleur :)

l'une de mes premiere apparition etait dans ST MAG 80 page 66/67 a propos d'un prg "Sphinx 4.0"
fait en GFa Basic 3.5 :)
PURE BASIC - Le Topic officiel - Page 3 Numero10




je n'ai pas que la programmation comme hobby, je suis guitariste aussi (depuis 1977)
specialité : finger Picking


Dernière édition par Dobro le Lun 30 Sep 2019 - 23:12, édité 1 fois
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Lun 30 Sep 2019 - 23:10

oui j'ai bien saisi que les sprites sont avant tout des images.E toui, j' n'est pas activé le mode debug  Mr. Green


j'en reviens au mode graphique en mode fenetre full screen (c'est effectivement ce que je veux faire car le vrai fullscreen Direct X c'est la merde, c'est chiant pour revenir sur le bureau), tu peux me donner le code correspondant ?

Perso j'ai tenté ça :

Code:
; MODE FENETRE[size=12][/size]
OpenWindow(0,0,0,320,240,"COSMOS",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)[size=12][/size]
OpenWindowedScreen(WindowID(0), 0, 0, 320, 240)

C'est ca un mode graphique fenetré ? Et ensuite je voudrai le passer en fullscreen sans aucun bord.

Tu seras alors mon Dieu  Mr. Green Le Dieu Dobro Ier

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 23:27

oui le mode windowedScreen est bien le mode ecran fenetré :)

pour virer les bordures d'une fenetre il faut utiliser la constante suivante

"
Code:
#PB_Window_BorderLess"
 c'est cette constante qui vire les bordures de la fenetre :)
bien sur il te faudr virer "
Code:
#PB_Window_SystemMenu"

Code:
OpenWindow(#Window_0, 366, EcranY, #SizeWindowX , #SizeWindowY,"New window ( 0 )",#PB_Window_BorderLess


et si tu vire
Code:
#PB_Window_SystemMen
Code:
tu vas perdre la petite croix blanche sur fond rouge , donc a toi de gerer une sortie possible



Code:
en utilisant par exemple la touche ESC


la on va arriver a la boucle des event qui sera de la forme

; ********** debut de boucle
Repeat
    ExamineMouse()  ; on demande a purebasic de surveiller les event de souris !
    ExamineKeyboard() ; on demande a purebasic de surveiller les event de clavier!
    evnt= waitWindowEvent(2)

    Select    evnt
        Case #PB_Event_CloseWindow
        End
    EndSelect
   
Until KeyboardPushed(#PB_Key_Escape)
; **************** fin de boucle ************************

voila une boucle qui va gerer l'appuis sur la touche esc pour quitter le programme :)
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Lun 30 Sep 2019 - 23:37

Je tente demain, je suis excité  Mr. Green

Car le fullscreen ca me gonfle!!!!

Ca va p'etre en meme temps résoudre mon probleme de flou visuel

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 23:40

pas de probleme, par contre je serai moins dispo a partir de demain

mais je jetterai un oeil ... :)

a++++
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Lun 30 Sep 2019 - 23:43

tu as droit à quelques jours de repos bien mérités... Mr. Green

(ST Magazine, j'ai adoré)

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Lun 30 Sep 2019 - 23:54

tiens comme je suis trop cool , je te donne la solution

mais test avant par toi meme :)

on quitte le code ci dessous avec la touche ESC :)  ça te fais une bonne base pour coder des jeux :)

Code:

#window = 0
Width = 900  ; <<<<<<<<< ici la resolution de la fenetre mais je vais redefinir ligne 9 donc ceci est la juste au cas ou on veux une rez precise
Height = 700

; mais si tu veux du plein ecran alors on interoge la resolution en cours
ExamineDesktops()

Width=DesktopWidth(0)
height=DesktopHeight(0)  ; <<<<<<<< voila on connais la resoltuion


Enumeration
 #Panel
 #Cont
 #Button
EndEnumeration

;- Initialisation de DirectX
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
 MessageRequester("Erreur", "Impossible d'initialiser DirectX", 0)
 CloseWindow(#window) : End
EndIf


;- Ouverture de la fenètre et de l'écran
hwnd = OpenWindow(#window, 0, 0,  Width, Height, "",#PB_Window_BorderLess|#PB_Window_ScreenCentered)  ;#PB_Window_TitleBar | #PB_Window_ScreenCentered|#PB_Window_SystemMenu  )
;***********If CreateGadgetList(hwnd)
; ScrollAreaGadget(#Panel,10, 10,800,600, 1024, 768, 30)
; hCont = ContainerGadget(#Cont,10,10,1024,768,#PB_Container_Double)
OpenWindowedScreen(hwnd, 0, 0, Width, height, 0, 0, 0)
;***********EndIf

If CreateSprite(1000,24,24)
 StartDrawing(SpriteOutput(1000))
 Box(0,0,24,24,RGB($0,$0,$FF))
 StopDrawing()
EndIf

Dep = 8

;- début de la boucle

Repeat
 ExamineMouse()  ; on demande a purebasic de surveiller les event de souris !
 ExamineKeyboard() ; on demande a purebasic de surveiller les event de clavier!
 evnt= WindowEvent()
 Delay(2)
 Select    evnt
 
 Case #PB_Event_CloseWindow
 End
 EndSelect
 StartDrawing(ScreenOutput())
 DrawText(10, 10, "touche ESC pour quitter" ,RGB(255,255,0),RGB(0,0,0))
 StopDrawing()
 
 
 FlipBuffers() : ClearScreen(RGB(0,0,0))
 DisplaySprite(1000, x, 100)
 
 
 ;************** deplacement d'un sprte **************
 x + Dep
 If x >=Width Or x <=0 : Dep = -Dep : EndIf ; mouvement horizontle de notre sprite
 ;  *************************************************
 
Until KeyboardPushed(#PB_Key_Escape)





;
; Epb








avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou Mar 1 Oct 2019 - 0:03

drfloyd a écrit:
Ca va p'etre en meme temps résoudre mon probleme de flou visuel

A mon avis, ton flou est inévitable si tu upscales une réso rétro en fullscreen dans ta résolution écran native.
Urbinou
Urbinou
Docteur agrégé **
Docteur agrégé **

Masculin Nombre de messages : 12632
Age : 55
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 7:14

bah avec Pure oui j'ai l'impression, comme avec BLITZ

Mais ca dépend des langages, en RC Basic ou NAALAA quoi que tu fasses en terme de reso, du 320x300 ou du 658x349, l'image est toujours nickelle et parfaite à l'affichage. C'est hyper surprenant, je ne sais pas comment ils font.

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou Mar 1 Oct 2019 - 9:15

drfloyd a écrit:bah avec Pure oui j'ai l'impression, comme avec BLITZ

Mais ca dépend des langages, en RC Basic ou NAALAA quoi que tu fasses en terme de reso, du 320x300 ou du 658x349, l'image est toujours nickelle et parfaite à l'affichage. C'est hyper surprenant, je ne sais pas comment ils font.

Oui c'est surprenant, parce qu'à la base c'est un souci physique. Tu dois extrapoler 480 points en 1080, soit 2.25 pixels physiques pour un pixel logique, et la même chose en horizontal. Les pixels intermédiaires sont calculés en faisant une moyenne des pixels adjacents, d'où le flou.
Urbinou
Urbinou
Docteur agrégé **
Docteur agrégé **

Masculin Nombre de messages : 12632
Age : 55
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 9:39

Oui je pige pas. Je vais recontacter l'auteur de RCBasic pour savoir comment il fait

Par exemple sur mon jeu SUPER STAR TREK 71 en RC BASIC l'image est nickelle de chez nickelle avoir que j'utilise des definitions graphiques hyper exotiques (genre 420 x 272 je crois)

PURE BASIC - Le Topic officiel - Page 3 Captu222

Bon bien sur ici c'est une capture ca se voit pas

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 10:00

dans le Purebasic la fonction

Code:
OpenWindowedScreen(hwnd, 0, 0, Width, height, zoom, 0, 0)
a un parametre  "zoom" auto ..
si il est a 1 lorsqu'on redimensionne la fenetre, les sprites sont zoomer
en principe pas de defaut si tu agrandis la fenetre  ...
par contre si tu reduits , là l'effet "flou" risque d'apparaitre ... 

lorsque je parle d'agrandir , je veux dire que si ton jeux se passe en 320x200
et que tu fait afficher tes sprites en 640x400 , le ratio est le meme , donc tu n'aura pas de defaut....

par contre si tu change le ratio , ça va "ecraser" ("rectangluariser") tes pixels carrés
donc tu aura probablement un effet bizarre par rapport au pixel du monitor....
d'ou le flou possible ....

rassure moi, tu a jetté ton monitor cathodique ?  Mr. Green MDR
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 10:00

Dobro a écrit:tiens comme je suis trop cool , je te donne la solution

mais test avant par toi meme :) 


J'ai fait ça (pour une def 640,400) :

Code:
ExamineDesktops()
OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "",#PB_Window_BorderLess|#PB_Window_ScreenCentered)  ;#PB_Window_TitleBar | #PB_Window_ScreenCentered|#PB_Window_SystemMenu 
OpenWindowedScreen(WindowID(0), 0, 0, 640, 400, 1, 0, 0)


Et ca marche nickel !
Effet de flou inévitable par contre

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 10:38

Dobro a écrit:dans le Purebasic la fonction

Code:
OpenWindowedScreen(hwnd, 0, 0, Width, height, zoom, 0, 0)
a un parametre  "zoom" auto ..
si il est a 1 lorsqu'on redimensionne la fenetre, les sprites sont zoomer
en principe pas de defaut si tu agrandis la fenetre  ...
par contre si tu reduits , là l'effet "flou" risque d'apparaitre ... 

lorsque je parle d'agrandir , je veux dire que si ton jeux se passe en 320x200
et que tu fait afficher tes sprites en 640x400 , le ratio est le meme , donc tu n'aura pas de defaut....

par contre si tu change le ratio , ça va "ecraser" ("rectangluariser") tes pixels carrés
donc tu aura probablement un effet bizarre par rapport au pixel du monitor....
d'ou le flou possible ....

rassure moi, tu a jetté ton monitor cathodique ?  Mr. Green MDR


oui j'utilise le zoom auto, mais il ne fait pas genre un x2, il zoome sur la totalité de l'ecran, et donc le flou réapparait

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 10:41

oui tres bien

par contre .. evite au maximum la surcharge des fonctions .... bien sur que tu peux faire

Code:
OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "",#PB_Window_BorderLess|#PB_Window_ScreenCentered) 

mais c'est mieux de faire :


Code:
examineDesktops()
largeur_ecran=DesktopWidth(0)
hauteur_ecran=DesktopHeight(0)OpenWindow(0, 0, 0, largeur_ecran, Hauteur_ecran, "",#PB_Window_BorderLess|#PB_Window_ScreenCentered) 
pour une raison simple , le fait d'avoir la resolution dans des variables, on pourra les réutiliser a loisir dans le code ....

et c'est vachement plus lisible ... :)

ce que m'a appris le Purebasic et a lire les codes des "pro" c'est justement
de bien détailler, et d'eviter autant que faire ce peux les Surcharges de fonctions
car plus tard, on ne sais plus ou on en est ... :)

autre exemple
avant je codais aussi beaucoup avec les DIM
maintenant je ne les utilisent quasi plus ...
j'utilise bien plus souvent les Lists ou les lists Structurés....
c'est franchement bien plus conviviale ...
mais je ne desepere pas te convertir MDR
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 10:42

tu peux me donner un exemple de code simple
que je test vite fait ton histoire de zoom
parceque franchement, j'vais jamais remarqué ça

ou capture d'ecran qui montre le probleme ?


ps tu as quoi comme carte graph ??, tes drivers sont a jour ?

je pense que peut etre cela peut venir d'un probleme lié a un redimensionnement a la puissance 2 .... a voir
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Shaoth Mar 1 Oct 2019 - 10:55

@drfloyd la capture de ton Star Trek donne envie !
On sent malgré tout un lien de parenté un peu trop fort avec Cosmos.
Va falloir y remédier Wink
Shaoth
Shaoth
Guéri miraculeux

Masculin Nombre de messages : 2194
Age : 54
Localisation : 92
Date d'inscription : 05/04/2018

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 11:17

sinon pour ton probleme de "flou" il y a moyen de moyenner ...

c'est de forcer la resolution du monitor a ton prg ...
(en n'oubliant pas de revenir a la resolution de depart avant de quitter le prg)
parceque surfer sur internet en 640x400 ça va pas le faire LOL MDR

le seul Hic, c'est qu'il faut disposer de la version complete de Purebasic
car l'astuce en question utilise les API windows ....

là c'est sur, plus de probleme de flou, puisque tu passes ton monitor a la resolution 640x400 ... apres faut faire attention que la carte Graph suporte la resolution en question ... et puis de bien remettre la résolution de depart avant de quitter le programme


ps: pas exclu que RC_basic fasse ceci en arriere plan au moment ou tu lance le code ...
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou Mar 1 Oct 2019 - 11:23

Dobro a écrit:sinon pour ton probleme de "flou" il y a moyen de moyenner ...

c'est de forcer la resolution du monitor a ton prg ...
ça ne changera rien, puisque ton écran possède physiquement 1080 pixels x 1920 dans le cas d'un full hd.
Urbinou
Urbinou
Docteur agrégé **
Docteur agrégé **

Masculin Nombre de messages : 12632
Age : 55
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 11:31

ben si, ça peut franchement améliorer
car changer la resolution de l'ecran c'est forcement utiliser une resolution
qui a été cablé par le createur de la carte Graph

donc, il ne s'agit plus d'un effet Zoom artificiel
mais bien du Driver carte Graph qui va gerer l'affichage ....
celui tiendra mieux compte du nombre de pixel du monitor et aussi de la frequence Vbl ...
c'est une resolution Cablé ...

le seul defaut, c'est qu'on est obligé de respecter les resolutions possibles du systeme en cours....

pas question d'utiliser une resolution exotique ... Very Happy


tu as une version Full de Purebasic ?
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Urbinou Mar 1 Oct 2019 - 11:37

Dobro a écrit:
celui tiendra mieux compte du nombre de pixel du monitor et aussi de la frequence Vbl ...
c'est une resolution Cablé ...

Tu réfléchis cathodique Mr. Green
Tourne le comme tu veux, tu auras toujours des pixels physiques intermédaiires à interpoler.
Avec la CG l'interpolation sera peut-être une chouille plus précise, c'est tout.
Urbinou
Urbinou
Docteur agrégé **
Docteur agrégé **

Masculin Nombre de messages : 12632
Age : 55
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 12:17

Dobro a écrit:ben si, ça peut franchement améliorer
car changer la resolution de l'ecran c'est forcement utiliser une resolution
qui a été cablé par le createur de la carte Graph

donc, il ne s'agit plus d'un effet Zoom artificiel
mais bien du Driver carte Graph qui va gerer l'affichage ....
celui tiendra mieux compte du nombre de pixel du monitor et aussi de la frequence Vbl ...
c'est une resolution Cablé ...

le seul defaut, c'est qu'on est obligé de respecter les resolutions possibles du systeme en cours....

pas question d'utiliser une resolution exotique ... Very Happy


tu as une version Full de Purebasic ?


je suis encore sur la version démo...

C'est drole le vrai fullscreen direct x a des effets differents selon les PC.... Sur 1 PC le 640x480 est top nickel (avec des bandes noires verticales de chaque coté, sur un autre avec le meme code ca donne du fullscreen degulasse). Et le mode windows plein ecran, le flou est plus ou moin prononcé selon le PC


Mai sje veux rester en mode fenetré plein ecran de toute façon. Et en fait en mode fenetré, je ne vroudrais pas zoomer l'image sur la totalité de l'ecran, là je comprend le flou que ca genere pour s'adapter à l'ecran, mais zoomer au ratio de 640x480 quitte à avoir des bandes noire verticales sur le coté.... l'option Zoom n'est pas parametrable, c'est 0 ou 1, 

je sais pas si c'est possible de faire un zoom non automatique au bon ratio ?

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par drfloyd Mar 1 Oct 2019 - 13:18

je suis vraiment dans la galère avec PURE, en plus quand je crée un EXE tout part en vrille depuis mon mode fenetré fullscreen : l'ecran est trop zoomé (j'n vois 2/3) et la souris deconne totalement... 

Je dois etre un boulet ?

_______________________________________________________
PURE BASIC - Le Topic officiel - Page 3 Giphy10





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 181670
Age : 54
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 13:36

autre exemple de codage type jeux

avec gestion des touches flechées
sortie avec ESC :


une raquette et une "balle" plus qu'a tester ....

ps: pour ce que tu as ecris précedement, faire gaffe la gestion de la souris Windows
ne corresponde pas avec les coordonées DX ...
c'est pas la faute de Purebasic, c'est windows qui est ainsi fait ....
je te posterai un code qui montre comment faire

la encore , plusieurs solutions ,
utiliser les fonction native de purebasic, mais niveau souris... c'est plutot pour du mode Gadget windows ...

ou bien les APi qui interoge directement le systeme windows ... , là encore, les APIs sont quasi obligatoire
(donc la version complete de purebasic ...sorry )


 tout depends si tu as besoin d'un pointage exacte avec la souris, ou juste savoir qu'elle se deplace et vers ou

le code ci dessous utilise seulement les touches flechées Wink

tu verra que j'aime bien les Goto :)
ps ce code ne dois pas etre de moi.... ha ben si ... LOL


Code:


Declare Sprites()

#Window = 0


ExamineDesktops()
Width=DesktopWidth(0)
height=DesktopHeight(0)
Enumeration
 #brique
 #balle
EndEnumeration
Global xbrique,ybrique,xpas,ypas,xb,yb,flag
dep = 10


;- Initialisation de DirectX
If InitSprite() = 0 Or InitKeyboard() = 0
 End
EndIf
;- Ouverture de la fenêtre et de l'écran
hwnd = OpenWindow(#Window, 0, 0, Width, Height,"", #PB_Window_BorderLess| #PB_Window_ScreenCentered)
OpenWindowedScreen(hwnd, 0, 0, Width, Height, 1, 0, 0)
Sprites()
;- Initialisation des sprites
xbrique = 86 : ybrique = 138
xb= 0 : yb= 0
xpas = 5 : ypas = 5



;- Boucle des évènements
Repeat
 ClearScreen(rgb(0, 0, 0)) : ExamineKeyboard()
 ; Affichage des sprites
 DisplayTransparentSprite(#brique, xbrique, ybrique)
 DisplayTransparentSprite(#balle, xb, yb)
 FlipBuffers()
 xb=xb + xpas
 yb=yb + ypas
 
 If SpritePixelCollision(#balle, xb, yb, #brique, xbrique-5, ybrique)<>0 And flag=0
 flag=1
 SetWindowTitle(#window ,"Collision à gauche")
 xpas=-xpas
 Goto su ; sort du test !!!
 EndIf
 If SpritePixelCollision(#balle, xb, yb, #brique, xbrique+5, ybrique)<>0 And flag=0
 flag=1
 SetWindowTitle(#window,"Collision à droite")
 xpas=-xpas
 Goto su ; sort du test !!!
 EndIf
 If SpritePixelCollision(#balle, xb, yb, #brique, xbrique, ybrique-5)<>0  And flag=0
 flag=1
 SetWindowTitle(#window,"Collision au dessus")
 ypas=-ypas
 Goto su ; sort du test !!!
 EndIf
 If SpritePixelCollision(#balle, xb, yb, #brique, xbrique, ybrique+5)<>0  And flag=0
 flag=1
 SetWindowTitle(#window,"Collision au dessous")
 ypas=-ypas
 Goto su ; sort du test !!!        
 EndIf
 
 su: ; <<<<<<<<<<<<<<< -------------------- sortie du test
 If flag=1
 attente+1
 EndIf
 If attente>4
 attente=0
 flag=0
 EndIf
 
 ;Delay(2)
 If KeyboardPushed(#PB_Key_Escape) : quit = 1    : EndIf
 If KeyboardPushed(#PB_Key_Left)   : xbrique - dep : EndIf
 If KeyboardPushed(#PB_Key_Right)  : xbrique + dep : EndIf
 If KeyboardPushed(#PB_Key_Up)     : ybrique - dep : EndIf
 If KeyboardPushed(#PB_Key_Down)   : ybrique + dep : EndIf
 If xb <=0   : xpas= -xpas  : EndIf
 If yb <=0   : ypas= -ypas  : EndIf
 If xb >=Width : xpas= -xpas  : EndIf
 If yb >=height : ypas= -ypas  : EndIf
 While WindowEvent() : Wend
Until quit = 1
;
;******************* procedures Zone *****************************************

Procedure Sprites()
 ; Procedure de création des sprites
 If CreateSprite(#brique,128,24,#PB_Sprite_PixelCollision)           ; Sprite Fixe
 StartDrawing(SpriteOutput(#brique))
 Box(0,0,128,24,RGB($FF,$0,$0))
 StopDrawing()
 EndIf
 If CreateSprite(#balle,20,20,#PB_Sprite_PixelCollision)           ; Sprite Mobile
 StartDrawing(SpriteOutput(#balle))
 Circle(10,10,10,RGB($0,$0,$FF))
 StopDrawing()
 EndIf
EndProcedure



; Epb
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

PURE BASIC - Le Topic officiel - Page 3 Empty Re: PURE BASIC - Le Topic officiel

Message par Dobro Mar 1 Oct 2019 - 13:53

et voici la version "souris"

il faut bouger la souris... etonnant non ?

Code:


Declare Sprites()

#Window = 0


ExamineDesktops()
Width=DesktopWidth(0)
height=DesktopHeight(0)
Enumeration
      #brique
      #balle
EndEnumeration
Global xbrique,ybrique,xpas,ypas,xb,yb,flag
dep = 10


;- Initialisation de DirectX
InitMouse()
If InitSprite() = 0 Or InitKeyboard() = 0
      
      End
EndIf
;- Ouverture de la fenêtre et de l'écran
hwnd = OpenWindow(#Window, 0, 0, Width, Height,"", #PB_Window_BorderLess| #PB_Window_ScreenCentered)
OpenWindowedScreen(hwnd, 0, 0, Width, Height, 1, 0, 0)
Sprites()
;- Initialisation des sprites
xbrique = 86 : ybrique = 138
xb= 0 : yb= 0
xpas = 5 : ypas = 5



;- Boucle des évènements
Repeat
      ClearScreen(rgb(0, 0, 0)) : ExamineKeyboard()
      ExamineMouse()
      xm=mousex()
      ym=mousey()
      if xm<0
            xm=0
      endif
      if xm>width
            wm=width
      endif
      if ym<0
            ym=0
      endif
      if ym>height
            ym=height
      Endif
      
      ; Affichage des sprites
      DisplayTransparentSprite(#brique, xbrique, ybrique)
      DisplayTransparentSprite(#balle, xb, yb)
      FlipBuffers()
      xb=xb + xpas
      yb=yb + ypas
      
      If SpritePixelCollision(#balle, xb, yb, #brique, xbrique-5, ybrique)<>0 And flag=0
            flag=1
            SetWindowTitle(#window ,"Collision à gauche")
            xpas=-xpas
            Goto su ; sort du test !!!
      EndIf
      If SpritePixelCollision(#balle, xb, yb, #brique, xbrique+5, ybrique)<>0 And flag=0
            flag=1
            SetWindowTitle(#window,"Collision à droite")
            xpas=-xpas
            Goto su ; sort du test !!!
      EndIf
      If SpritePixelCollision(#balle, xb, yb, #brique, xbrique, ybrique-5)<>0  And flag=0
            flag=1
            SetWindowTitle(#window,"Collision au dessus")
            ypas=-ypas
            Goto su ; sort du test !!!
      EndIf
      If SpritePixelCollision(#balle, xb, yb, #brique, xbrique, ybrique+5)<>0  And flag=0
            flag=1
            SetWindowTitle(#window,"Collision au dessous")
            ypas=-ypas
            Goto su ; sort du test !!!       
      EndIf
      
      su: ; <<<<<<<<<<<<<<< -------------------- sortie du test
      If flag=1
            attente+1
      EndIf
      If attente>4
            attente=0
            flag=0
      EndIf
      
      ;Delay(2)
   ;
   If KeyboardPushed(#PB_Key_Escape) : quit = 1    : EndIf
;       If KeyboardPushed(#PB_Key_Left)  : xbrique - dep : EndIf
;       If KeyboardPushed(#PB_Key_Right)  : xbrique + dep : EndIf
;       If KeyboardPushed(#PB_Key_Up)    : ybrique - dep : EndIf
;       If KeyboardPushed(#PB_Key_Down)  : ybrique + dep : EndIf

      
      xbrique=xm
      ybrique=ym
      
      
      
      
      
      If xb <=0  : xpas= -xpas  : EndIf
      If yb <=0  : ypas= -ypas  : EndIf
      If xb >=Width : xpas= -xpas  : EndIf
      If yb >=height : ypas= -ypas  : EndIf
      While WindowEvent() : Wend
Until quit = 1
;
;******************* procedures Zone *****************************************

Procedure Sprites()
      ; Procedure de création des sprites
      If CreateSprite(#brique,128,24,#PB_Sprite_PixelCollision)          ; Sprite Fixe
            StartDrawing(SpriteOutput(#brique))
                  Box(0,0,128,24,RGB($FF,$0,$0))
            StopDrawing()
      EndIf
      If CreateSprite(#balle,20,20,#PB_Sprite_PixelCollision)          ; Sprite Mobile
            StartDrawing(SpriteOutput(#balle))
                  Circle(10,10,10,RGB($0,$0,$FF))
            StopDrawing()
      EndIf
EndProcedure



; Epb
avatar
Dobro
Patient contaminé

Masculin Nombre de messages : 293
Age : 59
Localisation : 43
Date d'inscription : 30/09/2019

Revenir en haut Aller en bas

Page 3 sur 12 Précédent  1, 2, 3, 4 ... 10, 11, 12  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum