Найти - Пользователи
Полная версия: Нужна помощь в создании игры
Начало » Центр помощи » Нужна помощь в создании игры
1
vladik_kurochkin@mail.ru
Всем привет , я новичок в питоне делаю игру , принцип игры такой, появляется объект на экране к примеру круг или квадрат и через 1 секунду он должен появиться уже в другом месте и так далее человек должен кликать на этот объект , за это он получает 1 очко сверху будет надпись Score и сколько очков на данный момент заработал так же идет таймер до окончания игры за 30 секунд к примеру он должен максимально сколько сможет кликнуть на объект который появляется в разных точках , после окончания таймера игра заканчивается и выходит окно начать заново игру или выйти из игры.
Код не много написан сделал меню . во 2 окне только оформление не знаю с чего начать и как написать буду рад если поможете

from tkinter import *
import math 
from tkinter.messagebox import *
import math
import random 
def playd():
    win.destroy()
    win2=Tk()
 
  
    canva2=Canvas(win2,width=400,height=400,bg="Green") # fon okna
    canva2.pack(expand=YES,fill=BOTH)
   
    c=Canvas(win2,width=50,height=50) #razmer
    c.pack(expand=YES,fill=BOTH)
    img=PhotoImage(file='blue.png')        #objekt
    c.create_image(0, 0, image=img, anchor=NW)
    c.place(x=200,y=500)
    
    cz=Canvas(win2,width=50,height=50) #razmer
    cz.pack(expand=YES,fill=BOTH)
    imgz=PhotoImage(file='yellow.png')        #objekt
    cz.create_image(0, 0, image=imgz, anchor=NW)
    cz.place(x=600,y=100)
 
    
    labb=Label(win2,
          text="Score: \n",
          font="Arrial 17",
          bg="Green"
          )
    labb.place(x=350,y=10)
    
    
    
    win2.title("Catch a square")
    win2.resizable(width=FALSE,height=FALSE)
    win2.minsize(width=800,height=600)
       
  
    
    win2.mainloop()
    
def close():
    if askyesno("Exit","Are you sure?"):
       win.destroy()
    
win=Tk()
win.title("Start Menu")
canva=Canvas(win,width=400,height=400,bg="Light Blue")
canva.pack(expand=YES,fill=BOTH)
win.minsize(width=400,height=400)
win.resizable(width=FALSE,height=FALSE)
    
    
but=Button(win,
           text="Начать игру"
           ,width=25,height=5,
           bg="green", 
           command=playd)
but.place(x=100,y=100)
but2=Button(win,
           text="Выйти из игры"
           ,width=25,height=5,
           bg="green",
           command=close)
           
but2.place(x=100,y=200)
lab=Label(win,
          text="Catch a square \n",
          font="Arrial 17",
          bg="Light Blue"
          )
lab.place(x=120,y=20)



FishHook
[code python][/code]
vladik_kurochkin@mail.ru

извиняюсь исправил)
FishHook
vladik_kurochkin@mail.ru
Готовьтесь к люлям от 4pkt
4kpt_IV
FishHook

Тут не знаешь за что вывешивать начинать.

vladik_kurochkin@mail.ru

Что у Вас конкретно не получается?
Есть функция .after(). С помощью нее задаете момент остановки игры. Дальше. Пишите функцию, которая будет отображать фигуры на экране (лучше для фигур использовать стандартные фигуры Canvas). На нажатие на фигуру вешаете событие .tag_bind() которое пишет счетчик количества попаданий…

Теперь по Вашему коду конкретно:
1. Не используйте конструкцию from tkinter import никогда!!!
2. Называйте переменные так, чтобы их можно было читать. lab, but, c, canvas2 ни о чем Вам не скажут через 10-15 дней
3. place использовать нужно и можно, вот только он не для этого случая. У него специальное назначение. Ну и даже в этом случае попиксельно привязываться все равно нельзя. Смотрите в сторону методов grid и pack.
4. Создавать заново окно нельзя. В этом случае Вы теряете весь поток событий, который Вы на него повесили. Правильнее делать следующим образом: создаете окно. На нем с помощью двух рамок размещаете меню и рабочую область. Рабочую область (рамку) можно удалять и создавать заново. Можно просто скрывать (зависит от задачи).

Еще ошибок море, но это самые серьезные. Исправьте их перед тем, как выкладывать следующий код…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB