Уведомления

Группа в Telegram: @pythonsu

#1 Март 12, 2016 17:31:07

vladik_kurochkin@mail.ru
Зарегистрирован: 2016-03-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в создании игры

Всем привет , я новичок в питоне делаю игру , принцип игры такой, появляется объект на экране к примеру круг или квадрат и через 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)



Отредактировано vladik_kurochkin@mail.ru (Март 12, 2016 18:06:22)

Офлайн

#2 Март 12, 2016 18:00:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь в создании игры

[code python][/code]



Офлайн

#3 Март 12, 2016 18:06:39

vladik_kurochkin@mail.ru
Зарегистрирован: 2016-03-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужна помощь в создании игры


извиняюсь исправил)

Отредактировано vladik_kurochkin@mail.ru (Март 12, 2016 18:06:54)

Офлайн

#4 Март 12, 2016 18:09:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужна помощь в создании игры

vladik_kurochkin@mail.ru
Готовьтесь к люлям от 4pkt



Офлайн

#5 Март 12, 2016 21:37:42

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

Нужна помощь в создании игры

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. Создавать заново окно нельзя. В этом случае Вы теряете весь поток событий, который Вы на него повесили. Правильнее делать следующим образом: создаете окно. На нем с помощью двух рамок размещаете меню и рабочую область. Рабочую область (рамку) можно удалять и создавать заново. Можно просто скрывать (зависит от задачи).

Еще ошибок море, но это самые серьезные. Исправьте их перед тем, как выкладывать следующий код…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version